/*
 * 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/@dannadori/voice-changer-client-js/dist/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@dannadori/voice-changer-client-js/dist/index.js ***!
  \***********************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/*\n * ATTENTION: The \"eval\" devtool has been used (maybe by default in mode: \"development\").\n * This devtool is neither made for production nor for readable output files.\n * It uses \"eval()\" calls to create a separate source file in the browser devtools.\n * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)\n * or disable the default devtool with \"devtool: false\".\n * If you are looking for production-ready output files, see mode: \"production\" (https://webpack.js.org/configuration/mode/).\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\telse { var i, a; }\n})(typeof self !== 'undefined' ? self : this, (__WEBPACK_EXTERNAL_MODULE_react__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n//# sourceMappingURL=CryptoOperation.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/Key.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/Key.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n//# sourceMappingURL=Key.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/Key.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n//# sourceMappingURL=KeyOperation.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n//# sourceMappingURL=MsSubtleCrypto.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isMsWindow = void 0;\\nvar msSubtleCryptoMethods = [\\n    \\\"decrypt\\\",\\n    \\\"digest\\\",\\n    \\\"encrypt\\\",\\n    \\\"exportKey\\\",\\n    \\\"generateKey\\\",\\n    \\\"importKey\\\",\\n    \\\"sign\\\",\\n    \\\"verify\\\"\\n];\\nfunction quacksLikeAnMsWindow(window) {\\n    return \\\"MSInputMethodContext\\\" in window && \\\"msCrypto\\\" in window;\\n}\\n/**\\n * Determines if the provided window is (or is like) the window object one would\\n * expect to encounter in Internet Explorer 11.\\n */\\nfunction isMsWindow(window) {\\n    if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\\n        var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\\n        return msSubtleCryptoMethods\\n            .map(function (methodName) { return subtle_1[methodName]; })\\n            .concat(getRandomValues)\\n            .every(function (method) { return typeof method === \\\"function\\\"; });\\n    }\\n    return false;\\n}\\nexports.isMsWindow = isMsWindow;\\n//# sourceMappingURL=MsWindow.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/ie11-detection/build/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/ie11-detection/build/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\ntslib_1.__exportStar(__webpack_require__(/*! ./CryptoOperation */ \\\"./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js\\\"), exports);\\ntslib_1.__exportStar(__webpack_require__(/*! ./Key */ \\\"./node_modules/@aws-crypto/ie11-detection/build/Key.js\\\"), exports);\\ntslib_1.__exportStar(__webpack_require__(/*! ./KeyOperation */ \\\"./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js\\\"), exports);\\ntslib_1.__exportStar(__webpack_require__(/*! ./MsSubtleCrypto */ \\\"./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js\\\"), exports);\\ntslib_1.__exportStar(__webpack_require__(/*! ./MsWindow */ \\\"./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js\\\"), exports);\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/ie11-detection/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/constants.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/constants.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\\nexports.SHA_256_HASH = { name: \\\"SHA-256\\\" };\\nexports.SHA_256_HMAC_ALGO = {\\n    name: \\\"HMAC\\\",\\n    hash: exports.SHA_256_HASH\\n};\\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\\n    227,\\n    176,\\n    196,\\n    66,\\n    152,\\n    252,\\n    28,\\n    20,\\n    154,\\n    251,\\n    244,\\n    200,\\n    153,\\n    111,\\n    185,\\n    36,\\n    39,\\n    174,\\n    65,\\n    228,\\n    100,\\n    155,\\n    147,\\n    76,\\n    164,\\n    149,\\n    153,\\n    27,\\n    120,\\n    82,\\n    184,\\n    85\\n]);\\n//# sourceMappingURL=constants.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.Sha256 = void 0;\\nvar ie11Sha256_1 = __webpack_require__(/*! ./ie11Sha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js\\\");\\nvar webCryptoSha256_1 = __webpack_require__(/*! ./webCryptoSha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js\\\");\\nvar sha256_js_1 = __webpack_require__(/*! @aws-crypto/sha256-js */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js\\\");\\nvar supports_web_crypto_1 = __webpack_require__(/*! @aws-crypto/supports-web-crypto */ \\\"./node_modules/@aws-crypto/supports-web-crypto/build/index.js\\\");\\nvar ie11_detection_1 = __webpack_require__(/*! @aws-crypto/ie11-detection */ \\\"./node_modules/@aws-crypto/ie11-detection/build/index.js\\\");\\nvar util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ \\\"./node_modules/@aws-sdk/util-locate-window/dist-es/index.js\\\");\\nvar util_1 = __webpack_require__(/*! @aws-crypto/util */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js\\\");\\nvar Sha256 = /** @class */ (function () {\\n    function Sha256(secret) {\\n        if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\\n            this.hash = new webCryptoSha256_1.Sha256(secret);\\n        }\\n        else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\\n            this.hash = new ie11Sha256_1.Sha256(secret);\\n        }\\n        else {\\n            this.hash = new sha256_js_1.Sha256(secret);\\n        }\\n    }\\n    Sha256.prototype.update = function (data, encoding) {\\n        this.hash.update((0, util_1.convertToBuffer)(data));\\n    };\\n    Sha256.prototype.digest = function () {\\n        return this.hash.digest();\\n    };\\n    Sha256.prototype.reset = function () {\\n        this.hash.reset();\\n    };\\n    return Sha256;\\n}());\\nexports.Sha256 = Sha256;\\n//# sourceMappingURL=crossPlatformSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.Sha256 = void 0;\\nvar isEmptyData_1 = __webpack_require__(/*! ./isEmptyData */ \\\"./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js\\\");\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-browser/build/constants.js\\\");\\nvar util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ \\\"./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js\\\");\\nvar util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ \\\"./node_modules/@aws-sdk/util-locate-window/dist-es/index.js\\\");\\nvar Sha256 = /** @class */ (function () {\\n    function Sha256(secret) {\\n        this.secret = secret;\\n        this.reset();\\n    }\\n    Sha256.prototype.update = function (toHash) {\\n        var _this = this;\\n        if ((0, isEmptyData_1.isEmptyData)(toHash)) {\\n            return;\\n        }\\n        this.operation = this.operation.then(function (operation) {\\n            operation.onerror = function () {\\n                _this.operation = Promise.reject(new Error(\\\"Error encountered updating hash\\\"));\\n            };\\n            operation.process(toArrayBufferView(toHash));\\n            return operation;\\n        });\\n        this.operation.catch(function () { });\\n    };\\n    Sha256.prototype.digest = function () {\\n        return this.operation.then(function (operation) {\\n            return new Promise(function (resolve, reject) {\\n                operation.onerror = function () {\\n                    reject(new Error(\\\"Error encountered finalizing hash\\\"));\\n                };\\n                operation.oncomplete = function () {\\n                    if (operation.result) {\\n                        resolve(new Uint8Array(operation.result));\\n                    }\\n                    reject(new Error(\\\"Error encountered finalizing hash\\\"));\\n                };\\n                operation.finish();\\n            });\\n        });\\n    };\\n    Sha256.prototype.reset = function () {\\n        if (this.secret) {\\n            this.operation = getKeyPromise(this.secret).then(function (keyData) {\\n                return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\\n            });\\n            this.operation.catch(function () { });\\n        }\\n        else {\\n            this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\\\"SHA-256\\\"));\\n        }\\n    };\\n    return Sha256;\\n}());\\nexports.Sha256 = Sha256;\\nfunction getKeyPromise(secret) {\\n    return new Promise(function (resolve, reject) {\\n        var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\\\"raw\\\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\\\"sign\\\"]);\\n        keyOperation.oncomplete = function () {\\n            if (keyOperation.result) {\\n                resolve(keyOperation.result);\\n            }\\n            reject(new Error(\\\"ImportKey completed without importing key.\\\"));\\n        };\\n        keyOperation.onerror = function () {\\n            reject(new Error(\\\"ImportKey failed to import key.\\\"));\\n        };\\n    });\\n}\\nfunction toArrayBufferView(data) {\\n    if (typeof data === \\\"string\\\") {\\n        return (0, util_utf8_browser_1.fromUtf8)(data);\\n    }\\n    if (ArrayBuffer.isView(data)) {\\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\\n    }\\n    return new Uint8Array(data);\\n}\\n//# sourceMappingURL=ie11Sha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\ntslib_1.__exportStar(__webpack_require__(/*! ./crossPlatformSha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js\\\"), exports);\\nvar ie11Sha256_1 = __webpack_require__(/*! ./ie11Sha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js\\\");\\nObject.defineProperty(exports, \\\"Ie11Sha256\\\", ({ enumerable: true, get: function () { return ie11Sha256_1.Sha256; } }));\\nvar webCryptoSha256_1 = __webpack_require__(/*! ./webCryptoSha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js\\\");\\nObject.defineProperty(exports, \\\"WebCryptoSha256\\\", ({ enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } }));\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isEmptyData = void 0;\\nfunction isEmptyData(data) {\\n    if (typeof data === \\\"string\\\") {\\n        return data.length === 0;\\n    }\\n    return data.byteLength === 0;\\n}\\nexports.isEmptyData = isEmptyData;\\n//# sourceMappingURL=isEmptyData.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.Sha256 = void 0;\\nvar util_1 = __webpack_require__(/*! @aws-crypto/util */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js\\\");\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-browser/build/constants.js\\\");\\nvar util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ \\\"./node_modules/@aws-sdk/util-locate-window/dist-es/index.js\\\");\\nvar Sha256 = /** @class */ (function () {\\n    function Sha256(secret) {\\n        this.toHash = new Uint8Array(0);\\n        this.secret = secret;\\n        this.reset();\\n    }\\n    Sha256.prototype.update = function (data) {\\n        if ((0, util_1.isEmptyData)(data)) {\\n            return;\\n        }\\n        var update = (0, util_1.convertToBuffer)(data);\\n        var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\\n        typedArray.set(this.toHash, 0);\\n        typedArray.set(update, this.toHash.byteLength);\\n        this.toHash = typedArray;\\n    };\\n    Sha256.prototype.digest = function () {\\n        var _this = this;\\n        if (this.key) {\\n            return this.key.then(function (key) {\\n                return (0, util_locate_window_1.locateWindow)()\\n                    .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\\n                    .then(function (data) { return new Uint8Array(data); });\\n            });\\n        }\\n        if ((0, util_1.isEmptyData)(this.toHash)) {\\n            return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\\n        }\\n        return Promise.resolve()\\n            .then(function () {\\n            return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\\n        })\\n            .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\\n    };\\n    Sha256.prototype.reset = function () {\\n        var _this = this;\\n        this.toHash = new Uint8Array(0);\\n        if (this.secret && this.secret !== void 0) {\\n            this.key = new Promise(function (resolve, reject) {\\n                (0, util_locate_window_1.locateWindow)()\\n                    .crypto.subtle.importKey(\\\"raw\\\", (0, util_1.convertToBuffer)(_this.secret), constants_1.SHA_256_HMAC_ALGO, false, [\\\"sign\\\"])\\n                    .then(resolve, reject);\\n            });\\n            this.key.catch(function () { });\\n        }\\n    };\\n    return Sha256;\\n}());\\nexports.Sha256 = Sha256;\\n//# sourceMappingURL=webCryptoSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.RawSha256 = void 0;\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js\\\");\\n/**\\n * @internal\\n */\\nvar RawSha256 = /** @class */ (function () {\\n    function RawSha256() {\\n        this.state = Int32Array.from(constants_1.INIT);\\n        this.temp = new Int32Array(64);\\n        this.buffer = new Uint8Array(64);\\n        this.bufferLength = 0;\\n        this.bytesHashed = 0;\\n        /**\\n         * @internal\\n         */\\n        this.finished = false;\\n    }\\n    RawSha256.prototype.update = function (data) {\\n        if (this.finished) {\\n            throw new Error(\\\"Attempted to update an already finished hash.\\\");\\n        }\\n        var position = 0;\\n        var byteLength = data.byteLength;\\n        this.bytesHashed += byteLength;\\n        if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\\n            throw new Error(\\\"Cannot hash more than 2^53 - 1 bits\\\");\\n        }\\n        while (byteLength > 0) {\\n            this.buffer[this.bufferLength++] = data[position++];\\n            byteLength--;\\n            if (this.bufferLength === constants_1.BLOCK_SIZE) {\\n                this.hashBuffer();\\n                this.bufferLength = 0;\\n            }\\n        }\\n    };\\n    RawSha256.prototype.digest = function () {\\n        if (!this.finished) {\\n            var bitsHashed = this.bytesHashed * 8;\\n            var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\\n            var undecoratedLength = this.bufferLength;\\n            bufferView.setUint8(this.bufferLength++, 0x80);\\n            // Ensure the final block has enough room for the hashed length\\n            if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\\n                for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\\n                    bufferView.setUint8(i, 0);\\n                }\\n                this.hashBuffer();\\n                this.bufferLength = 0;\\n            }\\n            for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\\n                bufferView.setUint8(i, 0);\\n            }\\n            bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\\n            bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\\n            this.hashBuffer();\\n            this.finished = true;\\n        }\\n        // The value in state is little-endian rather than big-endian, so flip\\n        // each word into a new Uint8Array\\n        var out = new Uint8Array(constants_1.DIGEST_LENGTH);\\n        for (var i = 0; i < 8; i++) {\\n            out[i * 4] = (this.state[i] >>> 24) & 0xff;\\n            out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\\n            out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\\n            out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\\n        }\\n        return out;\\n    };\\n    RawSha256.prototype.hashBuffer = function () {\\n        var _a = this, buffer = _a.buffer, state = _a.state;\\n        var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\\n        for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\\n            if (i < 16) {\\n                this.temp[i] =\\n                    ((buffer[i * 4] & 0xff) << 24) |\\n                        ((buffer[i * 4 + 1] & 0xff) << 16) |\\n                        ((buffer[i * 4 + 2] & 0xff) << 8) |\\n                        (buffer[i * 4 + 3] & 0xff);\\n            }\\n            else {\\n                var u = this.temp[i - 2];\\n                var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\\n                u = this.temp[i - 15];\\n                var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\\n                this.temp[i] =\\n                    ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\\n            }\\n            var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\\n                ((state4 >>> 11) | (state4 << 21)) ^\\n                ((state4 >>> 25) | (state4 << 7))) +\\n                ((state4 & state5) ^ (~state4 & state6))) |\\n                0) +\\n                ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\\n                0;\\n            var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\\n                ((state0 >>> 13) | (state0 << 19)) ^\\n                ((state0 >>> 22) | (state0 << 10))) +\\n                ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\\n                0;\\n            state7 = state6;\\n            state6 = state5;\\n            state5 = state4;\\n            state4 = (state3 + t1) | 0;\\n            state3 = state2;\\n            state2 = state1;\\n            state1 = state0;\\n            state0 = (t1 + t2) | 0;\\n        }\\n        state[0] += state0;\\n        state[1] += state1;\\n        state[2] += state2;\\n        state[3] += state3;\\n        state[4] += state4;\\n        state[5] += state5;\\n        state[6] += state6;\\n        state[7] += state7;\\n    };\\n    return RawSha256;\\n}());\\nexports.RawSha256 = RawSha256;\\n//# sourceMappingURL=RawSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\\n/**\\n * @internal\\n */\\nexports.BLOCK_SIZE = 64;\\n/**\\n * @internal\\n */\\nexports.DIGEST_LENGTH = 32;\\n/**\\n * @internal\\n */\\nexports.KEY = new Uint32Array([\\n    0x428a2f98,\\n    0x71374491,\\n    0xb5c0fbcf,\\n    0xe9b5dba5,\\n    0x3956c25b,\\n    0x59f111f1,\\n    0x923f82a4,\\n    0xab1c5ed5,\\n    0xd807aa98,\\n    0x12835b01,\\n    0x243185be,\\n    0x550c7dc3,\\n    0x72be5d74,\\n    0x80deb1fe,\\n    0x9bdc06a7,\\n    0xc19bf174,\\n    0xe49b69c1,\\n    0xefbe4786,\\n    0x0fc19dc6,\\n    0x240ca1cc,\\n    0x2de92c6f,\\n    0x4a7484aa,\\n    0x5cb0a9dc,\\n    0x76f988da,\\n    0x983e5152,\\n    0xa831c66d,\\n    0xb00327c8,\\n    0xbf597fc7,\\n    0xc6e00bf3,\\n    0xd5a79147,\\n    0x06ca6351,\\n    0x14292967,\\n    0x27b70a85,\\n    0x2e1b2138,\\n    0x4d2c6dfc,\\n    0x53380d13,\\n    0x650a7354,\\n    0x766a0abb,\\n    0x81c2c92e,\\n    0x92722c85,\\n    0xa2bfe8a1,\\n    0xa81a664b,\\n    0xc24b8b70,\\n    0xc76c51a3,\\n    0xd192e819,\\n    0xd6990624,\\n    0xf40e3585,\\n    0x106aa070,\\n    0x19a4c116,\\n    0x1e376c08,\\n    0x2748774c,\\n    0x34b0bcb5,\\n    0x391c0cb3,\\n    0x4ed8aa4a,\\n    0x5b9cca4f,\\n    0x682e6ff3,\\n    0x748f82ee,\\n    0x78a5636f,\\n    0x84c87814,\\n    0x8cc70208,\\n    0x90befffa,\\n    0xa4506ceb,\\n    0xbef9a3f7,\\n    0xc67178f2\\n]);\\n/**\\n * @internal\\n */\\nexports.INIT = [\\n    0x6a09e667,\\n    0xbb67ae85,\\n    0x3c6ef372,\\n    0xa54ff53a,\\n    0x510e527f,\\n    0x9b05688c,\\n    0x1f83d9ab,\\n    0x5be0cd19\\n];\\n/**\\n * @internal\\n */\\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\\n//# sourceMappingURL=constants.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\ntslib_1.__exportStar(__webpack_require__(/*! ./jsSha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js\\\"), exports);\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.Sha256 = void 0;\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js\\\");\\nvar RawSha256_1 = __webpack_require__(/*! ./RawSha256 */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js\\\");\\nvar util_1 = __webpack_require__(/*! @aws-crypto/util */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js\\\");\\nvar Sha256 = /** @class */ (function () {\\n    function Sha256(secret) {\\n        this.secret = secret;\\n        this.hash = new RawSha256_1.RawSha256();\\n        this.reset();\\n    }\\n    Sha256.prototype.update = function (toHash) {\\n        if ((0, util_1.isEmptyData)(toHash) || this.error) {\\n            return;\\n        }\\n        try {\\n            this.hash.update((0, util_1.convertToBuffer)(toHash));\\n        }\\n        catch (e) {\\n            this.error = e;\\n        }\\n    };\\n    /* This synchronous method keeps compatibility\\n     * with the v2 aws-sdk.\\n     */\\n    Sha256.prototype.digestSync = function () {\\n        if (this.error) {\\n            throw this.error;\\n        }\\n        if (this.outer) {\\n            if (!this.outer.finished) {\\n                this.outer.update(this.hash.digest());\\n            }\\n            return this.outer.digest();\\n        }\\n        return this.hash.digest();\\n    };\\n    /* The underlying digest method here is synchronous.\\n     * To keep the same interface with the other hash functions\\n     * the default is to expose this as an async method.\\n     * However, it can sometimes be useful to have a sync method.\\n     */\\n    Sha256.prototype.digest = function () {\\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\\n            return tslib_1.__generator(this, function (_a) {\\n                return [2 /*return*/, this.digestSync()];\\n            });\\n        });\\n    };\\n    Sha256.prototype.reset = function () {\\n        this.hash = new RawSha256_1.RawSha256();\\n        if (this.secret) {\\n            this.outer = new RawSha256_1.RawSha256();\\n            var inner = bufferFromSecret(this.secret);\\n            var outer = new Uint8Array(constants_1.BLOCK_SIZE);\\n            outer.set(inner);\\n            for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\\n                inner[i] ^= 0x36;\\n                outer[i] ^= 0x5c;\\n            }\\n            this.hash.update(inner);\\n            this.outer.update(outer);\\n            // overwrite the copied key in memory\\n            for (var i = 0; i < inner.byteLength; i++) {\\n                inner[i] = 0;\\n            }\\n        }\\n    };\\n    return Sha256;\\n}());\\nexports.Sha256 = Sha256;\\nfunction bufferFromSecret(secret) {\\n    var input = (0, util_1.convertToBuffer)(secret);\\n    if (input.byteLength > constants_1.BLOCK_SIZE) {\\n        var bufferHash = new RawSha256_1.RawSha256();\\n        bufferHash.update(input);\\n        input = bufferHash.digest();\\n    }\\n    var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\\n    buffer.set(input);\\n    return buffer;\\n}\\n//# sourceMappingURL=jsSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")[\\\"Buffer\\\"];\\n\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.convertToBuffer = void 0;\\nvar util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ \\\"./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js\\\");\\n// Quick polyfill\\nvar fromUtf8 = typeof Buffer !== \\\"undefined\\\" && Buffer.from\\n    ? function (input) { return Buffer.from(input, \\\"utf8\\\"); }\\n    : util_utf8_browser_1.fromUtf8;\\nfunction convertToBuffer(data) {\\n    // Already a Uint8, do nothing\\n    if (data instanceof Uint8Array)\\n        return data;\\n    if (typeof data === \\\"string\\\") {\\n        return fromUtf8(data);\\n    }\\n    if (ArrayBuffer.isView(data)) {\\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\\n    }\\n    return new Uint8Array(data);\\n}\\nexports.convertToBuffer = convertToBuffer;\\n//# sourceMappingURL=convertToBuffer.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js ***!\n  \\**********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\\nvar convertToBuffer_1 = __webpack_require__(/*! ./convertToBuffer */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js\\\");\\nObject.defineProperty(exports, \\\"convertToBuffer\\\", ({ enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } }));\\nvar isEmptyData_1 = __webpack_require__(/*! ./isEmptyData */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/isEmptyData.js\\\");\\nObject.defineProperty(exports, \\\"isEmptyData\\\", ({ enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } }));\\nvar numToUint8_1 = __webpack_require__(/*! ./numToUint8 */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/numToUint8.js\\\");\\nObject.defineProperty(exports, \\\"numToUint8\\\", ({ enumerable: true, get: function () { return numToUint8_1.numToUint8; } }));\\nvar uint32ArrayFrom_1 = __webpack_require__(/*! ./uint32ArrayFrom */ \\\"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js\\\");\\nObject.defineProperty(exports, \\\"uint32ArrayFrom\\\", ({ enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } }));\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/isEmptyData.js\":\n/*!****************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/isEmptyData.js ***!\n  \\****************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isEmptyData = void 0;\\nfunction isEmptyData(data) {\\n    if (typeof data === \\\"string\\\") {\\n        return data.length === 0;\\n    }\\n    return data.byteLength === 0;\\n}\\nexports.isEmptyData = isEmptyData;\\n//# sourceMappingURL=isEmptyData.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/isEmptyData.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/numToUint8.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/numToUint8.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.numToUint8 = void 0;\\nfunction numToUint8(num) {\\n    return new Uint8Array([\\n        (num & 0xff000000) >> 24,\\n        (num & 0x00ff0000) >> 16,\\n        (num & 0x0000ff00) >> 8,\\n        num & 0x000000ff,\\n    ]);\\n}\\nexports.numToUint8 = numToUint8;\\n//# sourceMappingURL=numToUint8.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/numToUint8.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.uint32ArrayFrom = void 0;\\n// IE 11 does not support Array.from, so we do it manually\\nfunction uint32ArrayFrom(a_lookUpTable) {\\n    if (!Uint32Array.from) {\\n        var return_array = new Uint32Array(a_lookUpTable.length);\\n        var a_index = 0;\\n        while (a_index < a_lookUpTable.length) {\\n            return_array[a_index] = a_lookUpTable[a_index];\\n            a_index += 1;\\n        }\\n        return return_array;\\n    }\\n    return Uint32Array.from(a_lookUpTable);\\n}\\nexports.uint32ArrayFrom = uint32ArrayFrom;\\n//# sourceMappingURL=uint32ArrayFrom.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-js/build/RawSha256.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-js/build/RawSha256.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.RawSha256 = void 0;\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-js/build/constants.js\\\");\\n/**\\n * @internal\\n */\\nvar RawSha256 = /** @class */ (function () {\\n    function RawSha256() {\\n        this.state = Int32Array.from(constants_1.INIT);\\n        this.temp = new Int32Array(64);\\n        this.buffer = new Uint8Array(64);\\n        this.bufferLength = 0;\\n        this.bytesHashed = 0;\\n        /**\\n         * @internal\\n         */\\n        this.finished = false;\\n    }\\n    RawSha256.prototype.update = function (data) {\\n        if (this.finished) {\\n            throw new Error(\\\"Attempted to update an already finished hash.\\\");\\n        }\\n        var position = 0;\\n        var byteLength = data.byteLength;\\n        this.bytesHashed += byteLength;\\n        if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\\n            throw new Error(\\\"Cannot hash more than 2^53 - 1 bits\\\");\\n        }\\n        while (byteLength > 0) {\\n            this.buffer[this.bufferLength++] = data[position++];\\n            byteLength--;\\n            if (this.bufferLength === constants_1.BLOCK_SIZE) {\\n                this.hashBuffer();\\n                this.bufferLength = 0;\\n            }\\n        }\\n    };\\n    RawSha256.prototype.digest = function () {\\n        if (!this.finished) {\\n            var bitsHashed = this.bytesHashed * 8;\\n            var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\\n            var undecoratedLength = this.bufferLength;\\n            bufferView.setUint8(this.bufferLength++, 0x80);\\n            // Ensure the final block has enough room for the hashed length\\n            if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\\n                for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\\n                    bufferView.setUint8(i, 0);\\n                }\\n                this.hashBuffer();\\n                this.bufferLength = 0;\\n            }\\n            for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\\n                bufferView.setUint8(i, 0);\\n            }\\n            bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\\n            bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\\n            this.hashBuffer();\\n            this.finished = true;\\n        }\\n        // The value in state is little-endian rather than big-endian, so flip\\n        // each word into a new Uint8Array\\n        var out = new Uint8Array(constants_1.DIGEST_LENGTH);\\n        for (var i = 0; i < 8; i++) {\\n            out[i * 4] = (this.state[i] >>> 24) & 0xff;\\n            out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\\n            out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\\n            out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\\n        }\\n        return out;\\n    };\\n    RawSha256.prototype.hashBuffer = function () {\\n        var _a = this, buffer = _a.buffer, state = _a.state;\\n        var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\\n        for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\\n            if (i < 16) {\\n                this.temp[i] =\\n                    ((buffer[i * 4] & 0xff) << 24) |\\n                        ((buffer[i * 4 + 1] & 0xff) << 16) |\\n                        ((buffer[i * 4 + 2] & 0xff) << 8) |\\n                        (buffer[i * 4 + 3] & 0xff);\\n            }\\n            else {\\n                var u = this.temp[i - 2];\\n                var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\\n                u = this.temp[i - 15];\\n                var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\\n                this.temp[i] =\\n                    ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\\n            }\\n            var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\\n                ((state4 >>> 11) | (state4 << 21)) ^\\n                ((state4 >>> 25) | (state4 << 7))) +\\n                ((state4 & state5) ^ (~state4 & state6))) |\\n                0) +\\n                ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\\n                0;\\n            var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\\n                ((state0 >>> 13) | (state0 << 19)) ^\\n                ((state0 >>> 22) | (state0 << 10))) +\\n                ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\\n                0;\\n            state7 = state6;\\n            state6 = state5;\\n            state5 = state4;\\n            state4 = (state3 + t1) | 0;\\n            state3 = state2;\\n            state2 = state1;\\n            state1 = state0;\\n            state0 = (t1 + t2) | 0;\\n        }\\n        state[0] += state0;\\n        state[1] += state1;\\n        state[2] += state2;\\n        state[3] += state3;\\n        state[4] += state4;\\n        state[5] += state5;\\n        state[6] += state6;\\n        state[7] += state7;\\n    };\\n    return RawSha256;\\n}());\\nexports.RawSha256 = RawSha256;\\n//# sourceMappingURL=RawSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-js/build/constants.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-js/build/constants.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\\n/**\\n * @internal\\n */\\nexports.BLOCK_SIZE = 64;\\n/**\\n * @internal\\n */\\nexports.DIGEST_LENGTH = 32;\\n/**\\n * @internal\\n */\\nexports.KEY = new Uint32Array([\\n    0x428a2f98,\\n    0x71374491,\\n    0xb5c0fbcf,\\n    0xe9b5dba5,\\n    0x3956c25b,\\n    0x59f111f1,\\n    0x923f82a4,\\n    0xab1c5ed5,\\n    0xd807aa98,\\n    0x12835b01,\\n    0x243185be,\\n    0x550c7dc3,\\n    0x72be5d74,\\n    0x80deb1fe,\\n    0x9bdc06a7,\\n    0xc19bf174,\\n    0xe49b69c1,\\n    0xefbe4786,\\n    0x0fc19dc6,\\n    0x240ca1cc,\\n    0x2de92c6f,\\n    0x4a7484aa,\\n    0x5cb0a9dc,\\n    0x76f988da,\\n    0x983e5152,\\n    0xa831c66d,\\n    0xb00327c8,\\n    0xbf597fc7,\\n    0xc6e00bf3,\\n    0xd5a79147,\\n    0x06ca6351,\\n    0x14292967,\\n    0x27b70a85,\\n    0x2e1b2138,\\n    0x4d2c6dfc,\\n    0x53380d13,\\n    0x650a7354,\\n    0x766a0abb,\\n    0x81c2c92e,\\n    0x92722c85,\\n    0xa2bfe8a1,\\n    0xa81a664b,\\n    0xc24b8b70,\\n    0xc76c51a3,\\n    0xd192e819,\\n    0xd6990624,\\n    0xf40e3585,\\n    0x106aa070,\\n    0x19a4c116,\\n    0x1e376c08,\\n    0x2748774c,\\n    0x34b0bcb5,\\n    0x391c0cb3,\\n    0x4ed8aa4a,\\n    0x5b9cca4f,\\n    0x682e6ff3,\\n    0x748f82ee,\\n    0x78a5636f,\\n    0x84c87814,\\n    0x8cc70208,\\n    0x90befffa,\\n    0xa4506ceb,\\n    0xbef9a3f7,\\n    0xc67178f2\\n]);\\n/**\\n * @internal\\n */\\nexports.INIT = [\\n    0x6a09e667,\\n    0xbb67ae85,\\n    0x3c6ef372,\\n    0xa54ff53a,\\n    0x510e527f,\\n    0x9b05688c,\\n    0x1f83d9ab,\\n    0x5be0cd19\\n];\\n/**\\n * @internal\\n */\\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\\n//# sourceMappingURL=constants.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-js/build/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-js/build/index.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-js/build/index.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\ntslib_1.__exportStar(__webpack_require__(/*! ./jsSha256 */ \\\"./node_modules/@aws-crypto/sha256-js/build/jsSha256.js\\\"), exports);\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-js/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/sha256-js/build/jsSha256.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/sha256-js/build/jsSha256.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.Sha256 = void 0;\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\nvar constants_1 = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-crypto/sha256-js/build/constants.js\\\");\\nvar RawSha256_1 = __webpack_require__(/*! ./RawSha256 */ \\\"./node_modules/@aws-crypto/sha256-js/build/RawSha256.js\\\");\\nvar util_1 = __webpack_require__(/*! @aws-crypto/util */ \\\"./node_modules/@aws-crypto/util/build/index.js\\\");\\nvar Sha256 = /** @class */ (function () {\\n    function Sha256(secret) {\\n        this.hash = new RawSha256_1.RawSha256();\\n        if (secret) {\\n            this.outer = new RawSha256_1.RawSha256();\\n            var inner = bufferFromSecret(secret);\\n            var outer = new Uint8Array(constants_1.BLOCK_SIZE);\\n            outer.set(inner);\\n            for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\\n                inner[i] ^= 0x36;\\n                outer[i] ^= 0x5c;\\n            }\\n            this.hash.update(inner);\\n            this.outer.update(outer);\\n            // overwrite the copied key in memory\\n            for (var i = 0; i < inner.byteLength; i++) {\\n                inner[i] = 0;\\n            }\\n        }\\n    }\\n    Sha256.prototype.update = function (toHash) {\\n        if ((0, util_1.isEmptyData)(toHash) || this.error) {\\n            return;\\n        }\\n        try {\\n            this.hash.update((0, util_1.convertToBuffer)(toHash));\\n        }\\n        catch (e) {\\n            this.error = e;\\n        }\\n    };\\n    /* This synchronous method keeps compatibility\\n     * with the v2 aws-sdk.\\n     */\\n    Sha256.prototype.digestSync = function () {\\n        if (this.error) {\\n            throw this.error;\\n        }\\n        if (this.outer) {\\n            if (!this.outer.finished) {\\n                this.outer.update(this.hash.digest());\\n            }\\n            return this.outer.digest();\\n        }\\n        return this.hash.digest();\\n    };\\n    /* The underlying digest method here is synchronous.\\n     * To keep the same interface with the other hash functions\\n     * the default is to expose this as an async method.\\n     * However, it can sometimes be useful to have a sync method.\\n     */\\n    Sha256.prototype.digest = function () {\\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\\n            return tslib_1.__generator(this, function (_a) {\\n                return [2 /*return*/, this.digestSync()];\\n            });\\n        });\\n    };\\n    return Sha256;\\n}());\\nexports.Sha256 = Sha256;\\nfunction bufferFromSecret(secret) {\\n    var input = (0, util_1.convertToBuffer)(secret);\\n    if (input.byteLength > constants_1.BLOCK_SIZE) {\\n        var bufferHash = new RawSha256_1.RawSha256();\\n        bufferHash.update(input);\\n        input = bufferHash.digest();\\n    }\\n    var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\\n    buffer.set(input);\\n    return buffer;\\n}\\n//# sourceMappingURL=jsSha256.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/supports-web-crypto/build/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/supports-web-crypto/build/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\ntslib_1.__exportStar(__webpack_require__(/*! ./supportsWebCrypto */ \\\"./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js\\\"), exports);\\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/supports-web-crypto/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\\nvar tslib_1 = __webpack_require__(/*! tslib */ \\\"./node_modules/tslib/tslib.es6.js\\\");\\nvar subtleCryptoMethods = [\\n    \\\"decrypt\\\",\\n    \\\"digest\\\",\\n    \\\"encrypt\\\",\\n    \\\"exportKey\\\",\\n    \\\"generateKey\\\",\\n    \\\"importKey\\\",\\n    \\\"sign\\\",\\n    \\\"verify\\\"\\n];\\nfunction supportsWebCrypto(window) {\\n    if (supportsSecureRandom(window) &&\\n        typeof window.crypto.subtle === \\\"object\\\") {\\n        var subtle = window.crypto.subtle;\\n        return supportsSubtleCrypto(subtle);\\n    }\\n    return false;\\n}\\nexports.supportsWebCrypto = supportsWebCrypto;\\nfunction supportsSecureRandom(window) {\\n    if (typeof window === \\\"object\\\" && typeof window.crypto === \\\"object\\\") {\\n        var getRandomValues = window.crypto.getRandomValues;\\n        return typeof getRandomValues === \\\"function\\\";\\n    }\\n    return false;\\n}\\nexports.supportsSecureRandom = supportsSecureRandom;\\nfunction supportsSubtleCrypto(subtle) {\\n    return (subtle &&\\n        subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \\\"function\\\"; }));\\n}\\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\\nfunction supportsZeroByteGCM(subtle) {\\n    return tslib_1.__awaiter(this, void 0, void 0, function () {\\n        var key, zeroByteAuthTag, _a;\\n        return tslib_1.__generator(this, function (_b) {\\n            switch (_b.label) {\\n                case 0:\\n                    if (!supportsSubtleCrypto(subtle))\\n                        return [2 /*return*/, false];\\n                    _b.label = 1;\\n                case 1:\\n                    _b.trys.push([1, 4, , 5]);\\n                    return [4 /*yield*/, subtle.generateKey({ name: \\\"AES-GCM\\\", length: 128 }, false, [\\\"encrypt\\\"])];\\n                case 2:\\n                    key = _b.sent();\\n                    return [4 /*yield*/, subtle.encrypt({\\n                            name: \\\"AES-GCM\\\",\\n                            iv: new Uint8Array(Array(12)),\\n                            additionalData: new Uint8Array(Array(16)),\\n                            tagLength: 128\\n                        }, key, new Uint8Array(0))];\\n                case 3:\\n                    zeroByteAuthTag = _b.sent();\\n                    return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\\n                case 4:\\n                    _a = _b.sent();\\n                    return [2 /*return*/, false];\\n                case 5: return [2 /*return*/];\\n            }\\n        });\\n    });\\n}\\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\\n//# sourceMappingURL=data:application/json;base64,[encoded data, 4324 characters]\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/util/build/convertToBuffer.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/util/build/convertToBuffer.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")[\\\"Buffer\\\"];\\n\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.convertToBuffer = void 0;\\nvar util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ \\\"./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js\\\");\\n// Quick polyfill\\nvar fromUtf8 = typeof Buffer !== \\\"undefined\\\" && Buffer.from\\n    ? function (input) { return Buffer.from(input, \\\"utf8\\\"); }\\n    : util_utf8_browser_1.fromUtf8;\\nfunction convertToBuffer(data) {\\n    // Already a Uint8, do nothing\\n    if (data instanceof Uint8Array)\\n        return data;\\n    if (typeof data === \\\"string\\\") {\\n        return fromUtf8(data);\\n    }\\n    if (ArrayBuffer.isView(data)) {\\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\\n    }\\n    return new Uint8Array(data);\\n}\\nexports.convertToBuffer = convertToBuffer;\\n//# sourceMappingURL=convertToBuffer.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/util/build/convertToBuffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/util/build/index.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-crypto/util/build/index.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\\nvar convertToBuffer_1 = __webpack_require__(/*! ./convertToBuffer */ \\\"./node_modules/@aws-crypto/util/build/convertToBuffer.js\\\");\\nObject.defineProperty(exports, \\\"convertToBuffer\\\", ({ enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } }));\\nvar isEmptyData_1 = __webpack_require__(/*! ./isEmptyData */ \\\"./node_modules/@aws-crypto/util/build/isEmptyData.js\\\");\\nObject.defineProperty(exports, \\\"isEmptyData\\\", ({ enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } }));\\nvar numToUint8_1 = __webpack_require__(/*! ./numToUint8 */ \\\"./node_modules/@aws-crypto/util/build/numToUint8.js\\\");\\nObject.defineProperty(exports, \\\"numToUint8\\\", ({ enumerable: true, get: function () { return numToUint8_1.numToUint8; } }));\\nvar uint32ArrayFrom_1 = __webpack_require__(/*! ./uint32ArrayFrom */ \\\"./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js\\\");\\nObject.defineProperty(exports, \\\"uint32ArrayFrom\\\", ({ enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } }));\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/util/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/util/build/isEmptyData.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/util/build/isEmptyData.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isEmptyData = void 0;\\nfunction isEmptyData(data) {\\n    if (typeof data === \\\"string\\\") {\\n        return data.length === 0;\\n    }\\n    return data.byteLength === 0;\\n}\\nexports.isEmptyData = isEmptyData;\\n//# sourceMappingURL=isEmptyData.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/util/build/isEmptyData.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/util/build/numToUint8.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-crypto/util/build/numToUint8.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.numToUint8 = void 0;\\nfunction numToUint8(num) {\\n    return new Uint8Array([\\n        (num & 0xff000000) >> 24,\\n        (num & 0x00ff0000) >> 16,\\n        (num & 0x0000ff00) >> 8,\\n        num & 0x000000ff,\\n    ]);\\n}\\nexports.numToUint8 = numToUint8;\\n//# sourceMappingURL=numToUint8.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/util/build/numToUint8.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.uint32ArrayFrom = void 0;\\n// IE 11 does not support Array.from, so we do it manually\\nfunction uint32ArrayFrom(a_lookUpTable) {\\n    if (!Uint32Array.from) {\\n        var return_array = new Uint32Array(a_lookUpTable.length);\\n        var a_index = 0;\\n        while (a_index < a_lookUpTable.length) {\\n            return_array[a_index] = a_lookUpTable[a_index];\\n            a_index += 1;\\n        }\\n        return return_array;\\n    }\\n    return Uint32Array.from(a_lookUpTable);\\n}\\nexports.uint32ArrayFrom = uint32ArrayFrom;\\n//# sourceMappingURL=uint32ArrayFrom.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js ***!\n  \\***************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ChimeSDKMessaging\\\": () => (/* binding */ ChimeSDKMessaging)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_AssociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./commands/AssociateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/AssociateChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_BatchCreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/BatchCreateChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/BatchCreateChannelMembershipCommand.js\\\");\\n/* harmony import */ var _commands_ChannelFlowCallbackCommand__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commands/ChannelFlowCallbackCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ChannelFlowCallbackCommand.js\\\");\\n/* harmony import */ var _commands_CreateChannelBanCommand__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./commands/CreateChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelBanCommand.js\\\");\\n/* harmony import */ var _commands_CreateChannelCommand__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commands/CreateChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelCommand.js\\\");\\n/* harmony import */ var _commands_CreateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./commands/CreateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_CreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./commands/CreateChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelMembershipCommand.js\\\");\\n/* harmony import */ var _commands_CreateChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./commands/CreateChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelModeratorCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelBanCommand__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./commands/DeleteChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelBanCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelCommand__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./commands/DeleteChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelFlowCommand__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./commands/DeleteChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./commands/DeleteChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMembershipCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelMessageCommand__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./commands/DeleteChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMessageCommand.js\\\");\\n/* harmony import */ var _commands_DeleteChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./commands/DeleteChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelModeratorCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelBanCommand__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./commands/DescribeChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelBanCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelCommand__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./commands/DescribeChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelFlowCommand__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./commands/DescribeChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./commands/DescribeChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelMembershipForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./commands/DescribeChannelMembershipForAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipForAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./commands/DescribeChannelModeratedByAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratedByAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _commands_DescribeChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./commands/DescribeChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratorCommand.js\\\");\\n/* harmony import */ var _commands_DisassociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./commands/DisassociateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DisassociateChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_GetChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./commands/GetChannelMembershipPreferencesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMembershipPreferencesCommand.js\\\");\\n/* harmony import */ var _commands_GetChannelMessageCommand__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./commands/GetChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageCommand.js\\\");\\n/* harmony import */ var _commands_GetChannelMessageStatusCommand__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./commands/GetChannelMessageStatusCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageStatusCommand.js\\\");\\n/* harmony import */ var _commands_GetMessagingSessionEndpointCommand__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./commands/GetMessagingSessionEndpointCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetMessagingSessionEndpointCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./commands/ListChannelBansCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./commands/ListChannelFlowsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./commands/ListChannelMembershipsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./commands/ListChannelMembershipsForAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./commands/ListChannelMessagesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./commands/ListChannelModeratorsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./commands/ListChannelsAssociatedWithChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelsCommand__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./commands/ListChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js\\\");\\n/* harmony import */ var _commands_ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./commands/ListChannelsModeratedByAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _commands_ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./commands/ListSubChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js\\\");\\n/* harmony import */ var _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./commands/ListTagsForResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListTagsForResourceCommand.js\\\");\\n/* harmony import */ var _commands_PutChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./commands/PutChannelMembershipPreferencesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/PutChannelMembershipPreferencesCommand.js\\\");\\n/* harmony import */ var _commands_RedactChannelMessageCommand__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./commands/RedactChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/RedactChannelMessageCommand.js\\\");\\n/* harmony import */ var _commands_SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./commands/SearchChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js\\\");\\n/* harmony import */ var _commands_SendChannelMessageCommand__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./commands/SendChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SendChannelMessageCommand.js\\\");\\n/* harmony import */ var _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./commands/TagResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/TagResourceCommand.js\\\");\\n/* harmony import */ var _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./commands/UntagResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UntagResourceCommand.js\\\");\\n/* harmony import */ var _commands_UpdateChannelCommand__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./commands/UpdateChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelCommand.js\\\");\\n/* harmony import */ var _commands_UpdateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./commands/UpdateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelFlowCommand.js\\\");\\n/* harmony import */ var _commands_UpdateChannelMessageCommand__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./commands/UpdateChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelMessageCommand.js\\\");\\n/* harmony import */ var _commands_UpdateChannelReadMarkerCommand__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./commands/UpdateChannelReadMarkerCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelReadMarkerCommand.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nclass ChimeSDKMessaging extends _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_0__.ChimeSDKMessagingClient {\\n    associateChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_AssociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_1__.AssociateChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    batchCreateChannelMembership(args, optionsOrCb, cb) {\\n        const command = new _commands_BatchCreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_2__.BatchCreateChannelMembershipCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    channelFlowCallback(args, optionsOrCb, cb) {\\n        const command = new _commands_ChannelFlowCallbackCommand__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowCallbackCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    createChannel(args, optionsOrCb, cb) {\\n        const command = new _commands_CreateChannelCommand__WEBPACK_IMPORTED_MODULE_4__.CreateChannelCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    createChannelBan(args, optionsOrCb, cb) {\\n        const command = new _commands_CreateChannelBanCommand__WEBPACK_IMPORTED_MODULE_5__.CreateChannelBanCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    createChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_CreateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_6__.CreateChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    createChannelMembership(args, optionsOrCb, cb) {\\n        const command = new _commands_CreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_7__.CreateChannelMembershipCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    createChannelModerator(args, optionsOrCb, cb) {\\n        const command = new _commands_CreateChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_8__.CreateChannelModeratorCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannel(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelCommand__WEBPACK_IMPORTED_MODULE_9__.DeleteChannelCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannelBan(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelBanCommand__WEBPACK_IMPORTED_MODULE_10__.DeleteChannelBanCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelFlowCommand__WEBPACK_IMPORTED_MODULE_11__.DeleteChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannelMembership(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_12__.DeleteChannelMembershipCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannelMessage(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelMessageCommand__WEBPACK_IMPORTED_MODULE_13__.DeleteChannelMessageCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    deleteChannelModerator(args, optionsOrCb, cb) {\\n        const command = new _commands_DeleteChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_14__.DeleteChannelModeratorCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannel(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelCommand__WEBPACK_IMPORTED_MODULE_15__.DescribeChannelCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelBan(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelBanCommand__WEBPACK_IMPORTED_MODULE_16__.DescribeChannelBanCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelFlowCommand__WEBPACK_IMPORTED_MODULE_17__.DescribeChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelMembership(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_18__.DescribeChannelMembershipCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelMembershipForAppInstanceUser(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelMembershipForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_19__.DescribeChannelMembershipForAppInstanceUserCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelModeratedByAppInstanceUser(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_20__.DescribeChannelModeratedByAppInstanceUserCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    describeChannelModerator(args, optionsOrCb, cb) {\\n        const command = new _commands_DescribeChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_21__.DescribeChannelModeratorCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    disassociateChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_DisassociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_22__.DisassociateChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    getChannelMembershipPreferences(args, optionsOrCb, cb) {\\n        const command = new _commands_GetChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_23__.GetChannelMembershipPreferencesCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    getChannelMessage(args, optionsOrCb, cb) {\\n        const command = new _commands_GetChannelMessageCommand__WEBPACK_IMPORTED_MODULE_24__.GetChannelMessageCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    getChannelMessageStatus(args, optionsOrCb, cb) {\\n        const command = new _commands_GetChannelMessageStatusCommand__WEBPACK_IMPORTED_MODULE_25__.GetChannelMessageStatusCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    getMessagingSessionEndpoint(args, optionsOrCb, cb) {\\n        const command = new _commands_GetMessagingSessionEndpointCommand__WEBPACK_IMPORTED_MODULE_26__.GetMessagingSessionEndpointCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelBans(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_27__.ListChannelBansCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelFlows(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_28__.ListChannelFlowsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelMemberships(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_29__.ListChannelMembershipsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelMembershipsForAppInstanceUser(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_30__.ListChannelMembershipsForAppInstanceUserCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelMessages(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_31__.ListChannelMessagesCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelModerators(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_32__.ListChannelModeratorsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannels(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelsCommand__WEBPACK_IMPORTED_MODULE_33__.ListChannelsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelsAssociatedWithChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_34__.ListChannelsAssociatedWithChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listChannelsModeratedByAppInstanceUser(args, optionsOrCb, cb) {\\n        const command = new _commands_ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_35__.ListChannelsModeratedByAppInstanceUserCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listSubChannels(args, optionsOrCb, cb) {\\n        const command = new _commands_ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_36__.ListSubChannelsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    listTagsForResource(args, optionsOrCb, cb) {\\n        const command = new _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_37__.ListTagsForResourceCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    putChannelMembershipPreferences(args, optionsOrCb, cb) {\\n        const command = new _commands_PutChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_38__.PutChannelMembershipPreferencesCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    redactChannelMessage(args, optionsOrCb, cb) {\\n        const command = new _commands_RedactChannelMessageCommand__WEBPACK_IMPORTED_MODULE_39__.RedactChannelMessageCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    searchChannels(args, optionsOrCb, cb) {\\n        const command = new _commands_SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_40__.SearchChannelsCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    sendChannelMessage(args, optionsOrCb, cb) {\\n        const command = new _commands_SendChannelMessageCommand__WEBPACK_IMPORTED_MODULE_41__.SendChannelMessageCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    tagResource(args, optionsOrCb, cb) {\\n        const command = new _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_42__.TagResourceCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    untagResource(args, optionsOrCb, cb) {\\n        const command = new _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_43__.UntagResourceCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    updateChannel(args, optionsOrCb, cb) {\\n        const command = new _commands_UpdateChannelCommand__WEBPACK_IMPORTED_MODULE_44__.UpdateChannelCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    updateChannelFlow(args, optionsOrCb, cb) {\\n        const command = new _commands_UpdateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_45__.UpdateChannelFlowCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    updateChannelMessage(args, optionsOrCb, cb) {\\n        const command = new _commands_UpdateChannelMessageCommand__WEBPACK_IMPORTED_MODULE_46__.UpdateChannelMessageCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n    updateChannelReadMarker(args, optionsOrCb, cb) {\\n        const command = new _commands_UpdateChannelReadMarkerCommand__WEBPACK_IMPORTED_MODULE_47__.UpdateChannelReadMarkerCommand(args);\\n        if (typeof optionsOrCb === \\\"function\\\") {\\n            this.send(command, optionsOrCb);\\n        }\\n        else if (typeof cb === \\\"function\\\") {\\n            if (typeof optionsOrCb !== \\\"object\\\")\\n                throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\\n            this.send(command, optionsOrCb || {}, cb);\\n        }\\n        else {\\n            return this.send(command, optionsOrCb);\\n        }\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ChimeSDKMessagingClient\\\": () => (/* binding */ ChimeSDKMessagingClient)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/config-resolver */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-content-length */ \\\"./node_modules/@aws-sdk/middleware-content-length/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-host-header */ \\\"./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/middleware-logger */ \\\"./node_modules/@aws-sdk/middleware-logger/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_recursion_detection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @aws-sdk/middleware-recursion-detection */ \\\"./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-sdk/middleware-retry */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-sdk/middleware-user-agent */ \\\"./node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _endpoint_EndpointParameters__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./endpoint/EndpointParameters */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/EndpointParameters.js\\\");\\n/* harmony import */ var _runtimeConfig__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./runtimeConfig */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.browser.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nclass ChimeSDKMessagingClient extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_9__.Client {\\n    constructor(configuration) {\\n        const _config_0 = (0,_runtimeConfig__WEBPACK_IMPORTED_MODULE_10__.getRuntimeConfig)(configuration);\\n        const _config_1 = (0,_endpoint_EndpointParameters__WEBPACK_IMPORTED_MODULE_11__.resolveClientEndpointParameters)(_config_0);\\n        const _config_2 = (0,_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_0__.resolveRegionConfig)(_config_1);\\n        const _config_3 = (0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_2__.resolveEndpointConfig)(_config_2);\\n        const _config_4 = (0,_aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_6__.resolveRetryConfig)(_config_3);\\n        const _config_5 = (0,_aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_3__.resolveHostHeaderConfig)(_config_4);\\n        const _config_6 = (0,_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_7__.resolveAwsAuthConfig)(_config_5);\\n        const _config_7 = (0,_aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_8__.resolveUserAgentConfig)(_config_6);\\n        super(_config_7);\\n        this.config = _config_7;\\n        this.middlewareStack.use((0,_aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_6__.getRetryPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_1__.getContentLengthPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_3__.getHostHeaderPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_logger__WEBPACK_IMPORTED_MODULE_4__.getLoggerPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_recursion_detection__WEBPACK_IMPORTED_MODULE_5__.getRecursionDetectionPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_7__.getAwsAuthPlugin)(this.config));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_8__.getUserAgentPlugin)(this.config));\\n    }\\n    destroy() {\\n        super.destroy();\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/AssociateChannelFlowCommand.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/AssociateChannelFlowCommand.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AssociateChannelFlowCommand\\\": () => (/* binding */ AssociateChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass AssociateChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, AssociateChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"AssociateChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.AssociateChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1AssociateChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1AssociateChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/AssociateChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/BatchCreateChannelMembershipCommand.js\":\n/*!******************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/BatchCreateChannelMembershipCommand.js ***!\n  \\******************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"BatchCreateChannelMembershipCommand\\\": () => (/* binding */ BatchCreateChannelMembershipCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass BatchCreateChannelMembershipCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, BatchCreateChannelMembershipCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"BatchCreateChannelMembershipCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.BatchCreateChannelMembershipRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.BatchCreateChannelMembershipResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1BatchCreateChannelMembershipCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1BatchCreateChannelMembershipCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/BatchCreateChannelMembershipCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ChannelFlowCallbackCommand.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ChannelFlowCallbackCommand.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ChannelFlowCallbackCommand\\\": () => (/* binding */ ChannelFlowCallbackCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ChannelFlowCallbackCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ChannelFlowCallbackCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ChannelFlowCallbackCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowCallbackRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowCallbackResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ChannelFlowCallbackCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ChannelFlowCallbackCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ChannelFlowCallbackCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelBanCommand.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelBanCommand.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CreateChannelBanCommand\\\": () => (/* binding */ CreateChannelBanCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass CreateChannelBanCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, CreateChannelBanCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"CreateChannelBanCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelBanRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelBanResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1CreateChannelBanCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1CreateChannelBanCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelBanCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelCommand.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelCommand.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CreateChannelCommand\\\": () => (/* binding */ CreateChannelCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass CreateChannelCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, CreateChannelCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"CreateChannelCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1CreateChannelCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1CreateChannelCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelFlowCommand.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelFlowCommand.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CreateChannelFlowCommand\\\": () => (/* binding */ CreateChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass CreateChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, CreateChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"CreateChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelFlowResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1CreateChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1CreateChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelMembershipCommand.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelMembershipCommand.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CreateChannelMembershipCommand\\\": () => (/* binding */ CreateChannelMembershipCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass CreateChannelMembershipCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, CreateChannelMembershipCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"CreateChannelMembershipCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelMembershipRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelMembershipResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1CreateChannelMembershipCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1CreateChannelMembershipCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelMembershipCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelModeratorCommand.js\":\n/*!************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelModeratorCommand.js ***!\n  \\************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CreateChannelModeratorCommand\\\": () => (/* binding */ CreateChannelModeratorCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass CreateChannelModeratorCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, CreateChannelModeratorCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"CreateChannelModeratorCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelModeratorRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.CreateChannelModeratorResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1CreateChannelModeratorCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1CreateChannelModeratorCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelModeratorCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelBanCommand.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelBanCommand.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelBanCommand\\\": () => (/* binding */ DeleteChannelBanCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelBanCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelBanCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelBanCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelBanRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelBanCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelBanCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelBanCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelCommand.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelCommand.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelCommand\\\": () => (/* binding */ DeleteChannelCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelFlowCommand.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelFlowCommand.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelFlowCommand\\\": () => (/* binding */ DeleteChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMembershipCommand.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMembershipCommand.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelMembershipCommand\\\": () => (/* binding */ DeleteChannelMembershipCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelMembershipCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelMembershipCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelMembershipCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelMembershipRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelMembershipCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelMembershipCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMembershipCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMessageCommand.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMessageCommand.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelMessageCommand\\\": () => (/* binding */ DeleteChannelMessageCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelMessageCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelMessageCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelMessageCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelMessageRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelMessageCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelMessageCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMessageCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelModeratorCommand.js\":\n/*!************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelModeratorCommand.js ***!\n  \\************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DeleteChannelModeratorCommand\\\": () => (/* binding */ DeleteChannelModeratorCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DeleteChannelModeratorCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DeleteChannelModeratorCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DeleteChannelModeratorCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelModeratorRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DeleteChannelModeratorCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DeleteChannelModeratorCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelModeratorCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelBanCommand.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelBanCommand.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelBanCommand\\\": () => (/* binding */ DescribeChannelBanCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelBanCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelBanCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelBanCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelBanRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelBanResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelBanCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelBanCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelBanCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelCommand.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelCommand.js ***!\n  \\*****************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelCommand\\\": () => (/* binding */ DescribeChannelCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelFlowCommand.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelFlowCommand.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelFlowCommand\\\": () => (/* binding */ DescribeChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelFlowResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipCommand.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipCommand.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelMembershipCommand\\\": () => (/* binding */ DescribeChannelMembershipCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelMembershipCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelMembershipCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelMembershipCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelMembershipCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelMembershipCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipForAppInstanceUserCommand.js\":\n/*!*********************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipForAppInstanceUserCommand.js ***!\n  \\*********************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserCommand\\\": () => (/* binding */ DescribeChannelMembershipForAppInstanceUserCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelMembershipForAppInstanceUserCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelMembershipForAppInstanceUserCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelMembershipForAppInstanceUserCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipForAppInstanceUserCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratedByAppInstanceUserCommand.js\":\n/*!*******************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratedByAppInstanceUserCommand.js ***!\n  \\*******************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserCommand\\\": () => (/* binding */ DescribeChannelModeratedByAppInstanceUserCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelModeratedByAppInstanceUserCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelModeratedByAppInstanceUserCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelModeratedByAppInstanceUserCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratedByAppInstanceUserCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratorCommand.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratorCommand.js ***!\n  \\**************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DescribeChannelModeratorCommand\\\": () => (/* binding */ DescribeChannelModeratorCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DescribeChannelModeratorCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DescribeChannelModeratorCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DescribeChannelModeratorCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratorRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratorResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DescribeChannelModeratorCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DescribeChannelModeratorCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratorCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DisassociateChannelFlowCommand.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DisassociateChannelFlowCommand.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DisassociateChannelFlowCommand\\\": () => (/* binding */ DisassociateChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass DisassociateChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, DisassociateChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"DisassociateChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.DisassociateChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1DisassociateChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1DisassociateChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DisassociateChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMembershipPreferencesCommand.js\":\n/*!*********************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMembershipPreferencesCommand.js ***!\n  \\*********************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"GetChannelMembershipPreferencesCommand\\\": () => (/* binding */ GetChannelMembershipPreferencesCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass GetChannelMembershipPreferencesCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, GetChannelMembershipPreferencesCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"GetChannelMembershipPreferencesCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMembershipPreferencesRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMembershipPreferencesResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1GetChannelMembershipPreferencesCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1GetChannelMembershipPreferencesCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMembershipPreferencesCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageCommand.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageCommand.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"GetChannelMessageCommand\\\": () => (/* binding */ GetChannelMessageCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass GetChannelMessageCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, GetChannelMessageCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"GetChannelMessageCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1GetChannelMessageCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1GetChannelMessageCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageStatusCommand.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageStatusCommand.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"GetChannelMessageStatusCommand\\\": () => (/* binding */ GetChannelMessageStatusCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass GetChannelMessageStatusCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, GetChannelMessageStatusCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"GetChannelMessageStatusCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageStatusRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageStatusResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1GetChannelMessageStatusCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1GetChannelMessageStatusCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageStatusCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetMessagingSessionEndpointCommand.js\":\n/*!*****************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetMessagingSessionEndpointCommand.js ***!\n  \\*****************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"GetMessagingSessionEndpointCommand\\\": () => (/* binding */ GetMessagingSessionEndpointCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass GetMessagingSessionEndpointCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, GetMessagingSessionEndpointCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"GetMessagingSessionEndpointCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetMessagingSessionEndpointRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.GetMessagingSessionEndpointResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1GetMessagingSessionEndpointCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1GetMessagingSessionEndpointCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetMessagingSessionEndpointCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js ***!\n  \\*****************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelBansCommand\\\": () => (/* binding */ ListChannelBansCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelBansCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelBansCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelBansCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelBansRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelBansResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelBansCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelBansCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelFlowsCommand\\\": () => (/* binding */ ListChannelFlowsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelFlowsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelFlowsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelFlowsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelFlowsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelFlowsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelFlowsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelFlowsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js\":\n/*!************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js ***!\n  \\************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelMembershipsCommand\\\": () => (/* binding */ ListChannelMembershipsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelMembershipsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelMembershipsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelMembershipsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelMembershipsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelMembershipsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js\":\n/*!******************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js ***!\n  \\******************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserCommand\\\": () => (/* binding */ ListChannelMembershipsForAppInstanceUserCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelMembershipsForAppInstanceUserCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelMembershipsForAppInstanceUserCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelMembershipsForAppInstanceUserCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelMessagesCommand\\\": () => (/* binding */ ListChannelMessagesCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelMessagesCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelMessagesCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelMessagesCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMessagesRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelMessagesResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelMessagesCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelMessagesCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js ***!\n  \\***********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelModeratorsCommand\\\": () => (/* binding */ ListChannelModeratorsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelModeratorsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelModeratorsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelModeratorsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelModeratorsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelModeratorsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelModeratorsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelModeratorsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js\":\n/*!***************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js ***!\n  \\***************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowCommand\\\": () => (/* binding */ ListChannelsAssociatedWithChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelsAssociatedWithChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelsAssociatedWithChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelsAssociatedWithChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelsCommand\\\": () => (/* binding */ ListChannelsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js\":\n/*!****************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js ***!\n  \\****************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserCommand\\\": () => (/* binding */ ListChannelsModeratedByAppInstanceUserCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListChannelsModeratedByAppInstanceUserCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListChannelsModeratedByAppInstanceUserCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListChannelsModeratedByAppInstanceUserCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js ***!\n  \\*****************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListSubChannelsCommand\\\": () => (/* binding */ ListSubChannelsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListSubChannelsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListSubChannelsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListSubChannelsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListSubChannelsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListSubChannelsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListSubChannelsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListSubChannelsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListTagsForResourceCommand.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListTagsForResourceCommand.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ListTagsForResourceCommand\\\": () => (/* binding */ ListTagsForResourceCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass ListTagsForResourceCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, ListTagsForResourceCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"ListTagsForResourceCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListTagsForResourceRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.ListTagsForResourceResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1ListTagsForResourceCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1ListTagsForResourceCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListTagsForResourceCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/PutChannelMembershipPreferencesCommand.js\":\n/*!*********************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/PutChannelMembershipPreferencesCommand.js ***!\n  \\*********************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"PutChannelMembershipPreferencesCommand\\\": () => (/* binding */ PutChannelMembershipPreferencesCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass PutChannelMembershipPreferencesCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, PutChannelMembershipPreferencesCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"PutChannelMembershipPreferencesCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.PutChannelMembershipPreferencesRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.PutChannelMembershipPreferencesResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1PutChannelMembershipPreferencesCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1PutChannelMembershipPreferencesCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/PutChannelMembershipPreferencesCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/RedactChannelMessageCommand.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/RedactChannelMessageCommand.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"RedactChannelMessageCommand\\\": () => (/* binding */ RedactChannelMessageCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass RedactChannelMessageCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, RedactChannelMessageCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"RedactChannelMessageCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.RedactChannelMessageRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.RedactChannelMessageResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1RedactChannelMessageCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1RedactChannelMessageCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/RedactChannelMessageCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js\":\n/*!****************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js ***!\n  \\****************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SearchChannelsCommand\\\": () => (/* binding */ SearchChannelsCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass SearchChannelsCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, SearchChannelsCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"SearchChannelsCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.SearchChannelsRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.SearchChannelsResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1SearchChannelsCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1SearchChannelsCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SendChannelMessageCommand.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SendChannelMessageCommand.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SendChannelMessageCommand\\\": () => (/* binding */ SendChannelMessageCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass SendChannelMessageCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, SendChannelMessageCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"SendChannelMessageCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.SendChannelMessageRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.SendChannelMessageResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1SendChannelMessageCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1SendChannelMessageCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SendChannelMessageCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/TagResourceCommand.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/TagResourceCommand.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"TagResourceCommand\\\": () => (/* binding */ TagResourceCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass TagResourceCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, TagResourceCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"TagResourceCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.TagResourceRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1TagResourceCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1TagResourceCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/TagResourceCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UntagResourceCommand.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UntagResourceCommand.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"UntagResourceCommand\\\": () => (/* binding */ UntagResourceCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass UntagResourceCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, UntagResourceCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"UntagResourceCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UntagResourceRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: (output) => output,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1UntagResourceCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1UntagResourceCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UntagResourceCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelCommand.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelCommand.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"UpdateChannelCommand\\\": () => (/* binding */ UpdateChannelCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass UpdateChannelCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, UpdateChannelCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"UpdateChannelCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1UpdateChannelCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1UpdateChannelCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelFlowCommand.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelFlowCommand.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"UpdateChannelFlowCommand\\\": () => (/* binding */ UpdateChannelFlowCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass UpdateChannelFlowCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, UpdateChannelFlowCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"UpdateChannelFlowCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelFlowRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelFlowResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1UpdateChannelFlowCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1UpdateChannelFlowCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelFlowCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelMessageCommand.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelMessageCommand.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"UpdateChannelMessageCommand\\\": () => (/* binding */ UpdateChannelMessageCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass UpdateChannelMessageCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, UpdateChannelMessageCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"UpdateChannelMessageCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelMessageRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelMessageResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1UpdateChannelMessageCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1UpdateChannelMessageCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelMessageCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelReadMarkerCommand.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelReadMarkerCommand.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"UpdateChannelReadMarkerCommand\\\": () => (/* binding */ UpdateChannelReadMarkerCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-endpoint */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n/* harmony import */ var _protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../protocols/Aws_restJson1 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\\\");\\n\\n\\n\\n\\n\\nclass UpdateChannelReadMarkerCommand extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_2__.Command {\\n    constructor(input) {\\n        super();\\n        this.input = input;\\n    }\\n    static getEndpointParameterInstructions() {\\n        return {\\n            UseFIPS: { type: \\\"builtInParams\\\", name: \\\"useFipsEndpoint\\\" },\\n            Endpoint: { type: \\\"builtInParams\\\", name: \\\"endpoint\\\" },\\n            Region: { type: \\\"builtInParams\\\", name: \\\"region\\\" },\\n            UseDualStack: { type: \\\"builtInParams\\\", name: \\\"useDualstackEndpoint\\\" },\\n        };\\n    }\\n    resolveMiddleware(clientStack, configuration, options) {\\n        this.middlewareStack.use((0,_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin)(configuration, this.serialize, this.deserialize));\\n        this.middlewareStack.use((0,_aws_sdk_middleware_endpoint__WEBPACK_IMPORTED_MODULE_0__.getEndpointPlugin)(configuration, UpdateChannelReadMarkerCommand.getEndpointParameterInstructions()));\\n        const stack = clientStack.concat(this.middlewareStack);\\n        const { logger } = configuration;\\n        const clientName = \\\"ChimeSDKMessagingClient\\\";\\n        const commandName = \\\"UpdateChannelReadMarkerCommand\\\";\\n        const handlerExecutionContext = {\\n            logger,\\n            clientName,\\n            commandName,\\n            inputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelReadMarkerRequestFilterSensitiveLog,\\n            outputFilterSensitiveLog: _models_models_0__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelReadMarkerResponseFilterSensitiveLog,\\n        };\\n        const { requestHandler } = configuration;\\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\\n    }\\n    serialize(input, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.serializeAws_restJson1UpdateChannelReadMarkerCommand)(input, context);\\n    }\\n    deserialize(output, context) {\\n        return (0,_protocols_Aws_restJson1__WEBPACK_IMPORTED_MODULE_4__.deserializeAws_restJson1UpdateChannelReadMarkerCommand)(output, context);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelReadMarkerCommand.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/index.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/index.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AssociateChannelFlowCommand\\\": () => (/* reexport safe */ _AssociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_0__.AssociateChannelFlowCommand),\\n/* harmony export */   \\\"BatchCreateChannelMembershipCommand\\\": () => (/* reexport safe */ _BatchCreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_1__.BatchCreateChannelMembershipCommand),\\n/* harmony export */   \\\"ChannelFlowCallbackCommand\\\": () => (/* reexport safe */ _ChannelFlowCallbackCommand__WEBPACK_IMPORTED_MODULE_2__.ChannelFlowCallbackCommand),\\n/* harmony export */   \\\"CreateChannelBanCommand\\\": () => (/* reexport safe */ _CreateChannelBanCommand__WEBPACK_IMPORTED_MODULE_3__.CreateChannelBanCommand),\\n/* harmony export */   \\\"CreateChannelCommand\\\": () => (/* reexport safe */ _CreateChannelCommand__WEBPACK_IMPORTED_MODULE_4__.CreateChannelCommand),\\n/* harmony export */   \\\"CreateChannelFlowCommand\\\": () => (/* reexport safe */ _CreateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_5__.CreateChannelFlowCommand),\\n/* harmony export */   \\\"CreateChannelMembershipCommand\\\": () => (/* reexport safe */ _CreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_6__.CreateChannelMembershipCommand),\\n/* harmony export */   \\\"CreateChannelModeratorCommand\\\": () => (/* reexport safe */ _CreateChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_7__.CreateChannelModeratorCommand),\\n/* harmony export */   \\\"DeleteChannelBanCommand\\\": () => (/* reexport safe */ _DeleteChannelBanCommand__WEBPACK_IMPORTED_MODULE_8__.DeleteChannelBanCommand),\\n/* harmony export */   \\\"DeleteChannelCommand\\\": () => (/* reexport safe */ _DeleteChannelCommand__WEBPACK_IMPORTED_MODULE_9__.DeleteChannelCommand),\\n/* harmony export */   \\\"DeleteChannelFlowCommand\\\": () => (/* reexport safe */ _DeleteChannelFlowCommand__WEBPACK_IMPORTED_MODULE_10__.DeleteChannelFlowCommand),\\n/* harmony export */   \\\"DeleteChannelMembershipCommand\\\": () => (/* reexport safe */ _DeleteChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_11__.DeleteChannelMembershipCommand),\\n/* harmony export */   \\\"DeleteChannelMessageCommand\\\": () => (/* reexport safe */ _DeleteChannelMessageCommand__WEBPACK_IMPORTED_MODULE_12__.DeleteChannelMessageCommand),\\n/* harmony export */   \\\"DeleteChannelModeratorCommand\\\": () => (/* reexport safe */ _DeleteChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_13__.DeleteChannelModeratorCommand),\\n/* harmony export */   \\\"DescribeChannelBanCommand\\\": () => (/* reexport safe */ _DescribeChannelBanCommand__WEBPACK_IMPORTED_MODULE_14__.DescribeChannelBanCommand),\\n/* harmony export */   \\\"DescribeChannelCommand\\\": () => (/* reexport safe */ _DescribeChannelCommand__WEBPACK_IMPORTED_MODULE_15__.DescribeChannelCommand),\\n/* harmony export */   \\\"DescribeChannelFlowCommand\\\": () => (/* reexport safe */ _DescribeChannelFlowCommand__WEBPACK_IMPORTED_MODULE_16__.DescribeChannelFlowCommand),\\n/* harmony export */   \\\"DescribeChannelMembershipCommand\\\": () => (/* reexport safe */ _DescribeChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_17__.DescribeChannelMembershipCommand),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserCommand\\\": () => (/* reexport safe */ _DescribeChannelMembershipForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_18__.DescribeChannelMembershipForAppInstanceUserCommand),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserCommand\\\": () => (/* reexport safe */ _DescribeChannelModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_19__.DescribeChannelModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"DescribeChannelModeratorCommand\\\": () => (/* reexport safe */ _DescribeChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_20__.DescribeChannelModeratorCommand),\\n/* harmony export */   \\\"DisassociateChannelFlowCommand\\\": () => (/* reexport safe */ _DisassociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_21__.DisassociateChannelFlowCommand),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesCommand\\\": () => (/* reexport safe */ _GetChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_22__.GetChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"GetChannelMessageCommand\\\": () => (/* reexport safe */ _GetChannelMessageCommand__WEBPACK_IMPORTED_MODULE_23__.GetChannelMessageCommand),\\n/* harmony export */   \\\"GetChannelMessageStatusCommand\\\": () => (/* reexport safe */ _GetChannelMessageStatusCommand__WEBPACK_IMPORTED_MODULE_24__.GetChannelMessageStatusCommand),\\n/* harmony export */   \\\"GetMessagingSessionEndpointCommand\\\": () => (/* reexport safe */ _GetMessagingSessionEndpointCommand__WEBPACK_IMPORTED_MODULE_25__.GetMessagingSessionEndpointCommand),\\n/* harmony export */   \\\"ListChannelBansCommand\\\": () => (/* reexport safe */ _ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_26__.ListChannelBansCommand),\\n/* harmony export */   \\\"ListChannelFlowsCommand\\\": () => (/* reexport safe */ _ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_27__.ListChannelFlowsCommand),\\n/* harmony export */   \\\"ListChannelMembershipsCommand\\\": () => (/* reexport safe */ _ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_28__.ListChannelMembershipsCommand),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserCommand\\\": () => (/* reexport safe */ _ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_29__.ListChannelMembershipsForAppInstanceUserCommand),\\n/* harmony export */   \\\"ListChannelMessagesCommand\\\": () => (/* reexport safe */ _ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_30__.ListChannelMessagesCommand),\\n/* harmony export */   \\\"ListChannelModeratorsCommand\\\": () => (/* reexport safe */ _ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_31__.ListChannelModeratorsCommand),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowCommand\\\": () => (/* reexport safe */ _ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_32__.ListChannelsAssociatedWithChannelFlowCommand),\\n/* harmony export */   \\\"ListChannelsCommand\\\": () => (/* reexport safe */ _ListChannelsCommand__WEBPACK_IMPORTED_MODULE_33__.ListChannelsCommand),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserCommand\\\": () => (/* reexport safe */ _ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_34__.ListChannelsModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"ListSubChannelsCommand\\\": () => (/* reexport safe */ _ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_35__.ListSubChannelsCommand),\\n/* harmony export */   \\\"ListTagsForResourceCommand\\\": () => (/* reexport safe */ _ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_36__.ListTagsForResourceCommand),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesCommand\\\": () => (/* reexport safe */ _PutChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_37__.PutChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"RedactChannelMessageCommand\\\": () => (/* reexport safe */ _RedactChannelMessageCommand__WEBPACK_IMPORTED_MODULE_38__.RedactChannelMessageCommand),\\n/* harmony export */   \\\"SearchChannelsCommand\\\": () => (/* reexport safe */ _SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_39__.SearchChannelsCommand),\\n/* harmony export */   \\\"SendChannelMessageCommand\\\": () => (/* reexport safe */ _SendChannelMessageCommand__WEBPACK_IMPORTED_MODULE_40__.SendChannelMessageCommand),\\n/* harmony export */   \\\"TagResourceCommand\\\": () => (/* reexport safe */ _TagResourceCommand__WEBPACK_IMPORTED_MODULE_41__.TagResourceCommand),\\n/* harmony export */   \\\"UntagResourceCommand\\\": () => (/* reexport safe */ _UntagResourceCommand__WEBPACK_IMPORTED_MODULE_42__.UntagResourceCommand),\\n/* harmony export */   \\\"UpdateChannelCommand\\\": () => (/* reexport safe */ _UpdateChannelCommand__WEBPACK_IMPORTED_MODULE_43__.UpdateChannelCommand),\\n/* harmony export */   \\\"UpdateChannelFlowCommand\\\": () => (/* reexport safe */ _UpdateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_44__.UpdateChannelFlowCommand),\\n/* harmony export */   \\\"UpdateChannelMessageCommand\\\": () => (/* reexport safe */ _UpdateChannelMessageCommand__WEBPACK_IMPORTED_MODULE_45__.UpdateChannelMessageCommand),\\n/* harmony export */   \\\"UpdateChannelReadMarkerCommand\\\": () => (/* reexport safe */ _UpdateChannelReadMarkerCommand__WEBPACK_IMPORTED_MODULE_46__.UpdateChannelReadMarkerCommand)\\n/* harmony export */ });\\n/* harmony import */ var _AssociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AssociateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/AssociateChannelFlowCommand.js\\\");\\n/* harmony import */ var _BatchCreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BatchCreateChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/BatchCreateChannelMembershipCommand.js\\\");\\n/* harmony import */ var _ChannelFlowCallbackCommand__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ChannelFlowCallbackCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ChannelFlowCallbackCommand.js\\\");\\n/* harmony import */ var _CreateChannelBanCommand__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CreateChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelBanCommand.js\\\");\\n/* harmony import */ var _CreateChannelCommand__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CreateChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelCommand.js\\\");\\n/* harmony import */ var _CreateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CreateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelFlowCommand.js\\\");\\n/* harmony import */ var _CreateChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelMembershipCommand.js\\\");\\n/* harmony import */ var _CreateChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CreateChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/CreateChannelModeratorCommand.js\\\");\\n/* harmony import */ var _DeleteChannelBanCommand__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DeleteChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelBanCommand.js\\\");\\n/* harmony import */ var _DeleteChannelCommand__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./DeleteChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelCommand.js\\\");\\n/* harmony import */ var _DeleteChannelFlowCommand__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./DeleteChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelFlowCommand.js\\\");\\n/* harmony import */ var _DeleteChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DeleteChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMembershipCommand.js\\\");\\n/* harmony import */ var _DeleteChannelMessageCommand__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./DeleteChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelMessageCommand.js\\\");\\n/* harmony import */ var _DeleteChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./DeleteChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DeleteChannelModeratorCommand.js\\\");\\n/* harmony import */ var _DescribeChannelBanCommand__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./DescribeChannelBanCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelBanCommand.js\\\");\\n/* harmony import */ var _DescribeChannelCommand__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./DescribeChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelCommand.js\\\");\\n/* harmony import */ var _DescribeChannelFlowCommand__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./DescribeChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelFlowCommand.js\\\");\\n/* harmony import */ var _DescribeChannelMembershipCommand__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./DescribeChannelMembershipCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipCommand.js\\\");\\n/* harmony import */ var _DescribeChannelMembershipForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./DescribeChannelMembershipForAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelMembershipForAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _DescribeChannelModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./DescribeChannelModeratedByAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratedByAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _DescribeChannelModeratorCommand__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./DescribeChannelModeratorCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DescribeChannelModeratorCommand.js\\\");\\n/* harmony import */ var _DisassociateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./DisassociateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/DisassociateChannelFlowCommand.js\\\");\\n/* harmony import */ var _GetChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./GetChannelMembershipPreferencesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMembershipPreferencesCommand.js\\\");\\n/* harmony import */ var _GetChannelMessageCommand__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./GetChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageCommand.js\\\");\\n/* harmony import */ var _GetChannelMessageStatusCommand__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./GetChannelMessageStatusCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetChannelMessageStatusCommand.js\\\");\\n/* harmony import */ var _GetMessagingSessionEndpointCommand__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./GetMessagingSessionEndpointCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/GetMessagingSessionEndpointCommand.js\\\");\\n/* harmony import */ var _ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ListChannelBansCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js\\\");\\n/* harmony import */ var _ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./ListChannelFlowsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js\\\");\\n/* harmony import */ var _ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./ListChannelMembershipsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js\\\");\\n/* harmony import */ var _ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./ListChannelMembershipsForAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./ListChannelMessagesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js\\\");\\n/* harmony import */ var _ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./ListChannelModeratorsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js\\\");\\n/* harmony import */ var _ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./ListChannelsAssociatedWithChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js\\\");\\n/* harmony import */ var _ListChannelsCommand__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./ListChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js\\\");\\n/* harmony import */ var _ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./ListChannelsModeratedByAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js\\\");\\n/* harmony import */ var _ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./ListSubChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js\\\");\\n/* harmony import */ var _ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./ListTagsForResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListTagsForResourceCommand.js\\\");\\n/* harmony import */ var _PutChannelMembershipPreferencesCommand__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./PutChannelMembershipPreferencesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/PutChannelMembershipPreferencesCommand.js\\\");\\n/* harmony import */ var _RedactChannelMessageCommand__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./RedactChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/RedactChannelMessageCommand.js\\\");\\n/* harmony import */ var _SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./SearchChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js\\\");\\n/* harmony import */ var _SendChannelMessageCommand__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./SendChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SendChannelMessageCommand.js\\\");\\n/* harmony import */ var _TagResourceCommand__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./TagResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/TagResourceCommand.js\\\");\\n/* harmony import */ var _UntagResourceCommand__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./UntagResourceCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UntagResourceCommand.js\\\");\\n/* harmony import */ var _UpdateChannelCommand__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./UpdateChannelCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelCommand.js\\\");\\n/* harmony import */ var _UpdateChannelFlowCommand__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./UpdateChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelFlowCommand.js\\\");\\n/* harmony import */ var _UpdateChannelMessageCommand__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./UpdateChannelMessageCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelMessageCommand.js\\\");\\n/* harmony import */ var _UpdateChannelReadMarkerCommand__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./UpdateChannelReadMarkerCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/UpdateChannelReadMarkerCommand.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/EndpointParameters.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/EndpointParameters.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveClientEndpointParameters\\\": () => (/* binding */ resolveClientEndpointParameters)\\n/* harmony export */ });\\nconst resolveClientEndpointParameters = (options) => {\\n    return {\\n        ...options,\\n        useDualstackEndpoint: options.useDualstackEndpoint ?? false,\\n        useFipsEndpoint: options.useFipsEndpoint ?? false,\\n        defaultSigningName: \\\"chime\\\",\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/EndpointParameters.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/endpointResolver.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/endpointResolver.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"defaultEndpointResolver\\\": () => (/* binding */ defaultEndpointResolver)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_endpoints__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-endpoints */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/index.js\\\");\\n/* harmony import */ var _ruleset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ruleset */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/ruleset.js\\\");\\n\\n\\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\\n    return (0,_aws_sdk_util_endpoints__WEBPACK_IMPORTED_MODULE_0__.resolveEndpoint)(_ruleset__WEBPACK_IMPORTED_MODULE_1__.ruleSet, {\\n        endpointParams: endpointParams,\\n        logger: context.logger,\\n    });\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/endpointResolver.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/ruleset.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/ruleset.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ruleSet\\\": () => (/* binding */ ruleSet)\\n/* harmony export */ });\\nconst r = \\\"fn\\\", s = \\\"argv\\\", t = \\\"ref\\\";\\nconst a = true, b = false, c = \\\"String\\\", d = \\\"PartitionResult\\\", e = \\\"tree\\\", f = \\\"error\\\", g = \\\"endpoint\\\", h = { \\\"required\\\": true, \\\"default\\\": false, \\\"type\\\": \\\"Boolean\\\" }, i = { [t]: \\\"Endpoint\\\" }, j = { [r]: \\\"booleanEquals\\\", [s]: [{ [t]: \\\"UseFIPS\\\" }, true] }, k = { [r]: \\\"booleanEquals\\\", [s]: [{ [t]: \\\"UseDualStack\\\" }, true] }, l = {}, m = { [r]: \\\"booleanEquals\\\", [s]: [true, { [r]: \\\"getAttr\\\", [s]: [{ [t]: d }, \\\"supportsFIPS\\\"] }] }, n = { [r]: \\\"booleanEquals\\\", [s]: [true, { [r]: \\\"getAttr\\\", [s]: [{ [t]: d }, \\\"supportsDualStack\\\"] }] }, o = [i], p = [j], q = [k];\\nconst _data = { version: \\\"1.0\\\", parameters: { Region: { required: a, type: c }, UseDualStack: h, UseFIPS: h, Endpoint: { required: b, type: c } }, rules: [{ conditions: [{ [r]: \\\"aws.partition\\\", [s]: [{ [t]: \\\"Region\\\" }], assign: d }], type: e, rules: [{ conditions: [{ [r]: \\\"isSet\\\", [s]: o }, { [r]: \\\"parseURL\\\", [s]: o, assign: \\\"url\\\" }], type: e, rules: [{ conditions: p, error: \\\"Invalid Configuration: FIPS and custom endpoint are not supported\\\", type: f }, { type: e, rules: [{ conditions: q, error: \\\"Invalid Configuration: Dualstack and custom endpoint are not supported\\\", type: f }, { endpoint: { url: i, properties: l, headers: l }, type: g }] }] }, { conditions: [j, k], type: e, rules: [{ conditions: [m, n], type: e, rules: [{ endpoint: { url: \\\"https://messaging-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\\\", properties: l, headers: l }, type: g }] }, { error: \\\"FIPS and DualStack are enabled, but this partition does not support one or both\\\", type: f }] }, { conditions: p, type: e, rules: [{ conditions: [m], type: e, rules: [{ type: e, rules: [{ endpoint: { url: \\\"https://messaging-chime-fips.{Region}.{PartitionResult#dnsSuffix}\\\", properties: l, headers: l }, type: g }] }] }, { error: \\\"FIPS is enabled but this partition does not support FIPS\\\", type: f }] }, { conditions: q, type: e, rules: [{ conditions: [n], type: e, rules: [{ endpoint: { url: \\\"https://messaging-chime.{Region}.{PartitionResult#dualStackDnsSuffix}\\\", properties: l, headers: l }, type: g }] }, { error: \\\"DualStack is enabled but this partition does not support DualStack\\\", type: f }] }, { endpoint: { url: \\\"https://messaging-chime.{Region}.{PartitionResult#dnsSuffix}\\\", properties: l, headers: l }, type: g }] }] };\\nconst ruleSet = _data;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/ruleset.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/index.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/index.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AllowNotifications\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.AllowNotifications),\\n/* harmony export */   \\\"AppInstanceUserMembershipSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.AppInstanceUserMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"AssociateChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.AssociateChannelFlowCommand),\\n/* harmony export */   \\\"AssociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.AssociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BadRequestException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.BadRequestException),\\n/* harmony export */   \\\"BatchChannelMembershipsFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.BatchChannelMembershipsFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.BatchCreateChannelMembershipCommand),\\n/* harmony export */   \\\"BatchCreateChannelMembershipErrorFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.BatchCreateChannelMembershipErrorFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.BatchCreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.BatchCreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelAssociatedWithFlowSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelAssociatedWithFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelBanFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelBanSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ChannelFlowCallbackCommand),\\n/* harmony export */   \\\"ChannelFlowCallbackRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowCallbackRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowCallbackResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMembershipFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipPreferencesFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMembershipPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipType\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMembershipType),\\n/* harmony export */   \\\"ChannelMessageCallbackFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageCallbackFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessagePersistenceType\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessagePersistenceType),\\n/* harmony export */   \\\"ChannelMessageStatus\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageStatus),\\n/* harmony export */   \\\"ChannelMessageStatusStructureFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageStatusStructureFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageType\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMessageType),\\n/* harmony export */   \\\"ChannelMode\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelMode),\\n/* harmony export */   \\\"ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelModeratorFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelModeratorSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelPrivacy\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelPrivacy),\\n/* harmony export */   \\\"ChannelSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChimeSDKMessaging\\\": () => (/* reexport safe */ _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_0__.ChimeSDKMessaging),\\n/* harmony export */   \\\"ChimeSDKMessagingClient\\\": () => (/* reexport safe */ _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingClient),\\n/* harmony export */   \\\"ChimeSDKMessagingServiceException\\\": () => (/* reexport safe */ _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_5__.ChimeSDKMessagingServiceException),\\n/* harmony export */   \\\"ConflictException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ConflictException),\\n/* harmony export */   \\\"CreateChannelBanCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.CreateChannelBanCommand),\\n/* harmony export */   \\\"CreateChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelBanResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.CreateChannelCommand),\\n/* harmony export */   \\\"CreateChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.CreateChannelFlowCommand),\\n/* harmony export */   \\\"CreateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.CreateChannelMembershipCommand),\\n/* harmony export */   \\\"CreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.CreateChannelModeratorCommand),\\n/* harmony export */   \\\"CreateChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.CreateChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelBanCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelBanCommand),\\n/* harmony export */   \\\"DeleteChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelCommand),\\n/* harmony export */   \\\"DeleteChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelFlowCommand),\\n/* harmony export */   \\\"DeleteChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMembershipCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelMembershipCommand),\\n/* harmony export */   \\\"DeleteChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMessageCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelMessageCommand),\\n/* harmony export */   \\\"DeleteChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelModeratorCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DeleteChannelModeratorCommand),\\n/* harmony export */   \\\"DeleteChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DeleteChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelBanCommand),\\n/* harmony export */   \\\"DescribeChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelCommand),\\n/* harmony export */   \\\"DescribeChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelFlowCommand),\\n/* harmony export */   \\\"DescribeChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelMembershipCommand),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelMembershipForAppInstanceUserCommand),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DescribeChannelModeratorCommand),\\n/* harmony export */   \\\"DescribeChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DescribeChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DisassociateChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.DisassociateChannelFlowCommand),\\n/* harmony export */   \\\"DisassociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.DisassociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ElasticChannelConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ElasticChannelConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ErrorCode\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ErrorCode),\\n/* harmony export */   \\\"FallbackAction\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.FallbackAction),\\n/* harmony export */   \\\"ForbiddenException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ForbiddenException),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.GetChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.GetChannelMessageCommand),\\n/* harmony export */   \\\"GetChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.GetChannelMessageStatusCommand),\\n/* harmony export */   \\\"GetChannelMessageStatusRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageStatusRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetChannelMessageStatusResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.GetMessagingSessionEndpointCommand),\\n/* harmony export */   \\\"GetMessagingSessionEndpointRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetMessagingSessionEndpointRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.GetMessagingSessionEndpointResponseFilterSensitiveLog),\\n/* harmony export */   \\\"IdentityFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.IdentityFilterSensitiveLog),\\n/* harmony export */   \\\"InvocationType\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.InvocationType),\\n/* harmony export */   \\\"LambdaConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.LambdaConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelBansCommand),\\n/* harmony export */   \\\"ListChannelBansRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelBansRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelBansResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelFlowsCommand),\\n/* harmony export */   \\\"ListChannelFlowsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelFlowsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelFlowsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelMembershipsCommand),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelMembershipsForAppInstanceUserCommand),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMembershipsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelMessagesCommand),\\n/* harmony export */   \\\"ListChannelMessagesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMessagesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelMessagesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelModeratorsCommand),\\n/* harmony export */   \\\"ListChannelModeratorsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelModeratorsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelModeratorsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelsAssociatedWithChannelFlowCommand),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelsCommand),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListChannelsModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListSubChannelsCommand),\\n/* harmony export */   \\\"ListSubChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListSubChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListSubChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.ListTagsForResourceCommand),\\n/* harmony export */   \\\"ListTagsForResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListTagsForResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ListTagsForResourceResponseFilterSensitiveLog),\\n/* harmony export */   \\\"MessageAttributeValueFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.MessageAttributeValueFilterSensitiveLog),\\n/* harmony export */   \\\"MessagingSessionEndpointFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.MessagingSessionEndpointFilterSensitiveLog),\\n/* harmony export */   \\\"NotFoundException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.NotFoundException),\\n/* harmony export */   \\\"ProcessorConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ProcessorConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ProcessorFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ProcessorFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.PushNotificationConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationPreferencesFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.PushNotificationPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationType\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.PushNotificationType),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.PutChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.PutChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.PutChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.RedactChannelMessageCommand),\\n/* harmony export */   \\\"RedactChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.RedactChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.RedactChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ResourceLimitExceededException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ResourceLimitExceededException),\\n/* harmony export */   \\\"SearchChannelsCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.SearchChannelsCommand),\\n/* harmony export */   \\\"SearchChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SearchChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SearchChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SearchChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SearchFieldFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldKey\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SearchFieldKey),\\n/* harmony export */   \\\"SearchFieldOperator\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SearchFieldOperator),\\n/* harmony export */   \\\"SendChannelMessageCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.SendChannelMessageCommand),\\n/* harmony export */   \\\"SendChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SendChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SendChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SendChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ServiceFailureException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ServiceFailureException),\\n/* harmony export */   \\\"ServiceUnavailableException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ServiceUnavailableException),\\n/* harmony export */   \\\"SortOrder\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SortOrder),\\n/* harmony export */   \\\"SubChannelSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.SubChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"TagFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.TagFilterSensitiveLog),\\n/* harmony export */   \\\"TagResourceCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.TagResourceCommand),\\n/* harmony export */   \\\"TagResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.TagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ThrottledClientException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.ThrottledClientException),\\n/* harmony export */   \\\"UnauthorizedClientException\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UnauthorizedClientException),\\n/* harmony export */   \\\"UntagResourceCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.UntagResourceCommand),\\n/* harmony export */   \\\"UntagResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UntagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.UpdateChannelCommand),\\n/* harmony export */   \\\"UpdateChannelFlowCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.UpdateChannelFlowCommand),\\n/* harmony export */   \\\"UpdateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.UpdateChannelMessageCommand),\\n/* harmony export */   \\\"UpdateChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerCommand\\\": () => (/* reexport safe */ _commands__WEBPACK_IMPORTED_MODULE_2__.UpdateChannelReadMarkerCommand),\\n/* harmony export */   \\\"UpdateChannelReadMarkerRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelReadMarkerRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelReadMarkerResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.UpdateChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"paginateListChannelBans\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelBans),\\n/* harmony export */   \\\"paginateListChannelFlows\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelFlows),\\n/* harmony export */   \\\"paginateListChannelMemberships\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelMemberships),\\n/* harmony export */   \\\"paginateListChannelMembershipsForAppInstanceUser\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelMembershipsForAppInstanceUser),\\n/* harmony export */   \\\"paginateListChannelMessages\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelMessages),\\n/* harmony export */   \\\"paginateListChannelModerators\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelModerators),\\n/* harmony export */   \\\"paginateListChannels\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannels),\\n/* harmony export */   \\\"paginateListChannelsAssociatedWithChannelFlow\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelsAssociatedWithChannelFlow),\\n/* harmony export */   \\\"paginateListChannelsModeratedByAppInstanceUser\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelsModeratedByAppInstanceUser),\\n/* harmony export */   \\\"paginateListSubChannels\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateListSubChannels),\\n/* harmony export */   \\\"paginateSearchChannels\\\": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_4__.paginateSearchChannels)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/index.js\\\");\\n/* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./models */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/index.js\\\");\\n/* harmony import */ var _pagination__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pagination */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/index.js\\\");\\n/* harmony import */ var _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./models/ChimeSDKMessagingServiceException */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js ***!\n  \\**************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ChimeSDKMessagingServiceException\\\": () => (/* binding */ ChimeSDKMessagingServiceException)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n\\nclass ChimeSDKMessagingServiceException extends _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.ServiceException {\\n    constructor(options) {\\n        super(options);\\n        Object.setPrototypeOf(this, ChimeSDKMessagingServiceException.prototype);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/index.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/index.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AllowNotifications\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.AllowNotifications),\\n/* harmony export */   \\\"AppInstanceUserMembershipSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.AppInstanceUserMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"AssociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.AssociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BadRequestException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.BadRequestException),\\n/* harmony export */   \\\"BatchChannelMembershipsFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.BatchChannelMembershipsFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipErrorFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.BatchCreateChannelMembershipErrorFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.BatchCreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.BatchCreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelAssociatedWithFlowSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelAssociatedWithFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelBanFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelBanSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelFlowCallbackRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelFlowCallbackResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelFlowFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMembershipFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipPreferencesFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMembershipPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipType\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMembershipType),\\n/* harmony export */   \\\"ChannelMessageCallbackFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageCallbackFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessagePersistenceType\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessagePersistenceType),\\n/* harmony export */   \\\"ChannelMessageStatus\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageStatus),\\n/* harmony export */   \\\"ChannelMessageStatusStructureFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageStatusStructureFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageType\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMessageType),\\n/* harmony export */   \\\"ChannelMode\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelMode),\\n/* harmony export */   \\\"ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelModeratorFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelModeratorSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelPrivacy\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelPrivacy),\\n/* harmony export */   \\\"ChannelSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ConflictException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ConflictException),\\n/* harmony export */   \\\"CreateChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelBanResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.CreateChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DeleteChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DescribeChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DisassociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.DisassociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ElasticChannelConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ElasticChannelConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ErrorCode\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ErrorCode),\\n/* harmony export */   \\\"FallbackAction\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.FallbackAction),\\n/* harmony export */   \\\"ForbiddenException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ForbiddenException),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMessageStatusRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetChannelMessageStatusResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetMessagingSessionEndpointRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.GetMessagingSessionEndpointResponseFilterSensitiveLog),\\n/* harmony export */   \\\"IdentityFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.IdentityFilterSensitiveLog),\\n/* harmony export */   \\\"InvocationType\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.InvocationType),\\n/* harmony export */   \\\"LambdaConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.LambdaConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelBansRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelBansResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelFlowsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelFlowsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMessagesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelMessagesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelModeratorsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelModeratorsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListSubChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListSubChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListTagsForResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ListTagsForResourceResponseFilterSensitiveLog),\\n/* harmony export */   \\\"MessageAttributeValueFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.MessageAttributeValueFilterSensitiveLog),\\n/* harmony export */   \\\"MessagingSessionEndpointFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.MessagingSessionEndpointFilterSensitiveLog),\\n/* harmony export */   \\\"NotFoundException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.NotFoundException),\\n/* harmony export */   \\\"ProcessorConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ProcessorConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ProcessorFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ProcessorFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationConfigurationFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.PushNotificationConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationPreferencesFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.PushNotificationPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationType\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.PushNotificationType),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.PutChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.PutChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.RedactChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.RedactChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ResourceLimitExceededException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ResourceLimitExceededException),\\n/* harmony export */   \\\"SearchChannelsRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SearchChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SearchChannelsResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SearchChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SearchFieldFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldKey\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SearchFieldKey),\\n/* harmony export */   \\\"SearchFieldOperator\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SearchFieldOperator),\\n/* harmony export */   \\\"SendChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SendChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SendChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SendChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ServiceFailureException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ServiceFailureException),\\n/* harmony export */   \\\"ServiceUnavailableException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ServiceUnavailableException),\\n/* harmony export */   \\\"SortOrder\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SortOrder),\\n/* harmony export */   \\\"SubChannelSummaryFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.SubChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"TagFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.TagFilterSensitiveLog),\\n/* harmony export */   \\\"TagResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.TagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ThrottledClientException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.ThrottledClientException),\\n/* harmony export */   \\\"UnauthorizedClientException\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UnauthorizedClientException),\\n/* harmony export */   \\\"UntagResourceRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UntagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelFlowRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelFlowResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelReadMarkerRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelReadMarkerResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelRequestFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelResponseFilterSensitiveLog\\\": () => (/* reexport safe */ _models_0__WEBPACK_IMPORTED_MODULE_0__.UpdateChannelResponseFilterSensitiveLog)\\n/* harmony export */ });\\n/* harmony import */ var _models_0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AllowNotifications\\\": () => (/* binding */ AllowNotifications),\\n/* harmony export */   \\\"AppInstanceUserMembershipSummaryFilterSensitiveLog\\\": () => (/* binding */ AppInstanceUserMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"AssociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ AssociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BadRequestException\\\": () => (/* binding */ BadRequestException),\\n/* harmony export */   \\\"BatchChannelMembershipsFilterSensitiveLog\\\": () => (/* binding */ BatchChannelMembershipsFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipErrorFilterSensitiveLog\\\": () => (/* binding */ BatchCreateChannelMembershipErrorFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* binding */ BatchCreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"BatchCreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* binding */ BatchCreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelAssociatedWithFlowSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelAssociatedWithFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanFilterSensitiveLog\\\": () => (/* binding */ ChannelBanFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelBanSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelBanSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFilterSensitiveLog\\\": () => (/* binding */ ChannelFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackRequestFilterSensitiveLog\\\": () => (/* binding */ ChannelFlowCallbackRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowCallbackResponseFilterSensitiveLog\\\": () => (/* binding */ ChannelFlowCallbackResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowFilterSensitiveLog\\\": () => (/* binding */ ChannelFlowFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelFlowSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelFlowSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipFilterSensitiveLog\\\": () => (/* binding */ ChannelMembershipFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipPreferencesFilterSensitiveLog\\\": () => (/* binding */ ChannelMembershipPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelMembershipSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMembershipType\\\": () => (/* binding */ ChannelMembershipType),\\n/* harmony export */   \\\"ChannelMessageCallbackFilterSensitiveLog\\\": () => (/* binding */ ChannelMessageCallbackFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageFilterSensitiveLog\\\": () => (/* binding */ ChannelMessageFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessagePersistenceType\\\": () => (/* binding */ ChannelMessagePersistenceType),\\n/* harmony export */   \\\"ChannelMessageStatus\\\": () => (/* binding */ ChannelMessageStatus),\\n/* harmony export */   \\\"ChannelMessageStatusStructureFilterSensitiveLog\\\": () => (/* binding */ ChannelMessageStatusStructureFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelMessageSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelMessageType\\\": () => (/* binding */ ChannelMessageType),\\n/* harmony export */   \\\"ChannelMode\\\": () => (/* binding */ ChannelMode),\\n/* harmony export */   \\\"ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorFilterSensitiveLog\\\": () => (/* binding */ ChannelModeratorFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelModeratorSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelModeratorSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ChannelPrivacy\\\": () => (/* binding */ ChannelPrivacy),\\n/* harmony export */   \\\"ChannelSummaryFilterSensitiveLog\\\": () => (/* binding */ ChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"ConflictException\\\": () => (/* binding */ ConflictException),\\n/* harmony export */   \\\"CreateChannelBanRequestFilterSensitiveLog\\\": () => (/* binding */ CreateChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelBanResponseFilterSensitiveLog\\\": () => (/* binding */ CreateChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ CreateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelFlowResponseFilterSensitiveLog\\\": () => (/* binding */ CreateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipRequestFilterSensitiveLog\\\": () => (/* binding */ CreateChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelMembershipResponseFilterSensitiveLog\\\": () => (/* binding */ CreateChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorRequestFilterSensitiveLog\\\": () => (/* binding */ CreateChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelModeratorResponseFilterSensitiveLog\\\": () => (/* binding */ CreateChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelRequestFilterSensitiveLog\\\": () => (/* binding */ CreateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"CreateChannelResponseFilterSensitiveLog\\\": () => (/* binding */ CreateChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelBanRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMembershipRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelMessageRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelModeratorRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DeleteChannelRequestFilterSensitiveLog\\\": () => (/* binding */ DeleteChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelBanRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelBanResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelBanResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelFlowResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelMembershipRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelMembershipResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelMembershipResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelModeratorRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelModeratorResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelModeratorResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelRequestFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"DescribeChannelResponseFilterSensitiveLog\\\": () => (/* binding */ DescribeChannelResponseFilterSensitiveLog),\\n/* harmony export */   \\\"DisassociateChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ DisassociateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ElasticChannelConfigurationFilterSensitiveLog\\\": () => (/* binding */ ElasticChannelConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ErrorCode\\\": () => (/* binding */ ErrorCode),\\n/* harmony export */   \\\"FallbackAction\\\": () => (/* binding */ FallbackAction),\\n/* harmony export */   \\\"ForbiddenException\\\": () => (/* binding */ ForbiddenException),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* binding */ GetChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* binding */ GetChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageRequestFilterSensitiveLog\\\": () => (/* binding */ GetChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageResponseFilterSensitiveLog\\\": () => (/* binding */ GetChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusRequestFilterSensitiveLog\\\": () => (/* binding */ GetChannelMessageStatusRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetChannelMessageStatusResponseFilterSensitiveLog\\\": () => (/* binding */ GetChannelMessageStatusResponseFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointRequestFilterSensitiveLog\\\": () => (/* binding */ GetMessagingSessionEndpointRequestFilterSensitiveLog),\\n/* harmony export */   \\\"GetMessagingSessionEndpointResponseFilterSensitiveLog\\\": () => (/* binding */ GetMessagingSessionEndpointResponseFilterSensitiveLog),\\n/* harmony export */   \\\"IdentityFilterSensitiveLog\\\": () => (/* binding */ IdentityFilterSensitiveLog),\\n/* harmony export */   \\\"InvocationType\\\": () => (/* binding */ InvocationType),\\n/* harmony export */   \\\"LambdaConfigurationFilterSensitiveLog\\\": () => (/* binding */ LambdaConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelBansRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelBansResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelBansResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelFlowsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelFlowsResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelFlowsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelMembershipsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMembershipsResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelMembershipsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelMessagesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelMessagesResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelMessagesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelModeratorsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelModeratorsResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelModeratorsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsRequestFilterSensitiveLog\\\": () => (/* binding */ ListChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListChannelsResponseFilterSensitiveLog\\\": () => (/* binding */ ListChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsRequestFilterSensitiveLog\\\": () => (/* binding */ ListSubChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListSubChannelsResponseFilterSensitiveLog\\\": () => (/* binding */ ListSubChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceRequestFilterSensitiveLog\\\": () => (/* binding */ ListTagsForResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ListTagsForResourceResponseFilterSensitiveLog\\\": () => (/* binding */ ListTagsForResourceResponseFilterSensitiveLog),\\n/* harmony export */   \\\"MessageAttributeValueFilterSensitiveLog\\\": () => (/* binding */ MessageAttributeValueFilterSensitiveLog),\\n/* harmony export */   \\\"MessagingSessionEndpointFilterSensitiveLog\\\": () => (/* binding */ MessagingSessionEndpointFilterSensitiveLog),\\n/* harmony export */   \\\"NotFoundException\\\": () => (/* binding */ NotFoundException),\\n/* harmony export */   \\\"ProcessorConfigurationFilterSensitiveLog\\\": () => (/* binding */ ProcessorConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"ProcessorFilterSensitiveLog\\\": () => (/* binding */ ProcessorFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationConfigurationFilterSensitiveLog\\\": () => (/* binding */ PushNotificationConfigurationFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationPreferencesFilterSensitiveLog\\\": () => (/* binding */ PushNotificationPreferencesFilterSensitiveLog),\\n/* harmony export */   \\\"PushNotificationType\\\": () => (/* binding */ PushNotificationType),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesRequestFilterSensitiveLog\\\": () => (/* binding */ PutChannelMembershipPreferencesRequestFilterSensitiveLog),\\n/* harmony export */   \\\"PutChannelMembershipPreferencesResponseFilterSensitiveLog\\\": () => (/* binding */ PutChannelMembershipPreferencesResponseFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageRequestFilterSensitiveLog\\\": () => (/* binding */ RedactChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"RedactChannelMessageResponseFilterSensitiveLog\\\": () => (/* binding */ RedactChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ResourceLimitExceededException\\\": () => (/* binding */ ResourceLimitExceededException),\\n/* harmony export */   \\\"SearchChannelsRequestFilterSensitiveLog\\\": () => (/* binding */ SearchChannelsRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SearchChannelsResponseFilterSensitiveLog\\\": () => (/* binding */ SearchChannelsResponseFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldFilterSensitiveLog\\\": () => (/* binding */ SearchFieldFilterSensitiveLog),\\n/* harmony export */   \\\"SearchFieldKey\\\": () => (/* binding */ SearchFieldKey),\\n/* harmony export */   \\\"SearchFieldOperator\\\": () => (/* binding */ SearchFieldOperator),\\n/* harmony export */   \\\"SendChannelMessageRequestFilterSensitiveLog\\\": () => (/* binding */ SendChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"SendChannelMessageResponseFilterSensitiveLog\\\": () => (/* binding */ SendChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"ServiceFailureException\\\": () => (/* binding */ ServiceFailureException),\\n/* harmony export */   \\\"ServiceUnavailableException\\\": () => (/* binding */ ServiceUnavailableException),\\n/* harmony export */   \\\"SortOrder\\\": () => (/* binding */ SortOrder),\\n/* harmony export */   \\\"SubChannelSummaryFilterSensitiveLog\\\": () => (/* binding */ SubChannelSummaryFilterSensitiveLog),\\n/* harmony export */   \\\"TagFilterSensitiveLog\\\": () => (/* binding */ TagFilterSensitiveLog),\\n/* harmony export */   \\\"TagResourceRequestFilterSensitiveLog\\\": () => (/* binding */ TagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"ThrottledClientException\\\": () => (/* binding */ ThrottledClientException),\\n/* harmony export */   \\\"UnauthorizedClientException\\\": () => (/* binding */ UnauthorizedClientException),\\n/* harmony export */   \\\"UntagResourceRequestFilterSensitiveLog\\\": () => (/* binding */ UntagResourceRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelFlowRequestFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelFlowRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelFlowResponseFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelFlowResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageRequestFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelMessageRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelMessageResponseFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelMessageResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerRequestFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelReadMarkerRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelReadMarkerResponseFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelReadMarkerResponseFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelRequestFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelRequestFilterSensitiveLog),\\n/* harmony export */   \\\"UpdateChannelResponseFilterSensitiveLog\\\": () => (/* binding */ UpdateChannelResponseFilterSensitiveLog)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChimeSDKMessagingServiceException */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js\\\");\\n\\n\\nvar AllowNotifications;\\n(function (AllowNotifications) {\\n    AllowNotifications[\\\"ALL\\\"] = \\\"ALL\\\";\\n    AllowNotifications[\\\"FILTERED\\\"] = \\\"FILTERED\\\";\\n    AllowNotifications[\\\"NONE\\\"] = \\\"NONE\\\";\\n})(AllowNotifications || (AllowNotifications = {}));\\nvar ChannelMembershipType;\\n(function (ChannelMembershipType) {\\n    ChannelMembershipType[\\\"DEFAULT\\\"] = \\\"DEFAULT\\\";\\n    ChannelMembershipType[\\\"HIDDEN\\\"] = \\\"HIDDEN\\\";\\n})(ChannelMembershipType || (ChannelMembershipType = {}));\\nvar ErrorCode;\\n(function (ErrorCode) {\\n    ErrorCode[\\\"AccessDenied\\\"] = \\\"AccessDenied\\\";\\n    ErrorCode[\\\"BadRequest\\\"] = \\\"BadRequest\\\";\\n    ErrorCode[\\\"Conflict\\\"] = \\\"Conflict\\\";\\n    ErrorCode[\\\"Forbidden\\\"] = \\\"Forbidden\\\";\\n    ErrorCode[\\\"NotFound\\\"] = \\\"NotFound\\\";\\n    ErrorCode[\\\"PhoneNumberAssociationsExist\\\"] = \\\"PhoneNumberAssociationsExist\\\";\\n    ErrorCode[\\\"PreconditionFailed\\\"] = \\\"PreconditionFailed\\\";\\n    ErrorCode[\\\"ResourceLimitExceeded\\\"] = \\\"ResourceLimitExceeded\\\";\\n    ErrorCode[\\\"ServiceFailure\\\"] = \\\"ServiceFailure\\\";\\n    ErrorCode[\\\"ServiceUnavailable\\\"] = \\\"ServiceUnavailable\\\";\\n    ErrorCode[\\\"Throttled\\\"] = \\\"Throttled\\\";\\n    ErrorCode[\\\"Throttling\\\"] = \\\"Throttling\\\";\\n    ErrorCode[\\\"Unauthorized\\\"] = \\\"Unauthorized\\\";\\n    ErrorCode[\\\"Unprocessable\\\"] = \\\"Unprocessable\\\";\\n    ErrorCode[\\\"VoiceConnectorGroupAssociationsExist\\\"] = \\\"VoiceConnectorGroupAssociationsExist\\\";\\n})(ErrorCode || (ErrorCode = {}));\\nclass BadRequestException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"BadRequestException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"BadRequestException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, BadRequestException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ConflictException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ConflictException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ConflictException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, ConflictException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ForbiddenException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ForbiddenException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ForbiddenException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, ForbiddenException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass NotFoundException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"NotFoundException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"NotFoundException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, NotFoundException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ServiceFailureException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ServiceFailureException\\\",\\n            $fault: \\\"server\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ServiceFailureException\\\";\\n        this.$fault = \\\"server\\\";\\n        Object.setPrototypeOf(this, ServiceFailureException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ServiceUnavailableException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ServiceUnavailableException\\\",\\n            $fault: \\\"server\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ServiceUnavailableException\\\";\\n        this.$fault = \\\"server\\\";\\n        Object.setPrototypeOf(this, ServiceUnavailableException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ThrottledClientException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ThrottledClientException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ThrottledClientException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, ThrottledClientException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass UnauthorizedClientException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"UnauthorizedClientException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"UnauthorizedClientException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, UnauthorizedClientException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nclass ResourceLimitExceededException extends _ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessagingServiceException {\\n    constructor(opts) {\\n        super({\\n            name: \\\"ResourceLimitExceededException\\\",\\n            $fault: \\\"client\\\",\\n            ...opts,\\n        });\\n        this.name = \\\"ResourceLimitExceededException\\\";\\n        this.$fault = \\\"client\\\";\\n        Object.setPrototypeOf(this, ResourceLimitExceededException.prototype);\\n        this.Code = opts.Code;\\n        this.Message = opts.Message;\\n    }\\n}\\nvar ChannelMode;\\n(function (ChannelMode) {\\n    ChannelMode[\\\"RESTRICTED\\\"] = \\\"RESTRICTED\\\";\\n    ChannelMode[\\\"UNRESTRICTED\\\"] = \\\"UNRESTRICTED\\\";\\n})(ChannelMode || (ChannelMode = {}));\\nvar ChannelPrivacy;\\n(function (ChannelPrivacy) {\\n    ChannelPrivacy[\\\"PRIVATE\\\"] = \\\"PRIVATE\\\";\\n    ChannelPrivacy[\\\"PUBLIC\\\"] = \\\"PUBLIC\\\";\\n})(ChannelPrivacy || (ChannelPrivacy = {}));\\nvar InvocationType;\\n(function (InvocationType) {\\n    InvocationType[\\\"ASYNC\\\"] = \\\"ASYNC\\\";\\n})(InvocationType || (InvocationType = {}));\\nvar FallbackAction;\\n(function (FallbackAction) {\\n    FallbackAction[\\\"ABORT\\\"] = \\\"ABORT\\\";\\n    FallbackAction[\\\"CONTINUE\\\"] = \\\"CONTINUE\\\";\\n})(FallbackAction || (FallbackAction = {}));\\nvar PushNotificationType;\\n(function (PushNotificationType) {\\n    PushNotificationType[\\\"DEFAULT\\\"] = \\\"DEFAULT\\\";\\n    PushNotificationType[\\\"VOIP\\\"] = \\\"VOIP\\\";\\n})(PushNotificationType || (PushNotificationType = {}));\\nvar ChannelMessagePersistenceType;\\n(function (ChannelMessagePersistenceType) {\\n    ChannelMessagePersistenceType[\\\"NON_PERSISTENT\\\"] = \\\"NON_PERSISTENT\\\";\\n    ChannelMessagePersistenceType[\\\"PERSISTENT\\\"] = \\\"PERSISTENT\\\";\\n})(ChannelMessagePersistenceType || (ChannelMessagePersistenceType = {}));\\nvar ChannelMessageStatus;\\n(function (ChannelMessageStatus) {\\n    ChannelMessageStatus[\\\"DENIED\\\"] = \\\"DENIED\\\";\\n    ChannelMessageStatus[\\\"FAILED\\\"] = \\\"FAILED\\\";\\n    ChannelMessageStatus[\\\"PENDING\\\"] = \\\"PENDING\\\";\\n    ChannelMessageStatus[\\\"SENT\\\"] = \\\"SENT\\\";\\n})(ChannelMessageStatus || (ChannelMessageStatus = {}));\\nvar ChannelMessageType;\\n(function (ChannelMessageType) {\\n    ChannelMessageType[\\\"CONTROL\\\"] = \\\"CONTROL\\\";\\n    ChannelMessageType[\\\"STANDARD\\\"] = \\\"STANDARD\\\";\\n})(ChannelMessageType || (ChannelMessageType = {}));\\nvar SortOrder;\\n(function (SortOrder) {\\n    SortOrder[\\\"ASCENDING\\\"] = \\\"ASCENDING\\\";\\n    SortOrder[\\\"DESCENDING\\\"] = \\\"DESCENDING\\\";\\n})(SortOrder || (SortOrder = {}));\\nvar SearchFieldKey;\\n(function (SearchFieldKey) {\\n    SearchFieldKey[\\\"MEMBERS\\\"] = \\\"MEMBERS\\\";\\n})(SearchFieldKey || (SearchFieldKey = {}));\\nvar SearchFieldOperator;\\n(function (SearchFieldOperator) {\\n    SearchFieldOperator[\\\"EQUALS\\\"] = \\\"EQUALS\\\";\\n    SearchFieldOperator[\\\"INCLUDES\\\"] = \\\"INCLUDES\\\";\\n})(SearchFieldOperator || (SearchFieldOperator = {}));\\nconst AppInstanceUserMembershipSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst AssociateChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst IdentityFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst BatchChannelMembershipsFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.InvitedBy && { InvitedBy: IdentityFilterSensitiveLog(obj.InvitedBy) }),\\n    ...(obj.Members && { Members: obj.Members.map((item) => IdentityFilterSensitiveLog(item)) }),\\n});\\nconst BatchCreateChannelMembershipRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst BatchCreateChannelMembershipErrorFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst BatchCreateChannelMembershipResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.BatchChannelMemberships && {\\n        BatchChannelMemberships: BatchChannelMembershipsFilterSensitiveLog(obj.BatchChannelMemberships),\\n    }),\\n});\\nconst ElasticChannelConfigurationFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ChannelFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.CreatedBy && { CreatedBy: IdentityFilterSensitiveLog(obj.CreatedBy) }),\\n});\\nconst ChannelAssociatedWithFlowSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ChannelBanFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n    ...(obj.CreatedBy && { CreatedBy: IdentityFilterSensitiveLog(obj.CreatedBy) }),\\n});\\nconst ChannelBanSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n});\\nconst LambdaConfigurationFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ProcessorConfigurationFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ProcessorFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ChannelFlowFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Processors && { Processors: obj.Processors.map((item) => ProcessorFilterSensitiveLog(item)) }),\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst MessageAttributeValueFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.StringValues && { StringValues: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst PushNotificationConfigurationFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Title && { Title: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Body && { Body: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ChannelMessageCallbackFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Content && { Content: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.PushNotification && {\\n        PushNotification: PushNotificationConfigurationFilterSensitiveLog(obj.PushNotification),\\n    }),\\n    ...(obj.MessageAttributes && {\\n        MessageAttributes: Object.entries(obj.MessageAttributes).reduce((acc, [key, value]) => ((acc[key] = MessageAttributeValueFilterSensitiveLog(value)), acc), {}),\\n    }),\\n});\\nconst ChannelFlowCallbackRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMessage && { ChannelMessage: ChannelMessageCallbackFilterSensitiveLog(obj.ChannelMessage) }),\\n});\\nconst ChannelFlowCallbackResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ChannelFlowSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Processors && { Processors: obj.Processors.map((item) => ProcessorFilterSensitiveLog(item)) }),\\n});\\nconst ChannelMembershipFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.InvitedBy && { InvitedBy: IdentityFilterSensitiveLog(obj.InvitedBy) }),\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n});\\nconst ChannelSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelSummary && { ChannelSummary: ChannelSummaryFilterSensitiveLog(obj.ChannelSummary) }),\\n});\\nconst PushNotificationPreferencesFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.FilterRule && { FilterRule: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ChannelMembershipPreferencesFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.PushNotifications && {\\n        PushNotifications: PushNotificationPreferencesFilterSensitiveLog(obj.PushNotifications),\\n    }),\\n});\\nconst ChannelMembershipSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n});\\nconst ChannelMessageStatusStructureFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ChannelMessageFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Content && { Content: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Sender && { Sender: IdentityFilterSensitiveLog(obj.Sender) }),\\n    ...(obj.MessageAttributes && {\\n        MessageAttributes: Object.entries(obj.MessageAttributes).reduce((acc, [key, value]) => ((acc[key] = MessageAttributeValueFilterSensitiveLog(value)), acc), {}),\\n    }),\\n});\\nconst ChannelMessageSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Content && { Content: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Sender && { Sender: IdentityFilterSensitiveLog(obj.Sender) }),\\n    ...(obj.MessageAttributes && {\\n        MessageAttributes: Object.entries(obj.MessageAttributes).reduce((acc, [key, value]) => ((acc[key] = MessageAttributeValueFilterSensitiveLog(value)), acc), {}),\\n    }),\\n});\\nconst ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelSummary && { ChannelSummary: ChannelSummaryFilterSensitiveLog(obj.ChannelSummary) }),\\n});\\nconst ChannelModeratorFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Moderator && { Moderator: IdentityFilterSensitiveLog(obj.Moderator) }),\\n    ...(obj.CreatedBy && { CreatedBy: IdentityFilterSensitiveLog(obj.CreatedBy) }),\\n});\\nconst ChannelModeratorSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Moderator && { Moderator: IdentityFilterSensitiveLog(obj.Moderator) }),\\n});\\nconst TagFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Key && { Key: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Value && { Value: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst CreateChannelRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.ClientRequestToken && { ClientRequestToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Tags && { Tags: obj.Tags.map((item) => TagFilterSensitiveLog(item)) }),\\n    ...(obj.ChannelId && { ChannelId: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst CreateChannelResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst CreateChannelBanRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst CreateChannelBanResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n});\\nconst CreateChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Processors && { Processors: obj.Processors.map((item) => ProcessorFilterSensitiveLog(item)) }),\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Tags && { Tags: obj.Tags.map((item) => TagFilterSensitiveLog(item)) }),\\n    ...(obj.ClientRequestToken && { ClientRequestToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst CreateChannelFlowResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst CreateChannelMembershipRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst CreateChannelMembershipResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n});\\nconst CreateChannelModeratorRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst CreateChannelModeratorResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelModerator && { ChannelModerator: IdentityFilterSensitiveLog(obj.ChannelModerator) }),\\n});\\nconst DeleteChannelRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DeleteChannelBanRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DeleteChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DeleteChannelMembershipRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DeleteChannelMessageRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DeleteChannelModeratorRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channel && { Channel: ChannelFilterSensitiveLog(obj.Channel) }),\\n});\\nconst DescribeChannelBanRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelBanResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelBan && { ChannelBan: ChannelBanFilterSensitiveLog(obj.ChannelBan) }),\\n});\\nconst DescribeChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelFlowResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelFlow && { ChannelFlow: ChannelFlowFilterSensitiveLog(obj.ChannelFlow) }),\\n});\\nconst DescribeChannelMembershipRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelMembershipResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMembership && { ChannelMembership: ChannelMembershipFilterSensitiveLog(obj.ChannelMembership) }),\\n});\\nconst DescribeChannelMembershipForAppInstanceUserRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelMembershipForAppInstanceUserResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMembership && {\\n        ChannelMembership: ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog(obj.ChannelMembership),\\n    }),\\n});\\nconst DescribeChannelModeratedByAppInstanceUserRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelModeratedByAppInstanceUserResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channel && { Channel: ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog(obj.Channel) }),\\n});\\nconst DescribeChannelModeratorRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst DescribeChannelModeratorResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelModerator && { ChannelModerator: ChannelModeratorFilterSensitiveLog(obj.ChannelModerator) }),\\n});\\nconst DisassociateChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetChannelMembershipPreferencesRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetChannelMembershipPreferencesResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n    ...(obj.Preferences && { Preferences: ChannelMembershipPreferencesFilterSensitiveLog(obj.Preferences) }),\\n});\\nconst GetChannelMessageRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetChannelMessageResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMessage && { ChannelMessage: ChannelMessageFilterSensitiveLog(obj.ChannelMessage) }),\\n});\\nconst GetChannelMessageStatusRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetChannelMessageStatusResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetMessagingSessionEndpointRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst MessagingSessionEndpointFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst GetMessagingSessionEndpointResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ListChannelBansRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelBansResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.ChannelBans && { ChannelBans: obj.ChannelBans.map((item) => ChannelBanSummaryFilterSensitiveLog(item)) }),\\n});\\nconst ListChannelFlowsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelFlowsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelFlows && { ChannelFlows: obj.ChannelFlows.map((item) => ChannelFlowSummaryFilterSensitiveLog(item)) }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMembershipsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMembershipsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMemberships && {\\n        ChannelMemberships: obj.ChannelMemberships.map((item) => ChannelMembershipSummaryFilterSensitiveLog(item)),\\n    }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMembershipsForAppInstanceUserRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMembershipsForAppInstanceUserResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.ChannelMemberships && {\\n        ChannelMemberships: obj.ChannelMemberships.map((item) => ChannelMembershipForAppInstanceUserSummaryFilterSensitiveLog(item)),\\n    }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMessagesRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelMessagesResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.ChannelMessages && {\\n        ChannelMessages: obj.ChannelMessages.map((item) => ChannelMessageSummaryFilterSensitiveLog(item)),\\n    }),\\n});\\nconst ListChannelModeratorsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelModeratorsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.ChannelModerators && {\\n        ChannelModerators: obj.ChannelModerators.map((item) => ChannelModeratorSummaryFilterSensitiveLog(item)),\\n    }),\\n});\\nconst ListChannelsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channels && { Channels: obj.Channels.map((item) => ChannelSummaryFilterSensitiveLog(item)) }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelsAssociatedWithChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelsAssociatedWithChannelFlowResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channels && {\\n        Channels: obj.Channels.map((item) => ChannelAssociatedWithFlowSummaryFilterSensitiveLog(item)),\\n    }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelsModeratedByAppInstanceUserRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListChannelsModeratedByAppInstanceUserResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channels && {\\n        Channels: obj.Channels.map((item) => ChannelModeratedByAppInstanceUserSummaryFilterSensitiveLog(item)),\\n    }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListSubChannelsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst SubChannelSummaryFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ListSubChannelsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst ListTagsForResourceRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst ListTagsForResourceResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Tags && { Tags: obj.Tags.map((item) => TagFilterSensitiveLog(item)) }),\\n});\\nconst PutChannelMembershipPreferencesRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Preferences && { Preferences: ChannelMembershipPreferencesFilterSensitiveLog(obj.Preferences) }),\\n});\\nconst PutChannelMembershipPreferencesResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Member && { Member: IdentityFilterSensitiveLog(obj.Member) }),\\n    ...(obj.Preferences && { Preferences: ChannelMembershipPreferencesFilterSensitiveLog(obj.Preferences) }),\\n});\\nconst RedactChannelMessageRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst RedactChannelMessageResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst SearchFieldFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst SearchChannelsRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst SearchChannelsResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Channels && { Channels: obj.Channels.map((item) => ChannelSummaryFilterSensitiveLog(item)) }),\\n    ...(obj.NextToken && { NextToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst SendChannelMessageRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Content && { Content: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.ClientRequestToken && { ClientRequestToken: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.PushNotification && {\\n        PushNotification: PushNotificationConfigurationFilterSensitiveLog(obj.PushNotification),\\n    }),\\n    ...(obj.MessageAttributes && {\\n        MessageAttributes: Object.entries(obj.MessageAttributes).reduce((acc, [key, value]) => ((acc[key] = MessageAttributeValueFilterSensitiveLog(value)), acc), {}),\\n    }),\\n});\\nconst SendChannelMessageResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst TagResourceRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Tags && { Tags: obj.Tags.map((item) => TagFilterSensitiveLog(item)) }),\\n});\\nconst UntagResourceRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.TagKeys && { TagKeys: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst UpdateChannelRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst UpdateChannelResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst UpdateChannelFlowRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Processors && { Processors: obj.Processors.map((item) => ProcessorFilterSensitiveLog(item)) }),\\n    ...(obj.Name && { Name: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst UpdateChannelFlowResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst UpdateChannelMessageRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n    ...(obj.Content && { Content: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n    ...(obj.Metadata && { Metadata: _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.SENSITIVE_STRING }),\\n});\\nconst UpdateChannelMessageResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst UpdateChannelReadMarkerRequestFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\nconst UpdateChannelReadMarkerResponseFilterSensitiveLog = (obj) => ({\\n    ...obj,\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelBansPaginator.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelBansPaginator.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelBans\\\": () => (/* binding */ paginateListChannelBans)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelBansCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelBansCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelBansCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelBansCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelBans(input, ...args);\\n};\\nasync function* paginateListChannelBans(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelBansPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelFlowsPaginator.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelFlowsPaginator.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelFlows\\\": () => (/* binding */ paginateListChannelFlows)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelFlowsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelFlowsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelFlowsCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelFlowsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelFlows(input, ...args);\\n};\\nasync function* paginateListChannelFlows(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelFlowsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsForAppInstanceUserPaginator.js\":\n/*!**********************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsForAppInstanceUserPaginator.js ***!\n  \\**********************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelMembershipsForAppInstanceUser\\\": () => (/* binding */ paginateListChannelMembershipsForAppInstanceUser)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelMembershipsForAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsForAppInstanceUserCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelMembershipsForAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsForAppInstanceUserCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelMembershipsForAppInstanceUser(input, ...args);\\n};\\nasync function* paginateListChannelMembershipsForAppInstanceUser(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsForAppInstanceUserPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsPaginator.js\":\n/*!****************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsPaginator.js ***!\n  \\****************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelMemberships\\\": () => (/* binding */ paginateListChannelMemberships)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelMembershipsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMembershipsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelMembershipsCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelMembershipsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelMemberships(input, ...args);\\n};\\nasync function* paginateListChannelMemberships(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMessagesPaginator.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMessagesPaginator.js ***!\n  \\*************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelMessages\\\": () => (/* binding */ paginateListChannelMessages)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelMessagesCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelMessagesCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelMessagesCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelMessagesCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelMessages(input, ...args);\\n};\\nasync function* paginateListChannelMessages(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMessagesPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelModeratorsPaginator.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelModeratorsPaginator.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelModerators\\\": () => (/* binding */ paginateListChannelModerators)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelModeratorsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelModeratorsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelModeratorsCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelModeratorsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelModerators(input, ...args);\\n};\\nasync function* paginateListChannelModerators(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelModeratorsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsAssociatedWithChannelFlowPaginator.js\":\n/*!*******************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsAssociatedWithChannelFlowPaginator.js ***!\n  \\*******************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelsAssociatedWithChannelFlow\\\": () => (/* binding */ paginateListChannelsAssociatedWithChannelFlow)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelsAssociatedWithChannelFlowCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsAssociatedWithChannelFlowCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelsAssociatedWithChannelFlowCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelsAssociatedWithChannelFlowCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelsAssociatedWithChannelFlow(input, ...args);\\n};\\nasync function* paginateListChannelsAssociatedWithChannelFlow(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsAssociatedWithChannelFlowPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsModeratedByAppInstanceUserPaginator.js\":\n/*!********************************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsModeratedByAppInstanceUserPaginator.js ***!\n  \\********************************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelsModeratedByAppInstanceUser\\\": () => (/* binding */ paginateListChannelsModeratedByAppInstanceUser)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelsModeratedByAppInstanceUserCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsModeratedByAppInstanceUserCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelsModeratedByAppInstanceUserCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelsModeratedByAppInstanceUserCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannelsModeratedByAppInstanceUser(input, ...args);\\n};\\nasync function* paginateListChannelsModeratedByAppInstanceUser(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsModeratedByAppInstanceUserPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsPaginator.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsPaginator.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannels\\\": () => (/* binding */ paginateListChannels)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListChannelsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListChannelsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListChannelsCommand__WEBPACK_IMPORTED_MODULE_0__.ListChannelsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listChannels(input, ...args);\\n};\\nasync function* paginateListChannels(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListSubChannelsPaginator.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListSubChannelsPaginator.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListSubChannels\\\": () => (/* binding */ paginateListSubChannels)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/ListSubChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/ListSubChannelsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_ListSubChannelsCommand__WEBPACK_IMPORTED_MODULE_0__.ListSubChannelsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.listSubChannels(input, ...args);\\n};\\nasync function* paginateListSubChannels(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListSubChannelsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/SearchChannelsPaginator.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/SearchChannelsPaginator.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateSearchChannels\\\": () => (/* binding */ paginateSearchChannels)\\n/* harmony export */ });\\n/* harmony import */ var _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ChimeSDKMessaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessaging.js\\\");\\n/* harmony import */ var _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ChimeSDKMessagingClient */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/ChimeSDKMessagingClient.js\\\");\\n/* harmony import */ var _commands_SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../commands/SearchChannelsCommand */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/commands/SearchChannelsCommand.js\\\");\\n\\n\\n\\nconst makePagedClientRequest = async (client, input, ...args) => {\\n    return await client.send(new _commands_SearchChannelsCommand__WEBPACK_IMPORTED_MODULE_0__.SearchChannelsCommand(input), ...args);\\n};\\nconst makePagedRequest = async (client, input, ...args) => {\\n    return await client.searchChannels(input, ...args);\\n};\\nasync function* paginateSearchChannels(config, input, ...additionalArguments) {\\n    let token = config.startingToken || undefined;\\n    let hasNext = true;\\n    let page;\\n    while (hasNext) {\\n        input.NextToken = token;\\n        input[\\\"MaxResults\\\"] = config.pageSize;\\n        if (config.client instanceof _ChimeSDKMessaging__WEBPACK_IMPORTED_MODULE_1__.ChimeSDKMessaging) {\\n            page = await makePagedRequest(config.client, input, ...additionalArguments);\\n        }\\n        else if (config.client instanceof _ChimeSDKMessagingClient__WEBPACK_IMPORTED_MODULE_2__.ChimeSDKMessagingClient) {\\n            page = await makePagedClientRequest(config.client, input, ...additionalArguments);\\n        }\\n        else {\\n            throw new Error(\\\"Invalid client, expected ChimeSDKMessaging | ChimeSDKMessagingClient\\\");\\n        }\\n        yield page;\\n        const prevToken = token;\\n        token = page.NextToken;\\n        hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\\n    }\\n    return undefined;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/SearchChannelsPaginator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/index.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/index.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"paginateListChannelBans\\\": () => (/* reexport safe */ _ListChannelBansPaginator__WEBPACK_IMPORTED_MODULE_0__.paginateListChannelBans),\\n/* harmony export */   \\\"paginateListChannelFlows\\\": () => (/* reexport safe */ _ListChannelFlowsPaginator__WEBPACK_IMPORTED_MODULE_1__.paginateListChannelFlows),\\n/* harmony export */   \\\"paginateListChannelMemberships\\\": () => (/* reexport safe */ _ListChannelMembershipsPaginator__WEBPACK_IMPORTED_MODULE_3__.paginateListChannelMemberships),\\n/* harmony export */   \\\"paginateListChannelMembershipsForAppInstanceUser\\\": () => (/* reexport safe */ _ListChannelMembershipsForAppInstanceUserPaginator__WEBPACK_IMPORTED_MODULE_2__.paginateListChannelMembershipsForAppInstanceUser),\\n/* harmony export */   \\\"paginateListChannelMessages\\\": () => (/* reexport safe */ _ListChannelMessagesPaginator__WEBPACK_IMPORTED_MODULE_4__.paginateListChannelMessages),\\n/* harmony export */   \\\"paginateListChannelModerators\\\": () => (/* reexport safe */ _ListChannelModeratorsPaginator__WEBPACK_IMPORTED_MODULE_5__.paginateListChannelModerators),\\n/* harmony export */   \\\"paginateListChannels\\\": () => (/* reexport safe */ _ListChannelsPaginator__WEBPACK_IMPORTED_MODULE_8__.paginateListChannels),\\n/* harmony export */   \\\"paginateListChannelsAssociatedWithChannelFlow\\\": () => (/* reexport safe */ _ListChannelsAssociatedWithChannelFlowPaginator__WEBPACK_IMPORTED_MODULE_6__.paginateListChannelsAssociatedWithChannelFlow),\\n/* harmony export */   \\\"paginateListChannelsModeratedByAppInstanceUser\\\": () => (/* reexport safe */ _ListChannelsModeratedByAppInstanceUserPaginator__WEBPACK_IMPORTED_MODULE_7__.paginateListChannelsModeratedByAppInstanceUser),\\n/* harmony export */   \\\"paginateListSubChannels\\\": () => (/* reexport safe */ _ListSubChannelsPaginator__WEBPACK_IMPORTED_MODULE_9__.paginateListSubChannels),\\n/* harmony export */   \\\"paginateSearchChannels\\\": () => (/* reexport safe */ _SearchChannelsPaginator__WEBPACK_IMPORTED_MODULE_10__.paginateSearchChannels)\\n/* harmony export */ });\\n/* harmony import */ var _ListChannelBansPaginator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListChannelBansPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelBansPaginator.js\\\");\\n/* harmony import */ var _ListChannelFlowsPaginator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ListChannelFlowsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelFlowsPaginator.js\\\");\\n/* harmony import */ var _ListChannelMembershipsForAppInstanceUserPaginator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ListChannelMembershipsForAppInstanceUserPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsForAppInstanceUserPaginator.js\\\");\\n/* harmony import */ var _ListChannelMembershipsPaginator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ListChannelMembershipsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMembershipsPaginator.js\\\");\\n/* harmony import */ var _ListChannelMessagesPaginator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ListChannelMessagesPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelMessagesPaginator.js\\\");\\n/* harmony import */ var _ListChannelModeratorsPaginator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ListChannelModeratorsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelModeratorsPaginator.js\\\");\\n/* harmony import */ var _ListChannelsAssociatedWithChannelFlowPaginator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ListChannelsAssociatedWithChannelFlowPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsAssociatedWithChannelFlowPaginator.js\\\");\\n/* harmony import */ var _ListChannelsModeratedByAppInstanceUserPaginator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ListChannelsModeratedByAppInstanceUserPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsModeratedByAppInstanceUserPaginator.js\\\");\\n/* harmony import */ var _ListChannelsPaginator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ListChannelsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListChannelsPaginator.js\\\");\\n/* harmony import */ var _ListSubChannelsPaginator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ListSubChannelsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/ListSubChannelsPaginator.js\\\");\\n/* harmony import */ var _SearchChannelsPaginator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SearchChannelsPaginator */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/SearchChannelsPaginator.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/pagination/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deserializeAws_restJson1AssociateChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1AssociateChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1BatchCreateChannelMembershipCommand\\\": () => (/* binding */ deserializeAws_restJson1BatchCreateChannelMembershipCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ChannelFlowCallbackCommand\\\": () => (/* binding */ deserializeAws_restJson1ChannelFlowCallbackCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1CreateChannelBanCommand\\\": () => (/* binding */ deserializeAws_restJson1CreateChannelBanCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1CreateChannelCommand\\\": () => (/* binding */ deserializeAws_restJson1CreateChannelCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1CreateChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1CreateChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1CreateChannelMembershipCommand\\\": () => (/* binding */ deserializeAws_restJson1CreateChannelMembershipCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1CreateChannelModeratorCommand\\\": () => (/* binding */ deserializeAws_restJson1CreateChannelModeratorCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelBanCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelBanCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelMembershipCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelMembershipCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelMessageCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelMessageCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DeleteChannelModeratorCommand\\\": () => (/* binding */ deserializeAws_restJson1DeleteChannelModeratorCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelBanCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelBanCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelMembershipCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelMembershipCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DescribeChannelModeratorCommand\\\": () => (/* binding */ deserializeAws_restJson1DescribeChannelModeratorCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1DisassociateChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1DisassociateChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1GetChannelMembershipPreferencesCommand\\\": () => (/* binding */ deserializeAws_restJson1GetChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1GetChannelMessageCommand\\\": () => (/* binding */ deserializeAws_restJson1GetChannelMessageCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1GetChannelMessageStatusCommand\\\": () => (/* binding */ deserializeAws_restJson1GetChannelMessageStatusCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1GetMessagingSessionEndpointCommand\\\": () => (/* binding */ deserializeAws_restJson1GetMessagingSessionEndpointCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelBansCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelBansCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelFlowsCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelFlowsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelMembershipsCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelMembershipsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelMessagesCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelMessagesCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelModeratorsCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelModeratorsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelsCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand\\\": () => (/* binding */ deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListSubChannelsCommand\\\": () => (/* binding */ deserializeAws_restJson1ListSubChannelsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1ListTagsForResourceCommand\\\": () => (/* binding */ deserializeAws_restJson1ListTagsForResourceCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1PutChannelMembershipPreferencesCommand\\\": () => (/* binding */ deserializeAws_restJson1PutChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1RedactChannelMessageCommand\\\": () => (/* binding */ deserializeAws_restJson1RedactChannelMessageCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1SearchChannelsCommand\\\": () => (/* binding */ deserializeAws_restJson1SearchChannelsCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1SendChannelMessageCommand\\\": () => (/* binding */ deserializeAws_restJson1SendChannelMessageCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1TagResourceCommand\\\": () => (/* binding */ deserializeAws_restJson1TagResourceCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1UntagResourceCommand\\\": () => (/* binding */ deserializeAws_restJson1UntagResourceCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1UpdateChannelCommand\\\": () => (/* binding */ deserializeAws_restJson1UpdateChannelCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1UpdateChannelFlowCommand\\\": () => (/* binding */ deserializeAws_restJson1UpdateChannelFlowCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1UpdateChannelMessageCommand\\\": () => (/* binding */ deserializeAws_restJson1UpdateChannelMessageCommand),\\n/* harmony export */   \\\"deserializeAws_restJson1UpdateChannelReadMarkerCommand\\\": () => (/* binding */ deserializeAws_restJson1UpdateChannelReadMarkerCommand),\\n/* harmony export */   \\\"serializeAws_restJson1AssociateChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1AssociateChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1BatchCreateChannelMembershipCommand\\\": () => (/* binding */ serializeAws_restJson1BatchCreateChannelMembershipCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ChannelFlowCallbackCommand\\\": () => (/* binding */ serializeAws_restJson1ChannelFlowCallbackCommand),\\n/* harmony export */   \\\"serializeAws_restJson1CreateChannelBanCommand\\\": () => (/* binding */ serializeAws_restJson1CreateChannelBanCommand),\\n/* harmony export */   \\\"serializeAws_restJson1CreateChannelCommand\\\": () => (/* binding */ serializeAws_restJson1CreateChannelCommand),\\n/* harmony export */   \\\"serializeAws_restJson1CreateChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1CreateChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1CreateChannelMembershipCommand\\\": () => (/* binding */ serializeAws_restJson1CreateChannelMembershipCommand),\\n/* harmony export */   \\\"serializeAws_restJson1CreateChannelModeratorCommand\\\": () => (/* binding */ serializeAws_restJson1CreateChannelModeratorCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelBanCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelBanCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelMembershipCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelMembershipCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelMessageCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelMessageCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DeleteChannelModeratorCommand\\\": () => (/* binding */ serializeAws_restJson1DeleteChannelModeratorCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelBanCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelBanCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelMembershipCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelMembershipCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DescribeChannelModeratorCommand\\\": () => (/* binding */ serializeAws_restJson1DescribeChannelModeratorCommand),\\n/* harmony export */   \\\"serializeAws_restJson1DisassociateChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1DisassociateChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1GetChannelMembershipPreferencesCommand\\\": () => (/* binding */ serializeAws_restJson1GetChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"serializeAws_restJson1GetChannelMessageCommand\\\": () => (/* binding */ serializeAws_restJson1GetChannelMessageCommand),\\n/* harmony export */   \\\"serializeAws_restJson1GetChannelMessageStatusCommand\\\": () => (/* binding */ serializeAws_restJson1GetChannelMessageStatusCommand),\\n/* harmony export */   \\\"serializeAws_restJson1GetMessagingSessionEndpointCommand\\\": () => (/* binding */ serializeAws_restJson1GetMessagingSessionEndpointCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelBansCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelBansCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelFlowsCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelFlowsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelMembershipsCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelMembershipsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelMessagesCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelMessagesCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelModeratorsCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelModeratorsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelsCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand\\\": () => (/* binding */ serializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListSubChannelsCommand\\\": () => (/* binding */ serializeAws_restJson1ListSubChannelsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1ListTagsForResourceCommand\\\": () => (/* binding */ serializeAws_restJson1ListTagsForResourceCommand),\\n/* harmony export */   \\\"serializeAws_restJson1PutChannelMembershipPreferencesCommand\\\": () => (/* binding */ serializeAws_restJson1PutChannelMembershipPreferencesCommand),\\n/* harmony export */   \\\"serializeAws_restJson1RedactChannelMessageCommand\\\": () => (/* binding */ serializeAws_restJson1RedactChannelMessageCommand),\\n/* harmony export */   \\\"serializeAws_restJson1SearchChannelsCommand\\\": () => (/* binding */ serializeAws_restJson1SearchChannelsCommand),\\n/* harmony export */   \\\"serializeAws_restJson1SendChannelMessageCommand\\\": () => (/* binding */ serializeAws_restJson1SendChannelMessageCommand),\\n/* harmony export */   \\\"serializeAws_restJson1TagResourceCommand\\\": () => (/* binding */ serializeAws_restJson1TagResourceCommand),\\n/* harmony export */   \\\"serializeAws_restJson1UntagResourceCommand\\\": () => (/* binding */ serializeAws_restJson1UntagResourceCommand),\\n/* harmony export */   \\\"serializeAws_restJson1UpdateChannelCommand\\\": () => (/* binding */ serializeAws_restJson1UpdateChannelCommand),\\n/* harmony export */   \\\"serializeAws_restJson1UpdateChannelFlowCommand\\\": () => (/* binding */ serializeAws_restJson1UpdateChannelFlowCommand),\\n/* harmony export */   \\\"serializeAws_restJson1UpdateChannelMessageCommand\\\": () => (/* binding */ serializeAws_restJson1UpdateChannelMessageCommand),\\n/* harmony export */   \\\"serializeAws_restJson1UpdateChannelReadMarkerCommand\\\": () => (/* binding */ serializeAws_restJson1UpdateChannelReadMarkerCommand)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uuid */ \\\"./node_modules/uuid/dist/esm-browser/v4.js\\\");\\n/* harmony import */ var _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/ChimeSDKMessagingServiceException */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/ChimeSDKMessagingServiceException.js\\\");\\n/* harmony import */ var _models_models_0__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/models_0 */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/models/models_0.js\\\");\\n\\n\\n\\n\\n\\nconst serializeAws_restJson1AssociateChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/channel-flow\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.ChannelFlowArn != null && { ChannelFlowArn: input.ChannelFlowArn }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1BatchCreateChannelMembershipCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/memberships\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        operation: [, \\\"batch-create\\\"],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.MemberArns != null && { MemberArns: serializeAws_restJson1MemberArns(input.MemberArns, context) }),\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n        ...(input.Type != null && { Type: input.Type }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ChannelFlowCallbackCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        operation: [, \\\"channel-flow-callback\\\"],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        CallbackId: input.CallbackId ?? (0,uuid__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"])(),\\n        ...(input.ChannelMessage != null && {\\n            ChannelMessage: serializeAws_restJson1ChannelMessageCallback(input.ChannelMessage, context),\\n        }),\\n        ...(input.DeleteResource != null && { DeleteResource: input.DeleteResource }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1CreateChannelCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.AppInstanceArn != null && { AppInstanceArn: input.AppInstanceArn }),\\n        ...(input.ChannelId != null && { ChannelId: input.ChannelId }),\\n        ClientRequestToken: input.ClientRequestToken ?? (0,uuid__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"])(),\\n        ...(input.ElasticChannelConfiguration != null && {\\n            ElasticChannelConfiguration: serializeAws_restJson1ElasticChannelConfiguration(input.ElasticChannelConfiguration, context),\\n        }),\\n        ...(input.MemberArns != null && { MemberArns: serializeAws_restJson1ChannelMemberArns(input.MemberArns, context) }),\\n        ...(input.Metadata != null && { Metadata: input.Metadata }),\\n        ...(input.Mode != null && { Mode: input.Mode }),\\n        ...(input.ModeratorArns != null && {\\n            ModeratorArns: serializeAws_restJson1ChannelModeratorArns(input.ModeratorArns, context),\\n        }),\\n        ...(input.Name != null && { Name: input.Name }),\\n        ...(input.Privacy != null && { Privacy: input.Privacy }),\\n        ...(input.Tags != null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1CreateChannelBanCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/bans\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.MemberArn != null && { MemberArn: input.MemberArn }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1CreateChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channel-flows\\\";\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.AppInstanceArn != null && { AppInstanceArn: input.AppInstanceArn }),\\n        ...(input.ClientRequestToken != null && { ClientRequestToken: input.ClientRequestToken }),\\n        ...(input.Name != null && { Name: input.Name }),\\n        ...(input.Processors != null && { Processors: serializeAws_restJson1ProcessorList(input.Processors, context) }),\\n        ...(input.Tags != null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1CreateChannelMembershipCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/memberships\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.MemberArn != null && { MemberArn: input.MemberArn }),\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n        ...(input.Type != null && { Type: input.Type }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1CreateChannelModeratorCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/moderators\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.ChannelModeratorArn != null && { ChannelModeratorArn: input.ChannelModeratorArn }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelBanCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/bans/{MemberArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {};\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channel-flows/{ChannelFlowArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelFlowArn\\\", () => input.ChannelFlowArn, \\\"{ChannelFlowArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelMembershipCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/memberships/{MemberArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    const query = map({\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelMessageCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/messages/{MessageId}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MessageId\\\", () => input.MessageId, \\\"{MessageId}\\\", false);\\n    const query = map({\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DeleteChannelModeratorCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/moderators/{ChannelModeratorArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelModeratorArn\\\", () => input.ChannelModeratorArn, \\\"{ChannelModeratorArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelBanCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/bans/{MemberArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {};\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channel-flows/{ChannelFlowArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelFlowArn\\\", () => input.ChannelFlowArn, \\\"{ChannelFlowArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelMembershipCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/memberships/{MemberArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    const query = map({\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        scope: [, \\\"app-instance-user-membership\\\"],\\n        \\\"app-instance-user-arn\\\": [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.AppInstanceUserArn, `AppInstanceUserArn`)],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        scope: [, \\\"app-instance-user-moderated-channel\\\"],\\n        \\\"app-instance-user-arn\\\": [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.AppInstanceUserArn, `AppInstanceUserArn`)],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DescribeChannelModeratorCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/moderators/{ChannelModeratorArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelModeratorArn\\\", () => input.ChannelModeratorArn, \\\"{ChannelModeratorArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1DisassociateChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/channel-flow/{ChannelFlowArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelFlowArn\\\", () => input.ChannelFlowArn, \\\"{ChannelFlowArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"DELETE\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1GetChannelMembershipPreferencesCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/memberships/{MemberArn}/preferences\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1GetChannelMessageCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/messages/{MessageId}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MessageId\\\", () => input.MessageId, \\\"{MessageId}\\\", false);\\n    const query = map({\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1GetChannelMessageStatusCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/messages/{MessageId}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MessageId\\\", () => input.MessageId, \\\"{MessageId}\\\", false);\\n    const query = map({\\n        scope: [, \\\"message-status\\\"],\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1GetMessagingSessionEndpointCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/endpoints/messaging-session\\\";\\n    let body;\\n    body = \\\"\\\";\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelBansCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/bans\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelFlowsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {};\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channel-flows\\\";\\n    const query = map({\\n        \\\"app-instance-arn\\\": [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.AppInstanceArn, `AppInstanceArn`)],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelMembershipsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/memberships\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        type: [, input.Type],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    const query = map({\\n        scope: [, \\\"app-instance-user-memberships\\\"],\\n        \\\"app-instance-user-arn\\\": [, input.AppInstanceUserArn],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelMessagesCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/messages\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        \\\"sort-order\\\": [, input.SortOrder],\\n        \\\"not-before\\\": [\\n            () => input.NotBefore !== void 0,\\n            () => (input.NotBefore.toISOString().split(\\\".\\\")[0] + \\\"Z\\\").toString(),\\n        ],\\n        \\\"not-after\\\": [\\n            () => input.NotAfter !== void 0,\\n            () => (input.NotAfter.toISOString().split(\\\".\\\")[0] + \\\"Z\\\").toString(),\\n        ],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n        \\\"sub-channel-id\\\": [, input.SubChannelId],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelModeratorsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/moderators\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    const query = map({\\n        \\\"app-instance-arn\\\": [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.AppInstanceArn, `AppInstanceArn`)],\\n        privacy: [, input.Privacy],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {};\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    const query = map({\\n        scope: [, \\\"channel-flow-associations\\\"],\\n        \\\"channel-flow-arn\\\": [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.ChannelFlowArn, `ChannelFlowArn`)],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    const query = map({\\n        scope: [, \\\"app-instance-user-moderated-channels\\\"],\\n        \\\"app-instance-user-arn\\\": [, input.AppInstanceUserArn],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListSubChannelsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/subchannels\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    const query = map({\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1ListTagsForResourceCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {};\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/tags\\\";\\n    const query = map({\\n        arn: [, (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)(input.ResourceARN, `ResourceARN`)],\\n    });\\n    let body;\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"GET\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1PutChannelMembershipPreferencesCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/memberships/{MemberArn}/preferences\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MemberArn\\\", () => input.MemberArn, \\\"{MemberArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.Preferences != null && {\\n            Preferences: serializeAws_restJson1ChannelMembershipPreferences(input.Preferences, context),\\n        }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1RedactChannelMessageCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/messages/{MessageId}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MessageId\\\", () => input.MessageId, \\\"{MessageId}\\\", false);\\n    const query = map({\\n        operation: [, \\\"redact\\\"],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1SearchChannelsCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels\\\";\\n    const query = map({\\n        operation: [, \\\"search\\\"],\\n        \\\"max-results\\\": [() => input.MaxResults !== void 0, () => input.MaxResults.toString()],\\n        \\\"next-token\\\": [, input.NextToken],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.Fields != null && { Fields: serializeAws_restJson1SearchFields(input.Fields, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1SendChannelMessageCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/messages\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ClientRequestToken: input.ClientRequestToken ?? (0,uuid__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"])(),\\n        ...(input.Content != null && { Content: input.Content }),\\n        ...(input.MessageAttributes != null && {\\n            MessageAttributes: serializeAws_restJson1MessageAttributeMap(input.MessageAttributes, context),\\n        }),\\n        ...(input.Metadata != null && { Metadata: input.Metadata }),\\n        ...(input.Persistence != null && { Persistence: input.Persistence }),\\n        ...(input.PushNotification != null && {\\n            PushNotification: serializeAws_restJson1PushNotificationConfiguration(input.PushNotification, context),\\n        }),\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n        ...(input.Type != null && { Type: input.Type }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1TagResourceCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/tags\\\";\\n    const query = map({\\n        operation: [, \\\"tag-resource\\\"],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.ResourceARN != null && { ResourceARN: input.ResourceARN }),\\n        ...(input.Tags != null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1UntagResourceCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    const resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/tags\\\";\\n    const query = map({\\n        operation: [, \\\"untag-resource\\\"],\\n    });\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.ResourceARN != null && { ResourceARN: input.ResourceARN }),\\n        ...(input.TagKeys != null && { TagKeys: serializeAws_restJson1TagKeyList(input.TagKeys, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"POST\\\",\\n        headers,\\n        path: resolvedPath,\\n        query,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1UpdateChannelCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.Metadata != null && { Metadata: input.Metadata }),\\n        ...(input.Mode != null && { Mode: input.Mode }),\\n        ...(input.Name != null && { Name: input.Name }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1UpdateChannelFlowCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n    };\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channel-flows/{ChannelFlowArn}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelFlowArn\\\", () => input.ChannelFlowArn, \\\"{ChannelFlowArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.Name != null && { Name: input.Name }),\\n        ...(input.Processors != null && { Processors: serializeAws_restJson1ProcessorList(input.Processors, context) }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1UpdateChannelMessageCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` +\\n        \\\"/channels/{ChannelArn}/messages/{MessageId}\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"MessageId\\\", () => input.MessageId, \\\"{MessageId}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.Content != null && { Content: input.Content }),\\n        ...(input.Metadata != null && { Metadata: input.Metadata }),\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst serializeAws_restJson1UpdateChannelReadMarkerCommand = async (input, context) => {\\n    const { hostname, protocol = \\\"https\\\", port, path: basePath } = await context.endpoint();\\n    const headers = map({}, isSerializableHeaderValue, {\\n        \\\"content-type\\\": \\\"application/json\\\",\\n        \\\"x-amz-chime-bearer\\\": input.ChimeBearer,\\n    });\\n    let resolvedPath = `${basePath?.endsWith(\\\"/\\\") ? basePath.slice(0, -1) : basePath || \\\"\\\"}` + \\\"/channels/{ChannelArn}/readMarker\\\";\\n    resolvedPath = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.resolvedPath)(resolvedPath, input, \\\"ChannelArn\\\", () => input.ChannelArn, \\\"{ChannelArn}\\\", false);\\n    let body;\\n    body = JSON.stringify({\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n    });\\n    return new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest({\\n        protocol,\\n        hostname,\\n        port,\\n        method: \\\"PUT\\\",\\n        headers,\\n        path: resolvedPath,\\n        body,\\n    });\\n};\\nconst deserializeAws_restJson1AssociateChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1AssociateChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1AssociateChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1BatchCreateChannelMembershipCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1BatchCreateChannelMembershipCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.BatchChannelMemberships != null) {\\n        contents.BatchChannelMemberships = deserializeAws_restJson1BatchChannelMemberships(data.BatchChannelMemberships, context);\\n    }\\n    if (data.Errors != null) {\\n        contents.Errors = deserializeAws_restJson1BatchCreateChannelMembershipErrors(data.Errors, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1BatchCreateChannelMembershipCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ChannelFlowCallbackCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ChannelFlowCallbackCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.CallbackId != null) {\\n        contents.CallbackId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.CallbackId);\\n    }\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ChannelFlowCallbackCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1CreateChannelCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1CreateChannelCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1CreateChannelCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1CreateChannelBanCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1CreateChannelBanCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.Member != null) {\\n        contents.Member = deserializeAws_restJson1Identity(data.Member, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1CreateChannelBanCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1CreateChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1CreateChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelFlowArn != null) {\\n        contents.ChannelFlowArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelFlowArn);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1CreateChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1CreateChannelMembershipCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1CreateChannelMembershipCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.Member != null) {\\n        contents.Member = deserializeAws_restJson1Identity(data.Member, context);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1CreateChannelMembershipCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1CreateChannelModeratorCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1CreateChannelModeratorCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.ChannelModerator != null) {\\n        contents.ChannelModerator = deserializeAws_restJson1Identity(data.ChannelModerator, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1CreateChannelModeratorCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelBanCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelBanCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelBanCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelMembershipCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelMembershipCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelMembershipCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelMessageCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelMessageCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelMessageCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DeleteChannelModeratorCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DeleteChannelModeratorCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DeleteChannelModeratorCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channel != null) {\\n        contents.Channel = deserializeAws_restJson1Channel(data.Channel, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelBanCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelBanCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelBan != null) {\\n        contents.ChannelBan = deserializeAws_restJson1ChannelBan(data.ChannelBan, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelBanCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelFlow != null) {\\n        contents.ChannelFlow = deserializeAws_restJson1ChannelFlow(data.ChannelFlow, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelMembershipCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelMembershipCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelMembership != null) {\\n        contents.ChannelMembership = deserializeAws_restJson1ChannelMembership(data.ChannelMembership, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelMembershipCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelMembership != null) {\\n        contents.ChannelMembership = deserializeAws_restJson1ChannelMembershipForAppInstanceUserSummary(data.ChannelMembership, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelMembershipForAppInstanceUserCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channel != null) {\\n        contents.Channel = deserializeAws_restJson1ChannelModeratedByAppInstanceUserSummary(data.Channel, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelModeratedByAppInstanceUserCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DescribeChannelModeratorCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DescribeChannelModeratorCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelModerator != null) {\\n        contents.ChannelModerator = deserializeAws_restJson1ChannelModerator(data.ChannelModerator, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1DescribeChannelModeratorCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1DisassociateChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1DisassociateChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1DisassociateChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1GetChannelMembershipPreferencesCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1GetChannelMembershipPreferencesCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.Member != null) {\\n        contents.Member = deserializeAws_restJson1Identity(data.Member, context);\\n    }\\n    if (data.Preferences != null) {\\n        contents.Preferences = deserializeAws_restJson1ChannelMembershipPreferences(data.Preferences, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1GetChannelMembershipPreferencesCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1GetChannelMessageCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1GetChannelMessageCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelMessage != null) {\\n        contents.ChannelMessage = deserializeAws_restJson1ChannelMessage(data.ChannelMessage, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1GetChannelMessageCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"NotFoundException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#NotFoundException\\\":\\n            throw await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1GetChannelMessageStatusCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1GetChannelMessageStatusCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Status != null) {\\n        contents.Status = deserializeAws_restJson1ChannelMessageStatusStructure(data.Status, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1GetChannelMessageStatusCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1GetMessagingSessionEndpointCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1GetMessagingSessionEndpointCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Endpoint != null) {\\n        contents.Endpoint = deserializeAws_restJson1MessagingSessionEndpoint(data.Endpoint, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1GetMessagingSessionEndpointCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelBansCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelBansCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.ChannelBans != null) {\\n        contents.ChannelBans = deserializeAws_restJson1ChannelBanSummaryList(data.ChannelBans, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelBansCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelFlowsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelFlowsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelFlows != null) {\\n        contents.ChannelFlows = deserializeAws_restJson1ChannelFlowSummaryList(data.ChannelFlows, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelFlowsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelMembershipsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelMembershipsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.ChannelMemberships != null) {\\n        contents.ChannelMemberships = deserializeAws_restJson1ChannelMembershipSummaryList(data.ChannelMemberships, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelMembershipsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelMemberships != null) {\\n        contents.ChannelMemberships = deserializeAws_restJson1ChannelMembershipForAppInstanceUserSummaryList(data.ChannelMemberships, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelMembershipsForAppInstanceUserCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelMessagesCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelMessagesCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.ChannelMessages != null) {\\n        contents.ChannelMessages = deserializeAws_restJson1ChannelMessageSummaryList(data.ChannelMessages, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelMessagesCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelModeratorsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelModeratorsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.ChannelModerators != null) {\\n        contents.ChannelModerators = deserializeAws_restJson1ChannelModeratorSummaryList(data.ChannelModerators, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelModeratorsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channels != null) {\\n        contents.Channels = deserializeAws_restJson1ChannelSummaryList(data.Channels, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channels != null) {\\n        contents.Channels = deserializeAws_restJson1ChannelAssociatedWithFlowSummaryList(data.Channels, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelsAssociatedWithChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channels != null) {\\n        contents.Channels = deserializeAws_restJson1ChannelModeratedByAppInstanceUserSummaryList(data.Channels, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListChannelsModeratedByAppInstanceUserCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListSubChannelsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListSubChannelsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    if (data.SubChannels != null) {\\n        contents.SubChannels = deserializeAws_restJson1SubChannelSummaryList(data.SubChannels, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListSubChannelsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1ListTagsForResourceCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1ListTagsForResourceCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Tags != null) {\\n        contents.Tags = deserializeAws_restJson1TagList(data.Tags, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1ListTagsForResourceCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1PutChannelMembershipPreferencesCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1PutChannelMembershipPreferencesCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.Member != null) {\\n        contents.Member = deserializeAws_restJson1Identity(data.Member, context);\\n    }\\n    if (data.Preferences != null) {\\n        contents.Preferences = deserializeAws_restJson1ChannelMembershipPreferences(data.Preferences, context);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1PutChannelMembershipPreferencesCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1RedactChannelMessageCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1RedactChannelMessageCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.MessageId != null) {\\n        contents.MessageId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.MessageId);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1RedactChannelMessageCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1SearchChannelsCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1SearchChannelsCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.Channels != null) {\\n        contents.Channels = deserializeAws_restJson1ChannelSummaryList(data.Channels, context);\\n    }\\n    if (data.NextToken != null) {\\n        contents.NextToken = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.NextToken);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1SearchChannelsCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1SendChannelMessageCommand = async (output, context) => {\\n    if (output.statusCode !== 201 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1SendChannelMessageCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.MessageId != null) {\\n        contents.MessageId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.MessageId);\\n    }\\n    if (data.Status != null) {\\n        contents.Status = deserializeAws_restJson1ChannelMessageStatusStructure(data.Status, context);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1SendChannelMessageCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1TagResourceCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1TagResourceCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1TagResourceCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ResourceLimitExceededException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ResourceLimitExceededException\\\":\\n            throw await deserializeAws_restJson1ResourceLimitExceededExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1UntagResourceCommand = async (output, context) => {\\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1UntagResourceCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    await collectBody(output.body, context);\\n    return contents;\\n};\\nconst deserializeAws_restJson1UntagResourceCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1UpdateChannelCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1UpdateChannelCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1UpdateChannelCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1UpdateChannelFlowCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1UpdateChannelFlowCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelFlowArn != null) {\\n        contents.ChannelFlowArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelFlowArn);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1UpdateChannelFlowCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1UpdateChannelMessageCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1UpdateChannelMessageCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.MessageId != null) {\\n        contents.MessageId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.MessageId);\\n    }\\n    if (data.Status != null) {\\n        contents.Status = deserializeAws_restJson1ChannelMessageStatusStructure(data.Status, context);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1UpdateChannelMessageCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst deserializeAws_restJson1UpdateChannelReadMarkerCommand = async (output, context) => {\\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\\n        return deserializeAws_restJson1UpdateChannelReadMarkerCommandError(output, context);\\n    }\\n    const contents = map({\\n        $metadata: deserializeMetadata(output),\\n    });\\n    const data = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectObject)(await parseBody(output.body, context)), \\\"body\\\");\\n    if (data.ChannelArn != null) {\\n        contents.ChannelArn = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.ChannelArn);\\n    }\\n    if (data.SubChannelId != null) {\\n        contents.SubChannelId = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.SubChannelId);\\n    }\\n    return contents;\\n};\\nconst deserializeAws_restJson1UpdateChannelReadMarkerCommandError = async (output, context) => {\\n    const parsedOutput = {\\n        ...output,\\n        body: await parseErrorBody(output.body, context),\\n    };\\n    const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\\n    switch (errorCode) {\\n        case \\\"BadRequestException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#BadRequestException\\\":\\n            throw await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context);\\n        case \\\"ConflictException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ConflictException\\\":\\n            throw await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context);\\n        case \\\"ForbiddenException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ForbiddenException\\\":\\n            throw await deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceFailureException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceFailureException\\\":\\n            throw await deserializeAws_restJson1ServiceFailureExceptionResponse(parsedOutput, context);\\n        case \\\"ServiceUnavailableException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ServiceUnavailableException\\\":\\n            throw await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context);\\n        case \\\"ThrottledClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#ThrottledClientException\\\":\\n            throw await deserializeAws_restJson1ThrottledClientExceptionResponse(parsedOutput, context);\\n        case \\\"UnauthorizedClientException\\\":\\n        case \\\"com.amazonaws.chimesdkmessaging#UnauthorizedClientException\\\":\\n            throw await deserializeAws_restJson1UnauthorizedClientExceptionResponse(parsedOutput, context);\\n        default:\\n            const parsedBody = parsedOutput.body;\\n            (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.throwDefaultError)({\\n                output,\\n                parsedBody,\\n                exceptionCtor: _models_ChimeSDKMessagingServiceException__WEBPACK_IMPORTED_MODULE_3__.ChimeSDKMessagingServiceException,\\n                errorCode,\\n            });\\n    }\\n};\\nconst map = _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.map;\\nconst deserializeAws_restJson1BadRequestExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.BadRequestException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ConflictExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ConflictException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ForbiddenExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ForbiddenException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1NotFoundExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.NotFoundException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ResourceLimitExceededExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ResourceLimitExceededException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ServiceFailureExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ServiceFailureException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ServiceUnavailableExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ServiceUnavailableException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1ThrottledClientExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.ThrottledClientException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst deserializeAws_restJson1UnauthorizedClientExceptionResponse = async (parsedOutput, context) => {\\n    const contents = map({});\\n    const data = parsedOutput.body;\\n    if (data.Code != null) {\\n        contents.Code = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Code);\\n    }\\n    if (data.Message != null) {\\n        contents.Message = (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(data.Message);\\n    }\\n    const exception = new _models_models_0__WEBPACK_IMPORTED_MODULE_4__.UnauthorizedClientException({\\n        $metadata: deserializeMetadata(parsedOutput),\\n        ...contents,\\n    });\\n    return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.decorateServiceException)(exception, parsedOutput.body);\\n};\\nconst serializeAws_restJson1ChannelMemberArns = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1ChannelMembershipPreferences = (input, context) => {\\n    return {\\n        ...(input.PushNotifications != null && {\\n            PushNotifications: serializeAws_restJson1PushNotificationPreferences(input.PushNotifications, context),\\n        }),\\n    };\\n};\\nconst serializeAws_restJson1ChannelMessageCallback = (input, context) => {\\n    return {\\n        ...(input.Content != null && { Content: input.Content }),\\n        ...(input.MessageAttributes != null && {\\n            MessageAttributes: serializeAws_restJson1MessageAttributeMap(input.MessageAttributes, context),\\n        }),\\n        ...(input.MessageId != null && { MessageId: input.MessageId }),\\n        ...(input.Metadata != null && { Metadata: input.Metadata }),\\n        ...(input.PushNotification != null && {\\n            PushNotification: serializeAws_restJson1PushNotificationConfiguration(input.PushNotification, context),\\n        }),\\n        ...(input.SubChannelId != null && { SubChannelId: input.SubChannelId }),\\n    };\\n};\\nconst serializeAws_restJson1ChannelModeratorArns = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1ElasticChannelConfiguration = (input, context) => {\\n    return {\\n        ...(input.MaximumSubChannels != null && { MaximumSubChannels: input.MaximumSubChannels }),\\n        ...(input.MinimumMembershipPercentage != null && {\\n            MinimumMembershipPercentage: input.MinimumMembershipPercentage,\\n        }),\\n        ...(input.TargetMembershipsPerSubChannel != null && {\\n            TargetMembershipsPerSubChannel: input.TargetMembershipsPerSubChannel,\\n        }),\\n    };\\n};\\nconst serializeAws_restJson1LambdaConfiguration = (input, context) => {\\n    return {\\n        ...(input.InvocationType != null && { InvocationType: input.InvocationType }),\\n        ...(input.ResourceArn != null && { ResourceArn: input.ResourceArn }),\\n    };\\n};\\nconst serializeAws_restJson1MemberArns = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1MessageAttributeMap = (input, context) => {\\n    return Object.entries(input).reduce((acc, [key, value]) => {\\n        if (value === null) {\\n            return acc;\\n        }\\n        acc[key] = serializeAws_restJson1MessageAttributeValue(value, context);\\n        return acc;\\n    }, {});\\n};\\nconst serializeAws_restJson1MessageAttributeStringValues = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1MessageAttributeValue = (input, context) => {\\n    return {\\n        ...(input.StringValues != null && {\\n            StringValues: serializeAws_restJson1MessageAttributeStringValues(input.StringValues, context),\\n        }),\\n    };\\n};\\nconst serializeAws_restJson1Processor = (input, context) => {\\n    return {\\n        ...(input.Configuration != null && {\\n            Configuration: serializeAws_restJson1ProcessorConfiguration(input.Configuration, context),\\n        }),\\n        ...(input.ExecutionOrder != null && { ExecutionOrder: input.ExecutionOrder }),\\n        ...(input.FallbackAction != null && { FallbackAction: input.FallbackAction }),\\n        ...(input.Name != null && { Name: input.Name }),\\n    };\\n};\\nconst serializeAws_restJson1ProcessorConfiguration = (input, context) => {\\n    return {\\n        ...(input.Lambda != null && { Lambda: serializeAws_restJson1LambdaConfiguration(input.Lambda, context) }),\\n    };\\n};\\nconst serializeAws_restJson1ProcessorList = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return serializeAws_restJson1Processor(entry, context);\\n    });\\n};\\nconst serializeAws_restJson1PushNotificationConfiguration = (input, context) => {\\n    return {\\n        ...(input.Body != null && { Body: input.Body }),\\n        ...(input.Title != null && { Title: input.Title }),\\n        ...(input.Type != null && { Type: input.Type }),\\n    };\\n};\\nconst serializeAws_restJson1PushNotificationPreferences = (input, context) => {\\n    return {\\n        ...(input.AllowNotifications != null && { AllowNotifications: input.AllowNotifications }),\\n        ...(input.FilterRule != null && { FilterRule: input.FilterRule }),\\n    };\\n};\\nconst serializeAws_restJson1SearchField = (input, context) => {\\n    return {\\n        ...(input.Key != null && { Key: input.Key }),\\n        ...(input.Operator != null && { Operator: input.Operator }),\\n        ...(input.Values != null && { Values: serializeAws_restJson1SearchFieldValues(input.Values, context) }),\\n    };\\n};\\nconst serializeAws_restJson1SearchFields = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return serializeAws_restJson1SearchField(entry, context);\\n    });\\n};\\nconst serializeAws_restJson1SearchFieldValues = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1Tag = (input, context) => {\\n    return {\\n        ...(input.Key != null && { Key: input.Key }),\\n        ...(input.Value != null && { Value: input.Value }),\\n    };\\n};\\nconst serializeAws_restJson1TagKeyList = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return entry;\\n    });\\n};\\nconst serializeAws_restJson1TagList = (input, context) => {\\n    return input\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        return serializeAws_restJson1Tag(entry, context);\\n    });\\n};\\nconst deserializeAws_restJson1AppInstanceUserMembershipSummary = (output, context) => {\\n    return {\\n        ReadMarkerTimestamp: output.ReadMarkerTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.ReadMarkerTimestamp)))\\n            : undefined,\\n        SubChannelId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.SubChannelId),\\n        Type: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Type),\\n    };\\n};\\nconst deserializeAws_restJson1BatchChannelMemberships = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        InvitedBy: output.InvitedBy != null ? deserializeAws_restJson1Identity(output.InvitedBy, context) : undefined,\\n        Members: output.Members != null ? deserializeAws_restJson1Members(output.Members, context) : undefined,\\n        SubChannelId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.SubChannelId),\\n        Type: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Type),\\n    };\\n};\\nconst deserializeAws_restJson1BatchCreateChannelMembershipError = (output, context) => {\\n    return {\\n        ErrorCode: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ErrorCode),\\n        ErrorMessage: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ErrorMessage),\\n        MemberArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.MemberArn),\\n    };\\n};\\nconst deserializeAws_restJson1BatchCreateChannelMembershipErrors = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1BatchCreateChannelMembershipError(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1Channel = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        ChannelFlowArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelFlowArn),\\n        CreatedBy: output.CreatedBy != null ? deserializeAws_restJson1Identity(output.CreatedBy, context) : undefined,\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        ElasticChannelConfiguration: output.ElasticChannelConfiguration != null\\n            ? deserializeAws_restJson1ElasticChannelConfiguration(output.ElasticChannelConfiguration, context)\\n            : undefined,\\n        LastMessageTimestamp: output.LastMessageTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastMessageTimestamp)))\\n            : undefined,\\n        LastUpdatedTimestamp: output.LastUpdatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastUpdatedTimestamp)))\\n            : undefined,\\n        Metadata: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Metadata),\\n        Mode: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Mode),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n        Privacy: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Privacy),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelAssociatedWithFlowSummary = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        Metadata: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Metadata),\\n        Mode: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Mode),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n        Privacy: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Privacy),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelAssociatedWithFlowSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelAssociatedWithFlowSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelBan = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        CreatedBy: output.CreatedBy != null ? deserializeAws_restJson1Identity(output.CreatedBy, context) : undefined,\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        Member: output.Member != null ? deserializeAws_restJson1Identity(output.Member, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelBanSummary = (output, context) => {\\n    return {\\n        Member: output.Member != null ? deserializeAws_restJson1Identity(output.Member, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelBanSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelBanSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelFlow = (output, context) => {\\n    return {\\n        ChannelFlowArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelFlowArn),\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        LastUpdatedTimestamp: output.LastUpdatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastUpdatedTimestamp)))\\n            : undefined,\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n        Processors: output.Processors != null ? deserializeAws_restJson1ProcessorList(output.Processors, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelFlowSummary = (output, context) => {\\n    return {\\n        ChannelFlowArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelFlowArn),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n        Processors: output.Processors != null ? deserializeAws_restJson1ProcessorList(output.Processors, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelFlowSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelFlowSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelMembership = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        InvitedBy: output.InvitedBy != null ? deserializeAws_restJson1Identity(output.InvitedBy, context) : undefined,\\n        LastUpdatedTimestamp: output.LastUpdatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastUpdatedTimestamp)))\\n            : undefined,\\n        Member: output.Member != null ? deserializeAws_restJson1Identity(output.Member, context) : undefined,\\n        SubChannelId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.SubChannelId),\\n        Type: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Type),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMembershipForAppInstanceUserSummary = (output, context) => {\\n    return {\\n        AppInstanceUserMembershipSummary: output.AppInstanceUserMembershipSummary != null\\n            ? deserializeAws_restJson1AppInstanceUserMembershipSummary(output.AppInstanceUserMembershipSummary, context)\\n            : undefined,\\n        ChannelSummary: output.ChannelSummary != null\\n            ? deserializeAws_restJson1ChannelSummary(output.ChannelSummary, context)\\n            : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMembershipForAppInstanceUserSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelMembershipForAppInstanceUserSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelMembershipPreferences = (output, context) => {\\n    return {\\n        PushNotifications: output.PushNotifications != null\\n            ? deserializeAws_restJson1PushNotificationPreferences(output.PushNotifications, context)\\n            : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMembershipSummary = (output, context) => {\\n    return {\\n        Member: output.Member != null ? deserializeAws_restJson1Identity(output.Member, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMembershipSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelMembershipSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelMessage = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        Content: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Content),\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        LastEditedTimestamp: output.LastEditedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastEditedTimestamp)))\\n            : undefined,\\n        LastUpdatedTimestamp: output.LastUpdatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastUpdatedTimestamp)))\\n            : undefined,\\n        MessageAttributes: output.MessageAttributes != null\\n            ? deserializeAws_restJson1MessageAttributeMap(output.MessageAttributes, context)\\n            : undefined,\\n        MessageId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.MessageId),\\n        Metadata: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Metadata),\\n        Persistence: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Persistence),\\n        Redacted: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectBoolean)(output.Redacted),\\n        Sender: output.Sender != null ? deserializeAws_restJson1Identity(output.Sender, context) : undefined,\\n        Status: output.Status != null ? deserializeAws_restJson1ChannelMessageStatusStructure(output.Status, context) : undefined,\\n        SubChannelId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.SubChannelId),\\n        Type: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Type),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMessageStatusStructure = (output, context) => {\\n    return {\\n        Detail: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Detail),\\n        Value: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Value),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMessageSummary = (output, context) => {\\n    return {\\n        Content: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Content),\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        LastEditedTimestamp: output.LastEditedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastEditedTimestamp)))\\n            : undefined,\\n        LastUpdatedTimestamp: output.LastUpdatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastUpdatedTimestamp)))\\n            : undefined,\\n        MessageAttributes: output.MessageAttributes != null\\n            ? deserializeAws_restJson1MessageAttributeMap(output.MessageAttributes, context)\\n            : undefined,\\n        MessageId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.MessageId),\\n        Metadata: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Metadata),\\n        Redacted: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectBoolean)(output.Redacted),\\n        Sender: output.Sender != null ? deserializeAws_restJson1Identity(output.Sender, context) : undefined,\\n        Status: output.Status != null ? deserializeAws_restJson1ChannelMessageStatusStructure(output.Status, context) : undefined,\\n        Type: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Type),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelMessageSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelMessageSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelModeratedByAppInstanceUserSummary = (output, context) => {\\n    return {\\n        ChannelSummary: output.ChannelSummary != null\\n            ? deserializeAws_restJson1ChannelSummary(output.ChannelSummary, context)\\n            : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelModeratedByAppInstanceUserSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelModeratedByAppInstanceUserSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelModerator = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        CreatedBy: output.CreatedBy != null ? deserializeAws_restJson1Identity(output.CreatedBy, context) : undefined,\\n        CreatedTimestamp: output.CreatedTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.CreatedTimestamp)))\\n            : undefined,\\n        Moderator: output.Moderator != null ? deserializeAws_restJson1Identity(output.Moderator, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelModeratorSummary = (output, context) => {\\n    return {\\n        Moderator: output.Moderator != null ? deserializeAws_restJson1Identity(output.Moderator, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ChannelModeratorSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelModeratorSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ChannelSummary = (output, context) => {\\n    return {\\n        ChannelArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ChannelArn),\\n        LastMessageTimestamp: output.LastMessageTimestamp != null\\n            ? (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNonNull)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.parseEpochTimestamp)((0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectNumber)(output.LastMessageTimestamp)))\\n            : undefined,\\n        Metadata: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Metadata),\\n        Mode: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Mode),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n        Privacy: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Privacy),\\n    };\\n};\\nconst deserializeAws_restJson1ChannelSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1ChannelSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1ElasticChannelConfiguration = (output, context) => {\\n    return {\\n        MaximumSubChannels: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectInt32)(output.MaximumSubChannels),\\n        MinimumMembershipPercentage: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectInt32)(output.MinimumMembershipPercentage),\\n        TargetMembershipsPerSubChannel: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectInt32)(output.TargetMembershipsPerSubChannel),\\n    };\\n};\\nconst deserializeAws_restJson1Identity = (output, context) => {\\n    return {\\n        Arn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Arn),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n    };\\n};\\nconst deserializeAws_restJson1LambdaConfiguration = (output, context) => {\\n    return {\\n        InvocationType: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.InvocationType),\\n        ResourceArn: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.ResourceArn),\\n    };\\n};\\nconst deserializeAws_restJson1Members = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1Identity(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1MessageAttributeMap = (output, context) => {\\n    return Object.entries(output).reduce((acc, [key, value]) => {\\n        if (value === null) {\\n            return acc;\\n        }\\n        acc[key] = deserializeAws_restJson1MessageAttributeValue(value, context);\\n        return acc;\\n    }, {});\\n};\\nconst deserializeAws_restJson1MessageAttributeStringValues = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(entry);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1MessageAttributeValue = (output, context) => {\\n    return {\\n        StringValues: output.StringValues != null\\n            ? deserializeAws_restJson1MessageAttributeStringValues(output.StringValues, context)\\n            : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1MessagingSessionEndpoint = (output, context) => {\\n    return {\\n        Url: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Url),\\n    };\\n};\\nconst deserializeAws_restJson1Processor = (output, context) => {\\n    return {\\n        Configuration: output.Configuration != null\\n            ? deserializeAws_restJson1ProcessorConfiguration(output.Configuration, context)\\n            : undefined,\\n        ExecutionOrder: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectInt32)(output.ExecutionOrder),\\n        FallbackAction: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.FallbackAction),\\n        Name: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Name),\\n    };\\n};\\nconst deserializeAws_restJson1ProcessorConfiguration = (output, context) => {\\n    return {\\n        Lambda: output.Lambda != null ? deserializeAws_restJson1LambdaConfiguration(output.Lambda, context) : undefined,\\n    };\\n};\\nconst deserializeAws_restJson1ProcessorList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1Processor(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1PushNotificationPreferences = (output, context) => {\\n    return {\\n        AllowNotifications: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.AllowNotifications),\\n        FilterRule: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.FilterRule),\\n    };\\n};\\nconst deserializeAws_restJson1SubChannelSummary = (output, context) => {\\n    return {\\n        MembershipCount: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectInt32)(output.MembershipCount),\\n        SubChannelId: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.SubChannelId),\\n    };\\n};\\nconst deserializeAws_restJson1SubChannelSummaryList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1SubChannelSummary(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeAws_restJson1Tag = (output, context) => {\\n    return {\\n        Key: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Key),\\n        Value: (0,_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__.expectString)(output.Value),\\n    };\\n};\\nconst deserializeAws_restJson1TagList = (output, context) => {\\n    const retVal = (output || [])\\n        .filter((e) => e != null)\\n        .map((entry) => {\\n        if (entry === null) {\\n            return null;\\n        }\\n        return deserializeAws_restJson1Tag(entry, context);\\n    });\\n    return retVal;\\n};\\nconst deserializeMetadata = (output) => ({\\n    httpStatusCode: output.statusCode,\\n    requestId: output.headers[\\\"x-amzn-requestid\\\"] ?? output.headers[\\\"x-amzn-request-id\\\"] ?? output.headers[\\\"x-amz-request-id\\\"],\\n    extendedRequestId: output.headers[\\\"x-amz-id-2\\\"],\\n    cfId: output.headers[\\\"x-amz-cf-id\\\"],\\n});\\nconst collectBody = (streamBody = new Uint8Array(), context) => {\\n    if (streamBody instanceof Uint8Array) {\\n        return Promise.resolve(streamBody);\\n    }\\n    return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\\n};\\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\\nconst isSerializableHeaderValue = (value) => value !== undefined &&\\n    value !== null &&\\n    value !== \\\"\\\" &&\\n    (!Object.getOwnPropertyNames(value).includes(\\\"length\\\") || value.length != 0) &&\\n    (!Object.getOwnPropertyNames(value).includes(\\\"size\\\") || value.size != 0);\\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\\n    if (encoded.length) {\\n        return JSON.parse(encoded);\\n    }\\n    return {};\\n});\\nconst parseErrorBody = async (errorBody, context) => {\\n    const value = await parseBody(errorBody, context);\\n    value.message = value.message ?? value.Message;\\n    return value;\\n};\\nconst loadRestJsonErrorCode = (output, data) => {\\n    const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\\n    const sanitizeErrorCode = (rawValue) => {\\n        let cleanValue = rawValue;\\n        if (typeof cleanValue === \\\"number\\\") {\\n            cleanValue = cleanValue.toString();\\n        }\\n        if (cleanValue.indexOf(\\\",\\\") >= 0) {\\n            cleanValue = cleanValue.split(\\\",\\\")[0];\\n        }\\n        if (cleanValue.indexOf(\\\":\\\") >= 0) {\\n            cleanValue = cleanValue.split(\\\":\\\")[0];\\n        }\\n        if (cleanValue.indexOf(\\\"#\\\") >= 0) {\\n            cleanValue = cleanValue.split(\\\"#\\\")[1];\\n        }\\n        return cleanValue;\\n    };\\n    const headerKey = findKey(output.headers, \\\"x-amzn-errortype\\\");\\n    if (headerKey !== undefined) {\\n        return sanitizeErrorCode(output.headers[headerKey]);\\n    }\\n    if (data.code !== undefined) {\\n        return sanitizeErrorCode(data.code);\\n    }\\n    if (data[\\\"__type\\\"] !== undefined) {\\n        return sanitizeErrorCode(data[\\\"__type\\\"]);\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/protocols/Aws_restJson1.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.browser.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.browser.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRuntimeConfig\\\": () => (/* binding */ getRuntimeConfig)\\n/* harmony export */ });\\n/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../package.json */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/package.json\\\");\\n/* harmony import */ var _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-crypto/sha256-browser */ \\\"./node_modules/@aws-crypto/sha256-browser/build/index.js\\\");\\n/* harmony import */ var _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var _aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/config-resolver */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/fetch-http-handler */ \\\"./node_modules/@aws-sdk/fetch-http-handler/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/invalid-dependency */ \\\"./node_modules/@aws-sdk/invalid-dependency/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/util-body-length-browser */ \\\"./node_modules/@aws-sdk/util-body-length-browser/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-sdk/util-user-agent-browser */ \\\"./node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js\\\");\\n/* harmony import */ var _runtimeConfig_shared__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./runtimeConfig.shared */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.shared.js\\\");\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_defaults_mode_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-sdk/util-defaults-mode-browser */ \\\"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/index.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nconst getRuntimeConfig = (config) => {\\n    const defaultsMode = (0,_aws_sdk_util_defaults_mode_browser__WEBPACK_IMPORTED_MODULE_8__.resolveDefaultsModeConfig)(config);\\n    const defaultConfigProvider = () => defaultsMode().then(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_7__.loadConfigsForDefaultMode);\\n    const clientSharedValues = (0,_runtimeConfig_shared__WEBPACK_IMPORTED_MODULE_9__.getRuntimeConfig)(config);\\n    return {\\n        ...clientSharedValues,\\n        ...config,\\n        runtime: \\\"browser\\\",\\n        defaultsMode,\\n        bodyLengthChecker: config?.bodyLengthChecker ?? _aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_4__.calculateBodyLength,\\n        credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\\\"Credential is missing\\\"))),\\n        defaultUserAgentProvider: config?.defaultUserAgentProvider ??\\n            (0,_aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_6__.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: _package_json__WEBPACK_IMPORTED_MODULE_10__.version }),\\n        maxAttempts: config?.maxAttempts ?? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_MAX_ATTEMPTS,\\n        region: config?.region ?? (0,_aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_3__.invalidProvider)(\\\"Region is missing\\\"),\\n        requestHandler: config?.requestHandler ?? new _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_2__.FetchHttpHandler(defaultConfigProvider),\\n        retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_RETRY_MODE),\\n        sha256: config?.sha256 ?? _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_0__.Sha256,\\n        streamCollector: config?.streamCollector ?? _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_2__.streamCollector,\\n        useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_USE_DUALSTACK_ENDPOINT)),\\n        useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_USE_FIPS_ENDPOINT)),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.shared.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.shared.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRuntimeConfig\\\": () => (/* binding */ getRuntimeConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/smithy-client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_url_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/url-parser */ \\\"./node_modules/@aws-sdk/url-parser/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-base64 */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/util-utf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/index.js\\\");\\n/* harmony import */ var _endpoint_endpointResolver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./endpoint/endpointResolver */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/endpoint/endpointResolver.js\\\");\\n\\n\\n\\n\\n\\nconst getRuntimeConfig = (config) => ({\\n    apiVersion: \\\"2021-05-15\\\",\\n    base64Decoder: config?.base64Decoder ?? _aws_sdk_util_base64__WEBPACK_IMPORTED_MODULE_2__.fromBase64,\\n    base64Encoder: config?.base64Encoder ?? _aws_sdk_util_base64__WEBPACK_IMPORTED_MODULE_2__.toBase64,\\n    disableHostPrefix: config?.disableHostPrefix ?? false,\\n    endpointProvider: config?.endpointProvider ?? _endpoint_endpointResolver__WEBPACK_IMPORTED_MODULE_4__.defaultEndpointResolver,\\n    logger: config?.logger ?? new _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_0__.NoOpLogger(),\\n    serviceId: config?.serviceId ?? \\\"Chime SDK Messaging\\\",\\n    urlParser: config?.urlParser ?? _aws_sdk_url_parser__WEBPACK_IMPORTED_MODULE_1__.parseUrl,\\n    utf8Decoder: config?.utf8Decoder ?? _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_3__.fromUtf8,\\n    utf8Encoder: config?.utf8Encoder ?? _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_3__.toUtf8,\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/runtimeConfig.shared.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js\":\n/*!****************************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js ***!\n  \\****************************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CONFIG_USE_DUALSTACK_ENDPOINT\\\": () => (/* binding */ CONFIG_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_DUALSTACK_ENDPOINT\\\": () => (/* binding */ DEFAULT_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_DUALSTACK_ENDPOINT\\\": () => (/* binding */ ENV_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* binding */ NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-config-provider */ \\\"./node_modules/@aws-sdk/util-config-provider/dist-es/index.js\\\");\\n\\nconst ENV_USE_DUALSTACK_ENDPOINT = \\\"AWS_USE_DUALSTACK_ENDPOINT\\\";\\nconst CONFIG_USE_DUALSTACK_ENDPOINT = \\\"use_dualstack_endpoint\\\";\\nconst DEFAULT_USE_DUALSTACK_ENDPOINT = false;\\nconst NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\\n    environmentVariableSelector: (env) => (0,_aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.booleanSelector)(env, ENV_USE_DUALSTACK_ENDPOINT, _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ENV),\\n    configFileSelector: (profile) => (0,_aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.booleanSelector)(profile, CONFIG_USE_DUALSTACK_ENDPOINT, _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.SelectorType.CONFIG),\\n    default: false,\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js ***!\n  \\***********************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CONFIG_USE_FIPS_ENDPOINT\\\": () => (/* binding */ CONFIG_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_FIPS_ENDPOINT\\\": () => (/* binding */ DEFAULT_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_FIPS_ENDPOINT\\\": () => (/* binding */ ENV_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* binding */ NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-config-provider */ \\\"./node_modules/@aws-sdk/util-config-provider/dist-es/index.js\\\");\\n\\nconst ENV_USE_FIPS_ENDPOINT = \\\"AWS_USE_FIPS_ENDPOINT\\\";\\nconst CONFIG_USE_FIPS_ENDPOINT = \\\"use_fips_endpoint\\\";\\nconst DEFAULT_USE_FIPS_ENDPOINT = false;\\nconst NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\\n    environmentVariableSelector: (env) => (0,_aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.booleanSelector)(env, ENV_USE_FIPS_ENDPOINT, _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ENV),\\n    configFileSelector: (profile) => (0,_aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.booleanSelector)(profile, CONFIG_USE_FIPS_ENDPOINT, _aws_sdk_util_config_provider__WEBPACK_IMPORTED_MODULE_0__.SelectorType.CONFIG),\\n    default: false,\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/index.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/index.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CONFIG_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseDualstackEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_0__.CONFIG_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"CONFIG_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseFipsEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_1__.CONFIG_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseDualstackEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseFipsEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseDualstackEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_0__.ENV_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _NodeUseFipsEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_1__.ENV_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _NodeUseDualstackEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_0__.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _NodeUseFipsEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_1__.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"resolveCustomEndpointsConfig\\\": () => (/* reexport safe */ _resolveCustomEndpointsConfig__WEBPACK_IMPORTED_MODULE_2__.resolveCustomEndpointsConfig),\\n/* harmony export */   \\\"resolveEndpointsConfig\\\": () => (/* reexport safe */ _resolveEndpointsConfig__WEBPACK_IMPORTED_MODULE_3__.resolveEndpointsConfig)\\n/* harmony export */ });\\n/* harmony import */ var _NodeUseDualstackEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeUseDualstackEndpointConfigOptions */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js\\\");\\n/* harmony import */ var _NodeUseFipsEndpointConfigOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeUseFipsEndpointConfigOptions */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js\\\");\\n/* harmony import */ var _resolveCustomEndpointsConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolveCustomEndpointsConfig */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js\\\");\\n/* harmony import */ var _resolveEndpointsConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resolveEndpointsConfig */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js\\\");\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveCustomEndpointsConfig\\\": () => (/* binding */ resolveCustomEndpointsConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n\\nconst resolveCustomEndpointsConfig = (input) => {\\n    const { endpoint, urlParser } = input;\\n    return {\\n        ...input,\\n        tls: input.tls ?? true,\\n        endpoint: (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(typeof endpoint === \\\"string\\\" ? urlParser(endpoint) : endpoint),\\n        isCustomEndpoint: true,\\n        useDualstackEndpoint: (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.useDualstackEndpoint ?? false),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveEndpointsConfig\\\": () => (/* binding */ resolveEndpointsConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n/* harmony import */ var _utils_getEndpointFromRegion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/getEndpointFromRegion */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js\\\");\\n\\n\\nconst resolveEndpointsConfig = (input) => {\\n    const useDualstackEndpoint = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.useDualstackEndpoint ?? false);\\n    const { endpoint, useFipsEndpoint, urlParser } = input;\\n    return {\\n        ...input,\\n        tls: input.tls ?? true,\\n        endpoint: endpoint\\n            ? (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(typeof endpoint === \\\"string\\\" ? urlParser(endpoint) : endpoint)\\n            : () => (0,_utils_getEndpointFromRegion__WEBPACK_IMPORTED_MODULE_1__.getEndpointFromRegion)({ ...input, useDualstackEndpoint, useFipsEndpoint }),\\n        isCustomEndpoint: !!endpoint,\\n        useDualstackEndpoint,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointFromRegion\\\": () => (/* binding */ getEndpointFromRegion)\\n/* harmony export */ });\\nconst getEndpointFromRegion = async (input) => {\\n    const { tls = true } = input;\\n    const region = await input.region();\\n    const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\\n    if (!dnsHostRegex.test(region)) {\\n        throw new Error(\\\"Invalid region in client config\\\");\\n    }\\n    const useDualstackEndpoint = await input.useDualstackEndpoint();\\n    const useFipsEndpoint = await input.useFipsEndpoint();\\n    const { hostname } = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint })) ?? {};\\n    if (!hostname) {\\n        throw new Error(\\\"Cannot resolve hostname from client config\\\");\\n    }\\n    return input.urlParser(`${tls ? \\\"https:\\\" : \\\"http:\\\"}//${hostname}`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CONFIG_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.CONFIG_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"CONFIG_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.CONFIG_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"DEFAULT_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_DUALSTACK_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.ENV_USE_DUALSTACK_ENDPOINT),\\n/* harmony export */   \\\"ENV_USE_FIPS_ENDPOINT\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.ENV_USE_FIPS_ENDPOINT),\\n/* harmony export */   \\\"NODE_REGION_CONFIG_FILE_OPTIONS\\\": () => (/* reexport safe */ _regionConfig__WEBPACK_IMPORTED_MODULE_1__.NODE_REGION_CONFIG_FILE_OPTIONS),\\n/* harmony export */   \\\"NODE_REGION_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _regionConfig__WEBPACK_IMPORTED_MODULE_1__.NODE_REGION_CONFIG_OPTIONS),\\n/* harmony export */   \\\"NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"REGION_ENV_NAME\\\": () => (/* reexport safe */ _regionConfig__WEBPACK_IMPORTED_MODULE_1__.REGION_ENV_NAME),\\n/* harmony export */   \\\"REGION_INI_NAME\\\": () => (/* reexport safe */ _regionConfig__WEBPACK_IMPORTED_MODULE_1__.REGION_INI_NAME),\\n/* harmony export */   \\\"getRegionInfo\\\": () => (/* reexport safe */ _regionInfo__WEBPACK_IMPORTED_MODULE_2__.getRegionInfo),\\n/* harmony export */   \\\"resolveCustomEndpointsConfig\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.resolveCustomEndpointsConfig),\\n/* harmony export */   \\\"resolveEndpointsConfig\\\": () => (/* reexport safe */ _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__.resolveEndpointsConfig),\\n/* harmony export */   \\\"resolveRegionConfig\\\": () => (/* reexport safe */ _regionConfig__WEBPACK_IMPORTED_MODULE_1__.resolveRegionConfig)\\n/* harmony export */ });\\n/* harmony import */ var _endpointsConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./endpointsConfig */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/index.js\\\");\\n/* harmony import */ var _regionConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./regionConfig */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/index.js\\\");\\n/* harmony import */ var _regionInfo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./regionInfo */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/index.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/config.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/config.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"NODE_REGION_CONFIG_FILE_OPTIONS\\\": () => (/* binding */ NODE_REGION_CONFIG_FILE_OPTIONS),\\n/* harmony export */   \\\"NODE_REGION_CONFIG_OPTIONS\\\": () => (/* binding */ NODE_REGION_CONFIG_OPTIONS),\\n/* harmony export */   \\\"REGION_ENV_NAME\\\": () => (/* binding */ REGION_ENV_NAME),\\n/* harmony export */   \\\"REGION_INI_NAME\\\": () => (/* binding */ REGION_INI_NAME)\\n/* harmony export */ });\\nconst REGION_ENV_NAME = \\\"AWS_REGION\\\";\\nconst REGION_INI_NAME = \\\"region\\\";\\nconst NODE_REGION_CONFIG_OPTIONS = {\\n    environmentVariableSelector: (env) => env[REGION_ENV_NAME],\\n    configFileSelector: (profile) => profile[REGION_INI_NAME],\\n    default: () => {\\n        throw new Error(\\\"Region is missing\\\");\\n    },\\n};\\nconst NODE_REGION_CONFIG_FILE_OPTIONS = {\\n    preferredFile: \\\"credentials\\\",\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/config.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRealRegion\\\": () => (/* binding */ getRealRegion)\\n/* harmony export */ });\\n/* harmony import */ var _isFipsRegion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFipsRegion */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js\\\");\\n\\nconst getRealRegion = (region) => (0,_isFipsRegion__WEBPACK_IMPORTED_MODULE_0__.isFipsRegion)(region)\\n    ? [\\\"fips-aws-global\\\", \\\"aws-fips\\\"].includes(region)\\n        ? \\\"us-east-1\\\"\\n        : region.replace(/fips-(dkr-|prod-)?|-fips/, \\\"\\\")\\n    : region;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/index.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/index.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"NODE_REGION_CONFIG_FILE_OPTIONS\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.NODE_REGION_CONFIG_FILE_OPTIONS),\\n/* harmony export */   \\\"NODE_REGION_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.NODE_REGION_CONFIG_OPTIONS),\\n/* harmony export */   \\\"REGION_ENV_NAME\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.REGION_ENV_NAME),\\n/* harmony export */   \\\"REGION_INI_NAME\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.REGION_INI_NAME),\\n/* harmony export */   \\\"resolveRegionConfig\\\": () => (/* reexport safe */ _resolveRegionConfig__WEBPACK_IMPORTED_MODULE_1__.resolveRegionConfig)\\n/* harmony export */ });\\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/config.js\\\");\\n/* harmony import */ var _resolveRegionConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolveRegionConfig */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isFipsRegion\\\": () => (/* binding */ isFipsRegion)\\n/* harmony export */ });\\nconst isFipsRegion = (region) => typeof region === \\\"string\\\" && (region.startsWith(\\\"fips-\\\") || region.endsWith(\\\"-fips\\\"));\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveRegionConfig\\\": () => (/* binding */ resolveRegionConfig)\\n/* harmony export */ });\\n/* harmony import */ var _getRealRegion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getRealRegion */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js\\\");\\n/* harmony import */ var _isFipsRegion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFipsRegion */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js\\\");\\n\\n\\nconst resolveRegionConfig = (input) => {\\n    const { region, useFipsEndpoint } = input;\\n    if (!region) {\\n        throw new Error(\\\"Region is missing\\\");\\n    }\\n    return {\\n        ...input,\\n        region: async () => {\\n            if (typeof region === \\\"string\\\") {\\n                return (0,_getRealRegion__WEBPACK_IMPORTED_MODULE_0__.getRealRegion)(region);\\n            }\\n            const providedRegion = await region();\\n            return (0,_getRealRegion__WEBPACK_IMPORTED_MODULE_0__.getRealRegion)(providedRegion);\\n        },\\n        useFipsEndpoint: async () => {\\n            const providedRegion = typeof region === \\\"string\\\" ? region : await region();\\n            if ((0,_isFipsRegion__WEBPACK_IMPORTED_MODULE_1__.isFipsRegion)(providedRegion)) {\\n                return true;\\n            }\\n            return typeof useFipsEndpoint !== \\\"function\\\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\\n        },\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/PartitionHash.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/PartitionHash.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/PartitionHash.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/RegionHash.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/RegionHash.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/RegionHash.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getHostnameFromVariants\\\": () => (/* binding */ getHostnameFromVariants)\\n/* harmony export */ });\\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes(\\\"fips\\\") && useDualstackEndpoint === tags.includes(\\\"dualstack\\\"))?.hostname;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRegionInfo\\\": () => (/* binding */ getRegionInfo)\\n/* harmony export */ });\\n/* harmony import */ var _getHostnameFromVariants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getHostnameFromVariants */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js\\\");\\n/* harmony import */ var _getResolvedHostname__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getResolvedHostname */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js\\\");\\n/* harmony import */ var _getResolvedPartition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getResolvedPartition */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js\\\");\\n/* harmony import */ var _getResolvedSigningRegion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getResolvedSigningRegion */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js\\\");\\n\\n\\n\\n\\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\\n    const partition = (0,_getResolvedPartition__WEBPACK_IMPORTED_MODULE_2__.getResolvedPartition)(region, { partitionHash });\\n    const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;\\n    const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\\n    const regionHostname = (0,_getHostnameFromVariants__WEBPACK_IMPORTED_MODULE_0__.getHostnameFromVariants)(regionHash[resolvedRegion]?.variants, hostnameOptions);\\n    const partitionHostname = (0,_getHostnameFromVariants__WEBPACK_IMPORTED_MODULE_0__.getHostnameFromVariants)(partitionHash[partition]?.variants, hostnameOptions);\\n    const hostname = (0,_getResolvedHostname__WEBPACK_IMPORTED_MODULE_1__.getResolvedHostname)(resolvedRegion, { regionHostname, partitionHostname });\\n    if (hostname === undefined) {\\n        throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\\n    }\\n    const signingRegion = (0,_getResolvedSigningRegion__WEBPACK_IMPORTED_MODULE_3__.getResolvedSigningRegion)(hostname, {\\n        signingRegion: regionHash[resolvedRegion]?.signingRegion,\\n        regionRegex: partitionHash[partition].regionRegex,\\n        useFipsEndpoint,\\n    });\\n    return {\\n        partition,\\n        signingService,\\n        hostname,\\n        ...(signingRegion && { signingRegion }),\\n        ...(regionHash[resolvedRegion]?.signingService && {\\n            signingService: regionHash[resolvedRegion].signingService,\\n        }),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getResolvedHostname\\\": () => (/* binding */ getResolvedHostname)\\n/* harmony export */ });\\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\\n    ? regionHostname\\n    : partitionHostname\\n        ? partitionHostname.replace(\\\"{region}\\\", resolvedRegion)\\n        : undefined;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getResolvedPartition\\\": () => (/* binding */ getResolvedPartition)\\n/* harmony export */ });\\nconst getResolvedPartition = (region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? \\\"aws\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js ***!\n  \\**********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getResolvedSigningRegion\\\": () => (/* binding */ getResolvedSigningRegion)\\n/* harmony export */ });\\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\\n    if (signingRegion) {\\n        return signingRegion;\\n    }\\n    else if (useFipsEndpoint) {\\n        const regionRegexJs = regionRegex.replace(\\\"\\\\\\\\\\\\\\\\\\\", \\\"\\\\\\\\\\\").replace(/^\\\\^/g, \\\"\\\\\\\\.\\\").replace(/\\\\$$/g, \\\"\\\\\\\\.\\\");\\n        const regionRegexmatchArray = hostname.match(regionRegexJs);\\n        if (regionRegexmatchArray) {\\n            return regionRegexmatchArray[0].slice(1, -1);\\n        }\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/index.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/index.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRegionInfo\\\": () => (/* reexport safe */ _getRegionInfo__WEBPACK_IMPORTED_MODULE_2__.getRegionInfo)\\n/* harmony export */ });\\n/* harmony import */ var _PartitionHash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PartitionHash */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/PartitionHash.js\\\");\\n/* harmony import */ var _RegionHash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RegionHash */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/RegionHash.js\\\");\\n/* harmony import */ var _getRegionInfo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getRegionInfo */ \\\"./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"FetchHttpHandler\\\": () => (/* binding */ FetchHttpHandler)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_querystring_builder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/querystring-builder */ \\\"./node_modules/@aws-sdk/querystring-builder/dist-es/index.js\\\");\\n/* harmony import */ var _request_timeout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./request-timeout */ \\\"./node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js\\\");\\n\\n\\n\\nclass FetchHttpHandler {\\n    constructor(options) {\\n        if (typeof options === \\\"function\\\") {\\n            this.configProvider = options().then((opts) => opts || {});\\n        }\\n        else {\\n            this.config = options ?? {};\\n            this.configProvider = Promise.resolve(this.config);\\n        }\\n    }\\n    destroy() {\\n    }\\n    async handle(request, { abortSignal } = {}) {\\n        if (!this.config) {\\n            this.config = await this.configProvider;\\n        }\\n        const requestTimeoutInMs = this.config.requestTimeout;\\n        if (abortSignal?.aborted) {\\n            const abortError = new Error(\\\"Request aborted\\\");\\n            abortError.name = \\\"AbortError\\\";\\n            return Promise.reject(abortError);\\n        }\\n        let path = request.path;\\n        if (request.query) {\\n            const queryString = (0,_aws_sdk_querystring_builder__WEBPACK_IMPORTED_MODULE_1__.buildQueryString)(request.query);\\n            if (queryString) {\\n                path += `?${queryString}`;\\n            }\\n        }\\n        const { port, method } = request;\\n        const url = `${request.protocol}//${request.hostname}${port ? `:${port}` : \\\"\\\"}${path}`;\\n        const body = method === \\\"GET\\\" || method === \\\"HEAD\\\" ? undefined : request.body;\\n        const requestOptions = {\\n            body,\\n            headers: new Headers(request.headers),\\n            method: method,\\n        };\\n        if (typeof AbortController !== \\\"undefined\\\") {\\n            requestOptions[\\\"signal\\\"] = abortSignal;\\n        }\\n        const fetchRequest = new Request(url, requestOptions);\\n        const raceOfPromises = [\\n            fetch(fetchRequest).then((response) => {\\n                const fetchHeaders = response.headers;\\n                const transformedHeaders = {};\\n                for (const pair of fetchHeaders.entries()) {\\n                    transformedHeaders[pair[0]] = pair[1];\\n                }\\n                const hasReadableStream = response.body !== undefined;\\n                if (!hasReadableStream) {\\n                    return response.blob().then((body) => ({\\n                        response: new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpResponse({\\n                            headers: transformedHeaders,\\n                            statusCode: response.status,\\n                            body,\\n                        }),\\n                    }));\\n                }\\n                return {\\n                    response: new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpResponse({\\n                        headers: transformedHeaders,\\n                        statusCode: response.status,\\n                        body: response.body,\\n                    }),\\n                };\\n            }),\\n            (0,_request_timeout__WEBPACK_IMPORTED_MODULE_2__.requestTimeout)(requestTimeoutInMs),\\n        ];\\n        if (abortSignal) {\\n            raceOfPromises.push(new Promise((resolve, reject) => {\\n                abortSignal.onabort = () => {\\n                    const abortError = new Error(\\\"Request aborted\\\");\\n                    abortError.name = \\\"AbortError\\\";\\n                    reject(abortError);\\n                };\\n            }));\\n        }\\n        return Promise.race(raceOfPromises);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/fetch-http-handler/dist-es/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/fetch-http-handler/dist-es/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"FetchHttpHandler\\\": () => (/* reexport safe */ _fetch_http_handler__WEBPACK_IMPORTED_MODULE_0__.FetchHttpHandler),\\n/* harmony export */   \\\"streamCollector\\\": () => (/* reexport safe */ _stream_collector__WEBPACK_IMPORTED_MODULE_1__.streamCollector)\\n/* harmony export */ });\\n/* harmony import */ var _fetch_http_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fetch-http-handler */ \\\"./node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js\\\");\\n/* harmony import */ var _stream_collector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stream-collector */ \\\"./node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/fetch-http-handler/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"requestTimeout\\\": () => (/* binding */ requestTimeout)\\n/* harmony export */ });\\nfunction requestTimeout(timeoutInMs = 0) {\\n    return new Promise((resolve, reject) => {\\n        if (timeoutInMs) {\\n            setTimeout(() => {\\n                const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\\n                timeoutError.name = \\\"TimeoutError\\\";\\n                reject(timeoutError);\\n            }, timeoutInMs);\\n        }\\n    });\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"streamCollector\\\": () => (/* binding */ streamCollector)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-base64 */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/index.js\\\");\\n\\nconst streamCollector = (stream) => {\\n    if (typeof Blob === \\\"function\\\" && stream instanceof Blob) {\\n        return collectBlob(stream);\\n    }\\n    return collectStream(stream);\\n};\\nasync function collectBlob(blob) {\\n    const base64 = await readToBase64(blob);\\n    const arrayBuffer = (0,_aws_sdk_util_base64__WEBPACK_IMPORTED_MODULE_0__.fromBase64)(base64);\\n    return new Uint8Array(arrayBuffer);\\n}\\nasync function collectStream(stream) {\\n    let res = new Uint8Array(0);\\n    const reader = stream.getReader();\\n    let isDone = false;\\n    while (!isDone) {\\n        const { done, value } = await reader.read();\\n        if (value) {\\n            const prior = res;\\n            res = new Uint8Array(prior.length + value.length);\\n            res.set(prior);\\n            res.set(value, prior.length);\\n        }\\n        isDone = done;\\n    }\\n    return res;\\n}\\nfunction readToBase64(blob) {\\n    return new Promise((resolve, reject) => {\\n        const reader = new FileReader();\\n        reader.onloadend = () => {\\n            if (reader.readyState !== 2) {\\n                return reject(new Error(\\\"Reader aborted too early\\\"));\\n            }\\n            const result = (reader.result ?? \\\"\\\");\\n            const commaIndex = result.indexOf(\\\",\\\");\\n            const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\\n            resolve(result.substring(dataOffset));\\n        };\\n        reader.onabort = () => reject(new Error(\\\"Read aborted\\\"));\\n        reader.onerror = () => reject(reader.error);\\n        reader.readAsDataURL(blob);\\n    });\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/invalid-dependency/dist-es/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/invalid-dependency/dist-es/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"invalidFunction\\\": () => (/* reexport safe */ _invalidFunction__WEBPACK_IMPORTED_MODULE_0__.invalidFunction),\\n/* harmony export */   \\\"invalidProvider\\\": () => (/* reexport safe */ _invalidProvider__WEBPACK_IMPORTED_MODULE_1__.invalidProvider)\\n/* harmony export */ });\\n/* harmony import */ var _invalidFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invalidFunction */ \\\"./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidFunction.js\\\");\\n/* harmony import */ var _invalidProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./invalidProvider */ \\\"./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/invalid-dependency/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidFunction.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidFunction.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"invalidFunction\\\": () => (/* binding */ invalidFunction)\\n/* harmony export */ });\\nconst invalidFunction = (message) => () => {\\n    throw new Error(message);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidFunction.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"invalidProvider\\\": () => (/* binding */ invalidProvider)\\n/* harmony export */ });\\nconst invalidProvider = (message) => () => Promise.reject(message);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/is-array-buffer/dist-es/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/is-array-buffer/dist-es/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isArrayBuffer\\\": () => (/* binding */ isArrayBuffer)\\n/* harmony export */ });\\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \\\"function\\\" && arg instanceof ArrayBuffer) ||\\n    Object.prototype.toString.call(arg) === \\\"[object ArrayBuffer]\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/is-array-buffer/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-content-length/dist-es/index.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-content-length/dist-es/index.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"contentLengthMiddleware\\\": () => (/* binding */ contentLengthMiddleware),\\n/* harmony export */   \\\"contentLengthMiddlewareOptions\\\": () => (/* binding */ contentLengthMiddlewareOptions),\\n/* harmony export */   \\\"getContentLengthPlugin\\\": () => (/* binding */ getContentLengthPlugin)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n\\nconst CONTENT_LENGTH_HEADER = \\\"content-length\\\";\\nfunction contentLengthMiddleware(bodyLengthChecker) {\\n    return (next) => async (args) => {\\n        const request = args.request;\\n        if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n            const { body, headers } = request;\\n            if (body &&\\n                Object.keys(headers)\\n                    .map((str) => str.toLowerCase())\\n                    .indexOf(CONTENT_LENGTH_HEADER) === -1) {\\n                try {\\n                    const length = bodyLengthChecker(body);\\n                    request.headers = {\\n                        ...request.headers,\\n                        [CONTENT_LENGTH_HEADER]: String(length),\\n                    };\\n                }\\n                catch (error) {\\n                }\\n            }\\n        }\\n        return next({\\n            ...args,\\n            request,\\n        });\\n    };\\n}\\nconst contentLengthMiddlewareOptions = {\\n    step: \\\"build\\\",\\n    tags: [\\\"SET_CONTENT_LENGTH\\\", \\\"CONTENT_LENGTH\\\"],\\n    name: \\\"contentLengthMiddleware\\\",\\n    override: true,\\n};\\nconst getContentLengthPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-content-length/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"createConfigValueProvider\\\": () => (/* binding */ createConfigValueProvider)\\n/* harmony export */ });\\nconst createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\\n    const configProvider = async () => {\\n        const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\\n        if (typeof configValue === \\\"function\\\") {\\n            return configValue();\\n        }\\n        return configValue;\\n    };\\n    if (configKey === \\\"endpoint\\\" || canonicalEndpointParamKey === \\\"endpoint\\\") {\\n        return async () => {\\n            const endpoint = await configProvider();\\n            if (endpoint && typeof endpoint === \\\"object\\\") {\\n                if (\\\"url\\\" in endpoint) {\\n                    return endpoint.url.href;\\n                }\\n                if (\\\"hostname\\\" in endpoint) {\\n                    const { protocol, hostname, port, path } = endpoint;\\n                    return `${protocol}//${hostname}${port ? \\\":\\\" + port : \\\"\\\"}${path}`;\\n                }\\n            }\\n            return endpoint;\\n        };\\n    }\\n    return configProvider;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointFromInstructions\\\": () => (/* binding */ getEndpointFromInstructions),\\n/* harmony export */   \\\"resolveParams\\\": () => (/* binding */ resolveParams)\\n/* harmony export */ });\\n/* harmony import */ var _service_customizations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service-customizations */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js\\\");\\n/* harmony import */ var _createConfigValueProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createConfigValueProvider */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js\\\");\\n\\n\\nconst getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\\n    const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\\n    if (typeof clientConfig.endpointProvider !== \\\"function\\\") {\\n        throw new Error(\\\"config.endpointProvider is not set.\\\");\\n    }\\n    const endpoint = clientConfig.endpointProvider(endpointParams, context);\\n    return endpoint;\\n};\\nconst resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\\n    const endpointParams = {};\\n    const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\\n    for (const [name, instruction] of Object.entries(instructions)) {\\n        switch (instruction.type) {\\n            case \\\"staticContextParams\\\":\\n                endpointParams[name] = instruction.value;\\n                break;\\n            case \\\"contextParams\\\":\\n                endpointParams[name] = commandInput[instruction.name];\\n                break;\\n            case \\\"clientContextParams\\\":\\n            case \\\"builtInParams\\\":\\n                endpointParams[name] = await (0,_createConfigValueProvider__WEBPACK_IMPORTED_MODULE_1__.createConfigValueProvider)(instruction.name, name, clientConfig)();\\n                break;\\n            default:\\n                throw new Error(\\\"Unrecognized endpoint parameter instruction: \\\" + JSON.stringify(instruction));\\n        }\\n    }\\n    if (Object.keys(instructions).length === 0) {\\n        Object.assign(endpointParams, clientConfig);\\n    }\\n    if (String(clientConfig.serviceId).toLowerCase() === \\\"s3\\\") {\\n        await (0,_service_customizations__WEBPACK_IMPORTED_MODULE_0__.resolveParamsForS3)(endpointParams);\\n    }\\n    return endpointParams;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointFromInstructions\\\": () => (/* reexport safe */ _getEndpointFromInstructions__WEBPACK_IMPORTED_MODULE_0__.getEndpointFromInstructions),\\n/* harmony export */   \\\"resolveParams\\\": () => (/* reexport safe */ _getEndpointFromInstructions__WEBPACK_IMPORTED_MODULE_0__.resolveParams),\\n/* harmony export */   \\\"toEndpointV1\\\": () => (/* reexport safe */ _toEndpointV1__WEBPACK_IMPORTED_MODULE_1__.toEndpointV1)\\n/* harmony export */ });\\n/* harmony import */ var _getEndpointFromInstructions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getEndpointFromInstructions */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js\\\");\\n/* harmony import */ var _toEndpointV1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toEndpointV1 */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"toEndpointV1\\\": () => (/* binding */ toEndpointV1)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_url_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/url-parser */ \\\"./node_modules/@aws-sdk/url-parser/dist-es/index.js\\\");\\n\\nconst toEndpointV1 = (endpoint) => {\\n    if (typeof endpoint === \\\"object\\\") {\\n        if (\\\"url\\\" in endpoint) {\\n            return (0,_aws_sdk_url_parser__WEBPACK_IMPORTED_MODULE_0__.parseUrl)(endpoint.url);\\n        }\\n        return endpoint;\\n    }\\n    return (0,_aws_sdk_url_parser__WEBPACK_IMPORTED_MODULE_0__.parseUrl)(endpoint);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"endpointMiddleware\\\": () => (/* binding */ endpointMiddleware)\\n/* harmony export */ });\\n/* harmony import */ var _adaptors_getEndpointFromInstructions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adaptors/getEndpointFromInstructions */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js\\\");\\n\\nconst endpointMiddleware = ({ config, instructions, }) => {\\n    return (next, context) => async (args) => {\\n        const endpoint = await (0,_adaptors_getEndpointFromInstructions__WEBPACK_IMPORTED_MODULE_0__.getEndpointFromInstructions)(args.input, {\\n            getEndpointParameterInstructions() {\\n                return instructions;\\n            },\\n        }, { ...config }, context);\\n        context.endpointV2 = endpoint;\\n        context.authSchemes = endpoint.properties?.authSchemes;\\n        const authScheme = context.authSchemes?.[0];\\n        if (authScheme) {\\n            context[\\\"signing_region\\\"] = authScheme.signingRegion;\\n            context[\\\"signing_service\\\"] = authScheme.signingName;\\n        }\\n        return next({\\n            ...args,\\n        });\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"endpointMiddlewareOptions\\\": () => (/* binding */ endpointMiddlewareOptions),\\n/* harmony export */   \\\"getEndpointPlugin\\\": () => (/* binding */ getEndpointPlugin)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\\\");\\n/* harmony import */ var _endpointMiddleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./endpointMiddleware */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js\\\");\\n\\n\\nconst endpointMiddlewareOptions = {\\n    step: \\\"serialize\\\",\\n    tags: [\\\"ENDPOINT_PARAMETERS\\\", \\\"ENDPOINT_V2\\\", \\\"ENDPOINT\\\"],\\n    name: \\\"endpointV2Middleware\\\",\\n    override: true,\\n    relation: \\\"before\\\",\\n    toMiddleware: _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_0__.serializerMiddlewareOption.name,\\n};\\nconst getEndpointPlugin = (config, instructions) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.addRelativeTo((0,_endpointMiddleware__WEBPACK_IMPORTED_MODULE_1__.endpointMiddleware)({\\n            config,\\n            instructions,\\n        }), endpointMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"endpointMiddleware\\\": () => (/* reexport safe */ _endpointMiddleware__WEBPACK_IMPORTED_MODULE_1__.endpointMiddleware),\\n/* harmony export */   \\\"endpointMiddlewareOptions\\\": () => (/* reexport safe */ _getEndpointPlugin__WEBPACK_IMPORTED_MODULE_2__.endpointMiddlewareOptions),\\n/* harmony export */   \\\"getEndpointFromInstructions\\\": () => (/* reexport safe */ _adaptors__WEBPACK_IMPORTED_MODULE_0__.getEndpointFromInstructions),\\n/* harmony export */   \\\"getEndpointPlugin\\\": () => (/* reexport safe */ _getEndpointPlugin__WEBPACK_IMPORTED_MODULE_2__.getEndpointPlugin),\\n/* harmony export */   \\\"resolveEndpointConfig\\\": () => (/* reexport safe */ _resolveEndpointConfig__WEBPACK_IMPORTED_MODULE_3__.resolveEndpointConfig),\\n/* harmony export */   \\\"resolveParams\\\": () => (/* reexport safe */ _adaptors__WEBPACK_IMPORTED_MODULE_0__.resolveParams),\\n/* harmony export */   \\\"toEndpointV1\\\": () => (/* reexport safe */ _adaptors__WEBPACK_IMPORTED_MODULE_0__.toEndpointV1)\\n/* harmony export */ });\\n/* harmony import */ var _adaptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adaptors */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/index.js\\\");\\n/* harmony import */ var _endpointMiddleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./endpointMiddleware */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/endpointMiddleware.js\\\");\\n/* harmony import */ var _getEndpointPlugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getEndpointPlugin */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/getEndpointPlugin.js\\\");\\n/* harmony import */ var _resolveEndpointConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resolveEndpointConfig */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js\\\");\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveEndpointConfig\\\": () => (/* binding */ resolveEndpointConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n/* harmony import */ var _adaptors_toEndpointV1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adaptors/toEndpointV1 */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/adaptors/toEndpointV1.js\\\");\\n\\n\\nconst resolveEndpointConfig = (input) => {\\n    const tls = input.tls ?? true;\\n    const { endpoint } = input;\\n    const customEndpointProvider = endpoint != null ? async () => (0,_adaptors_toEndpointV1__WEBPACK_IMPORTED_MODULE_1__.toEndpointV1)(await (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(endpoint)()) : undefined;\\n    const isCustomEndpoint = !!endpoint;\\n    return {\\n        ...input,\\n        endpoint: customEndpointProvider,\\n        tls,\\n        isCustomEndpoint,\\n        useDualstackEndpoint: (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.useDualstackEndpoint ?? false),\\n        useFipsEndpoint: (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.useFipsEndpoint ?? false),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/resolveEndpointConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DOT_PATTERN\\\": () => (/* reexport safe */ _s3__WEBPACK_IMPORTED_MODULE_0__.DOT_PATTERN),\\n/* harmony export */   \\\"S3_HOSTNAME_PATTERN\\\": () => (/* reexport safe */ _s3__WEBPACK_IMPORTED_MODULE_0__.S3_HOSTNAME_PATTERN),\\n/* harmony export */   \\\"isArnBucketName\\\": () => (/* reexport safe */ _s3__WEBPACK_IMPORTED_MODULE_0__.isArnBucketName),\\n/* harmony export */   \\\"isDnsCompatibleBucketName\\\": () => (/* reexport safe */ _s3__WEBPACK_IMPORTED_MODULE_0__.isDnsCompatibleBucketName),\\n/* harmony export */   \\\"resolveParamsForS3\\\": () => (/* reexport safe */ _s3__WEBPACK_IMPORTED_MODULE_0__.resolveParamsForS3)\\n/* harmony export */ });\\n/* harmony import */ var _s3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./s3 */ \\\"./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js ***!\n  \\****************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DOT_PATTERN\\\": () => (/* binding */ DOT_PATTERN),\\n/* harmony export */   \\\"S3_HOSTNAME_PATTERN\\\": () => (/* binding */ S3_HOSTNAME_PATTERN),\\n/* harmony export */   \\\"isArnBucketName\\\": () => (/* binding */ isArnBucketName),\\n/* harmony export */   \\\"isDnsCompatibleBucketName\\\": () => (/* binding */ isDnsCompatibleBucketName),\\n/* harmony export */   \\\"resolveParamsForS3\\\": () => (/* binding */ resolveParamsForS3)\\n/* harmony export */ });\\nconst resolveParamsForS3 = async (endpointParams) => {\\n    const bucket = endpointParams?.Bucket || \\\"\\\";\\n    if (typeof endpointParams.Bucket === \\\"string\\\") {\\n        endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\\\"#\\\")).replace(/\\\\?/g, encodeURIComponent(\\\"?\\\"));\\n    }\\n    if (isArnBucketName(bucket)) {\\n        if (endpointParams.ForcePathStyle === true) {\\n            throw new Error(\\\"Path-style addressing cannot be used with ARN buckets\\\");\\n        }\\n    }\\n    else if (!isDnsCompatibleBucketName(bucket) ||\\n        (bucket.indexOf(\\\".\\\") !== -1 && !String(endpointParams.Endpoint).startsWith(\\\"http:\\\")) ||\\n        bucket.toLowerCase() !== bucket ||\\n        bucket.length < 3) {\\n        endpointParams.ForcePathStyle = true;\\n    }\\n    if (endpointParams.DisableMultiRegionAccessPoints) {\\n        endpointParams.disableMultiRegionAccessPoints = true;\\n        endpointParams.DisableMRAP = true;\\n    }\\n    return endpointParams;\\n};\\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\\\.\\\\-]{1,61}[a-z0-9]$/;\\nconst IP_ADDRESS_PATTERN = /(\\\\d+\\\\.){3}\\\\d+/;\\nconst DOTS_PATTERN = /\\\\.\\\\./;\\nconst DOT_PATTERN = /\\\\./;\\nconst S3_HOSTNAME_PATTERN = /^(.+\\\\.)?s3(-fips)?(\\\\.dualstack)?[.-]([a-z0-9-]+)\\\\./;\\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\\nconst isArnBucketName = (bucketName) => {\\n    const [arn, partition, service, region, account, typeOrId] = bucketName.split(\\\":\\\");\\n    const isArn = arn === \\\"arn\\\" && bucketName.split(\\\":\\\").length >= 6;\\n    const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\\n    if (isArn && !isValidArn) {\\n        throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\\n    }\\n    return arn === \\\"arn\\\" && !!partition && !!service && !!account && !!typeOrId;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/service-customizations/s3.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-endpoint/dist-es/types.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getHostHeaderPlugin\\\": () => (/* binding */ getHostHeaderPlugin),\\n/* harmony export */   \\\"hostHeaderMiddleware\\\": () => (/* binding */ hostHeaderMiddleware),\\n/* harmony export */   \\\"hostHeaderMiddlewareOptions\\\": () => (/* binding */ hostHeaderMiddlewareOptions),\\n/* harmony export */   \\\"resolveHostHeaderConfig\\\": () => (/* binding */ resolveHostHeaderConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n\\nfunction resolveHostHeaderConfig(input) {\\n    return input;\\n}\\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(args.request))\\n        return next(args);\\n    const { request } = args;\\n    const { handlerProtocol = \\\"\\\" } = options.requestHandler.metadata || {};\\n    if (handlerProtocol.indexOf(\\\"h2\\\") >= 0 && !request.headers[\\\":authority\\\"]) {\\n        delete request.headers[\\\"host\\\"];\\n        request.headers[\\\":authority\\\"] = \\\"\\\";\\n    }\\n    else if (!request.headers[\\\"host\\\"]) {\\n        request.headers[\\\"host\\\"] = request.hostname;\\n    }\\n    return next(args);\\n};\\nconst hostHeaderMiddlewareOptions = {\\n    name: \\\"hostHeaderMiddleware\\\",\\n    step: \\\"build\\\",\\n    priority: \\\"low\\\",\\n    tags: [\\\"HOST\\\"],\\n    override: true,\\n};\\nconst getHostHeaderPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-logger/dist-es/index.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-logger/dist-es/index.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getLoggerPlugin\\\": () => (/* reexport safe */ _loggerMiddleware__WEBPACK_IMPORTED_MODULE_0__.getLoggerPlugin),\\n/* harmony export */   \\\"loggerMiddleware\\\": () => (/* reexport safe */ _loggerMiddleware__WEBPACK_IMPORTED_MODULE_0__.loggerMiddleware),\\n/* harmony export */   \\\"loggerMiddlewareOptions\\\": () => (/* reexport safe */ _loggerMiddleware__WEBPACK_IMPORTED_MODULE_0__.loggerMiddlewareOptions)\\n/* harmony export */ });\\n/* harmony import */ var _loggerMiddleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loggerMiddleware */ \\\"./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-logger/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getLoggerPlugin\\\": () => (/* binding */ getLoggerPlugin),\\n/* harmony export */   \\\"loggerMiddleware\\\": () => (/* binding */ loggerMiddleware),\\n/* harmony export */   \\\"loggerMiddlewareOptions\\\": () => (/* binding */ loggerMiddlewareOptions)\\n/* harmony export */ });\\nconst loggerMiddleware = () => (next, context) => async (args) => {\\n    const response = await next(args);\\n    const { clientName, commandName, logger, inputFilterSensitiveLog, outputFilterSensitiveLog, dynamoDbDocumentClientOptions = {}, } = context;\\n    const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\\n    if (!logger) {\\n        return response;\\n    }\\n    if (typeof logger.info === \\\"function\\\") {\\n        const { $metadata, ...outputWithoutMetadata } = response.output;\\n        logger.info({\\n            clientName,\\n            commandName,\\n            input: (overrideInputFilterSensitiveLog ?? inputFilterSensitiveLog)(args.input),\\n            output: (overrideOutputFilterSensitiveLog ?? outputFilterSensitiveLog)(outputWithoutMetadata),\\n            metadata: $metadata,\\n        });\\n    }\\n    return response;\\n};\\nconst loggerMiddlewareOptions = {\\n    name: \\\"loggerMiddleware\\\",\\n    tags: [\\\"LOGGER\\\"],\\n    step: \\\"initialize\\\",\\n    override: true,\\n};\\nconst getLoggerPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"addRecursionDetectionMiddlewareOptions\\\": () => (/* binding */ addRecursionDetectionMiddlewareOptions),\\n/* harmony export */   \\\"getRecursionDetectionPlugin\\\": () => (/* binding */ getRecursionDetectionPlugin),\\n/* harmony export */   \\\"recursionDetectionMiddleware\\\": () => (/* binding */ recursionDetectionMiddleware)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./node_modules/process/browser.js\\\");\\n\\nconst TRACE_ID_HEADER_NAME = \\\"X-Amzn-Trace-Id\\\";\\nconst ENV_LAMBDA_FUNCTION_NAME = \\\"AWS_LAMBDA_FUNCTION_NAME\\\";\\nconst ENV_TRACE_ID = \\\"_X_AMZN_TRACE_ID\\\";\\nconst recursionDetectionMiddleware = (options) => (next) => async (args) => {\\n    const { request } = args;\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request) ||\\n        options.runtime !== \\\"node\\\" ||\\n        request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\\n        return next(args);\\n    }\\n    const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\\n    const traceId = process.env[ENV_TRACE_ID];\\n    const nonEmptyString = (str) => typeof str === \\\"string\\\" && str.length > 0;\\n    if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\\n        request.headers[TRACE_ID_HEADER_NAME] = traceId;\\n    }\\n    return next({\\n        ...args,\\n        request,\\n    });\\n};\\nconst addRecursionDetectionMiddlewareOptions = {\\n    step: \\\"build\\\",\\n    tags: [\\\"RECURSION_DETECTION\\\"],\\n    name: \\\"recursionDetectionMiddleware\\\",\\n    override: true,\\n    priority: \\\"low\\\",\\n};\\nconst getRecursionDetectionPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AdaptiveRetryStrategy\\\": () => (/* binding */ AdaptiveRetryStrategy)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n/* harmony import */ var _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StandardRetryStrategy */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js\\\");\\n\\n\\nclass AdaptiveRetryStrategy extends _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_1__.StandardRetryStrategy {\\n    constructor(maxAttemptsProvider, options) {\\n        const { rateLimiter, ...superOptions } = options ?? {};\\n        super(maxAttemptsProvider, superOptions);\\n        this.rateLimiter = rateLimiter ?? new _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.DefaultRateLimiter();\\n        this.mode = _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.RETRY_MODES.ADAPTIVE;\\n    }\\n    async retry(next, args) {\\n        return super.retry(next, args, {\\n            beforeRequest: async () => {\\n                return this.rateLimiter.getSendToken();\\n            },\\n            afterRequest: (response) => {\\n                this.rateLimiter.updateClientSendingRate(response);\\n            },\\n        });\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"StandardRetryStrategy\\\": () => (/* binding */ StandardRetryStrategy)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/service-error-classification */ \\\"./node_modules/@aws-sdk/service-error-classification/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! uuid */ \\\"./node_modules/uuid/dist/esm-browser/v4.js\\\");\\n/* harmony import */ var _defaultRetryQuota__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultRetryQuota */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js\\\");\\n/* harmony import */ var _delayDecider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./delayDecider */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js\\\");\\n/* harmony import */ var _retryDecider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./retryDecider */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/util.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\nclass StandardRetryStrategy {\\n    constructor(maxAttemptsProvider, options) {\\n        this.maxAttemptsProvider = maxAttemptsProvider;\\n        this.mode = _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.RETRY_MODES.STANDARD;\\n        this.retryDecider = options?.retryDecider ?? _retryDecider__WEBPACK_IMPORTED_MODULE_5__.defaultRetryDecider;\\n        this.delayDecider = options?.delayDecider ?? _delayDecider__WEBPACK_IMPORTED_MODULE_4__.defaultDelayDecider;\\n        this.retryQuota = options?.retryQuota ?? (0,_defaultRetryQuota__WEBPACK_IMPORTED_MODULE_3__.getDefaultRetryQuota)(_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.INITIAL_RETRY_TOKENS);\\n    }\\n    shouldRetry(error, attempts, maxAttempts) {\\n        return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\\n    }\\n    async getMaxAttempts() {\\n        let maxAttempts;\\n        try {\\n            maxAttempts = await this.maxAttemptsProvider();\\n        }\\n        catch (error) {\\n            maxAttempts = _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_MAX_ATTEMPTS;\\n        }\\n        return maxAttempts;\\n    }\\n    async retry(next, args, options) {\\n        let retryTokenAmount;\\n        let attempts = 0;\\n        let totalDelay = 0;\\n        const maxAttempts = await this.getMaxAttempts();\\n        const { request } = args;\\n        if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n            request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.INVOCATION_ID_HEADER] = (0,uuid__WEBPACK_IMPORTED_MODULE_7__[\\\"default\\\"])();\\n        }\\n        while (true) {\\n            try {\\n                if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n                    request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\\n                }\\n                if (options?.beforeRequest) {\\n                    await options.beforeRequest();\\n                }\\n                const { response, output } = await next(args);\\n                if (options?.afterRequest) {\\n                    options.afterRequest(response);\\n                }\\n                this.retryQuota.releaseRetryTokens(retryTokenAmount);\\n                output.$metadata.attempts = attempts + 1;\\n                output.$metadata.totalRetryDelay = totalDelay;\\n                return { response, output };\\n            }\\n            catch (e) {\\n                const err = (0,_util__WEBPACK_IMPORTED_MODULE_6__.asSdkError)(e);\\n                attempts++;\\n                if (this.shouldRetry(err, attempts, maxAttempts)) {\\n                    retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\\n                    const delayFromDecider = this.delayDecider((0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__.isThrottlingError)(err) ? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.THROTTLING_RETRY_DELAY_BASE : _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_RETRY_DELAY_BASE, attempts);\\n                    const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\\n                    const delay = Math.max(delayFromResponse || 0, delayFromDecider);\\n                    totalDelay += delay;\\n                    await new Promise((resolve) => setTimeout(resolve, delay));\\n                    continue;\\n                }\\n                if (!err.$metadata) {\\n                    err.$metadata = {};\\n                }\\n                err.$metadata.attempts = attempts;\\n                err.$metadata.totalRetryDelay = totalDelay;\\n                throw err;\\n            }\\n        }\\n    }\\n}\\nconst getDelayFromRetryAfterHeader = (response) => {\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpResponse.isInstance(response))\\n        return;\\n    const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \\\"retry-after\\\");\\n    if (!retryAfterHeaderName)\\n        return;\\n    const retryAfter = response.headers[retryAfterHeaderName];\\n    const retryAfterSeconds = Number(retryAfter);\\n    if (!Number.isNaN(retryAfterSeconds))\\n        return retryAfterSeconds * 1000;\\n    const retryAfterDate = new Date(retryAfter);\\n    return retryAfterDate.getTime() - Date.now();\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CONFIG_MAX_ATTEMPTS\\\": () => (/* binding */ CONFIG_MAX_ATTEMPTS),\\n/* harmony export */   \\\"CONFIG_RETRY_MODE\\\": () => (/* binding */ CONFIG_RETRY_MODE),\\n/* harmony export */   \\\"ENV_MAX_ATTEMPTS\\\": () => (/* binding */ ENV_MAX_ATTEMPTS),\\n/* harmony export */   \\\"ENV_RETRY_MODE\\\": () => (/* binding */ ENV_RETRY_MODE),\\n/* harmony export */   \\\"NODE_MAX_ATTEMPT_CONFIG_OPTIONS\\\": () => (/* binding */ NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"NODE_RETRY_MODE_CONFIG_OPTIONS\\\": () => (/* binding */ NODE_RETRY_MODE_CONFIG_OPTIONS),\\n/* harmony export */   \\\"resolveRetryConfig\\\": () => (/* binding */ resolveRetryConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n\\n\\nconst ENV_MAX_ATTEMPTS = \\\"AWS_MAX_ATTEMPTS\\\";\\nconst CONFIG_MAX_ATTEMPTS = \\\"max_attempts\\\";\\nconst NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\\n    environmentVariableSelector: (env) => {\\n        const value = env[ENV_MAX_ATTEMPTS];\\n        if (!value)\\n            return undefined;\\n        const maxAttempt = parseInt(value);\\n        if (Number.isNaN(maxAttempt)) {\\n            throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \\\"${value}\\\"`);\\n        }\\n        return maxAttempt;\\n    },\\n    configFileSelector: (profile) => {\\n        const value = profile[CONFIG_MAX_ATTEMPTS];\\n        if (!value)\\n            return undefined;\\n        const maxAttempt = parseInt(value);\\n        if (Number.isNaN(maxAttempt)) {\\n            throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \\\"${value}\\\"`);\\n        }\\n        return maxAttempt;\\n    },\\n    default: _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MAX_ATTEMPTS,\\n};\\nconst resolveRetryConfig = (input) => {\\n    const { retryStrategy } = input;\\n    const maxAttempts = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.maxAttempts ?? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MAX_ATTEMPTS);\\n    return {\\n        ...input,\\n        maxAttempts,\\n        retryStrategy: async () => {\\n            if (retryStrategy) {\\n                return retryStrategy;\\n            }\\n            const retryMode = await (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)(input.retryMode)();\\n            if (retryMode === _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.RETRY_MODES.ADAPTIVE) {\\n                return new _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.AdaptiveRetryStrategy(maxAttempts);\\n            }\\n            return new _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.StandardRetryStrategy(maxAttempts);\\n        },\\n    };\\n};\\nconst ENV_RETRY_MODE = \\\"AWS_RETRY_MODE\\\";\\nconst CONFIG_RETRY_MODE = \\\"retry_mode\\\";\\nconst NODE_RETRY_MODE_CONFIG_OPTIONS = {\\n    environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\\n    configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\\n    default: _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_RETRY_MODE,\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getDefaultRetryQuota\\\": () => (/* binding */ getDefaultRetryQuota)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n\\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\\n    const MAX_CAPACITY = initialRetryTokens;\\n    const noRetryIncrement = options?.noRetryIncrement ?? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.NO_RETRY_INCREMENT;\\n    const retryCost = options?.retryCost ?? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.RETRY_COST;\\n    const timeoutRetryCost = options?.timeoutRetryCost ?? _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.TIMEOUT_RETRY_COST;\\n    let availableCapacity = initialRetryTokens;\\n    const getCapacityAmount = (error) => (error.name === \\\"TimeoutError\\\" ? timeoutRetryCost : retryCost);\\n    const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\\n    const retrieveRetryTokens = (error) => {\\n        if (!hasRetryTokens(error)) {\\n            throw new Error(\\\"No retry token available\\\");\\n        }\\n        const capacityAmount = getCapacityAmount(error);\\n        availableCapacity -= capacityAmount;\\n        return capacityAmount;\\n    };\\n    const releaseRetryTokens = (capacityReleaseAmount) => {\\n        availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\\n        availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\\n    };\\n    return Object.freeze({\\n        hasRetryTokens,\\n        retrieveRetryTokens,\\n        releaseRetryTokens,\\n    });\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"defaultDelayDecider\\\": () => (/* binding */ defaultDelayDecider)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n\\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_0__.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/index.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/index.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AdaptiveRetryStrategy\\\": () => (/* reexport safe */ _AdaptiveRetryStrategy__WEBPACK_IMPORTED_MODULE_0__.AdaptiveRetryStrategy),\\n/* harmony export */   \\\"CONFIG_MAX_ATTEMPTS\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.CONFIG_MAX_ATTEMPTS),\\n/* harmony export */   \\\"CONFIG_RETRY_MODE\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.CONFIG_RETRY_MODE),\\n/* harmony export */   \\\"ENV_MAX_ATTEMPTS\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.ENV_MAX_ATTEMPTS),\\n/* harmony export */   \\\"ENV_RETRY_MODE\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.ENV_RETRY_MODE),\\n/* harmony export */   \\\"NODE_MAX_ATTEMPT_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\\n/* harmony export */   \\\"NODE_RETRY_MODE_CONFIG_OPTIONS\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.NODE_RETRY_MODE_CONFIG_OPTIONS),\\n/* harmony export */   \\\"StandardRetryStrategy\\\": () => (/* reexport safe */ _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_1__.StandardRetryStrategy),\\n/* harmony export */   \\\"defaultDelayDecider\\\": () => (/* reexport safe */ _delayDecider__WEBPACK_IMPORTED_MODULE_3__.defaultDelayDecider),\\n/* harmony export */   \\\"defaultRetryDecider\\\": () => (/* reexport safe */ _retryDecider__WEBPACK_IMPORTED_MODULE_5__.defaultRetryDecider),\\n/* harmony export */   \\\"getOmitRetryHeadersPlugin\\\": () => (/* reexport safe */ _omitRetryHeadersMiddleware__WEBPACK_IMPORTED_MODULE_4__.getOmitRetryHeadersPlugin),\\n/* harmony export */   \\\"getRetryAfterHint\\\": () => (/* reexport safe */ _retryMiddleware__WEBPACK_IMPORTED_MODULE_6__.getRetryAfterHint),\\n/* harmony export */   \\\"getRetryPlugin\\\": () => (/* reexport safe */ _retryMiddleware__WEBPACK_IMPORTED_MODULE_6__.getRetryPlugin),\\n/* harmony export */   \\\"omitRetryHeadersMiddleware\\\": () => (/* reexport safe */ _omitRetryHeadersMiddleware__WEBPACK_IMPORTED_MODULE_4__.omitRetryHeadersMiddleware),\\n/* harmony export */   \\\"omitRetryHeadersMiddlewareOptions\\\": () => (/* reexport safe */ _omitRetryHeadersMiddleware__WEBPACK_IMPORTED_MODULE_4__.omitRetryHeadersMiddlewareOptions),\\n/* harmony export */   \\\"resolveRetryConfig\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_2__.resolveRetryConfig),\\n/* harmony export */   \\\"retryMiddleware\\\": () => (/* reexport safe */ _retryMiddleware__WEBPACK_IMPORTED_MODULE_6__.retryMiddleware),\\n/* harmony export */   \\\"retryMiddlewareOptions\\\": () => (/* reexport safe */ _retryMiddleware__WEBPACK_IMPORTED_MODULE_6__.retryMiddlewareOptions)\\n/* harmony export */ });\\n/* harmony import */ var _AdaptiveRetryStrategy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdaptiveRetryStrategy */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js\\\");\\n/* harmony import */ var _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StandardRetryStrategy */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js\\\");\\n/* harmony import */ var _configurations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./configurations */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js\\\");\\n/* harmony import */ var _delayDecider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delayDecider */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js\\\");\\n/* harmony import */ var _omitRetryHeadersMiddleware__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./omitRetryHeadersMiddleware */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/omitRetryHeadersMiddleware.js\\\");\\n/* harmony import */ var _retryDecider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./retryDecider */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js\\\");\\n/* harmony import */ var _retryMiddleware__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./retryMiddleware */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/omitRetryHeadersMiddleware.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/omitRetryHeadersMiddleware.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getOmitRetryHeadersPlugin\\\": () => (/* binding */ getOmitRetryHeadersPlugin),\\n/* harmony export */   \\\"omitRetryHeadersMiddleware\\\": () => (/* binding */ omitRetryHeadersMiddleware),\\n/* harmony export */   \\\"omitRetryHeadersMiddlewareOptions\\\": () => (/* binding */ omitRetryHeadersMiddlewareOptions)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n\\n\\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\\n    const { request } = args;\\n    if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n        delete request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.INVOCATION_ID_HEADER];\\n        delete request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_1__.REQUEST_HEADER];\\n    }\\n    return next(args);\\n};\\nconst omitRetryHeadersMiddlewareOptions = {\\n    name: \\\"omitRetryHeadersMiddleware\\\",\\n    tags: [\\\"RETRY\\\", \\\"HEADERS\\\", \\\"OMIT_RETRY_HEADERS\\\"],\\n    relation: \\\"before\\\",\\n    toMiddleware: \\\"awsAuthMiddleware\\\",\\n    override: true,\\n};\\nconst getOmitRetryHeadersPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/omitRetryHeadersMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"defaultRetryDecider\\\": () => (/* binding */ defaultRetryDecider)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/service-error-classification */ \\\"./node_modules/@aws-sdk/service-error-classification/dist-es/index.js\\\");\\n\\nconst defaultRetryDecider = (error) => {\\n    if (!error) {\\n        return false;\\n    }\\n    return (0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__.isRetryableByTrait)(error) || (0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__.isClockSkewError)(error) || (0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__.isThrottlingError)(error) || (0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__.isTransientError)(error);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getRetryAfterHint\\\": () => (/* binding */ getRetryAfterHint),\\n/* harmony export */   \\\"getRetryPlugin\\\": () => (/* binding */ getRetryPlugin),\\n/* harmony export */   \\\"retryMiddleware\\\": () => (/* binding */ retryMiddleware),\\n/* harmony export */   \\\"retryMiddlewareOptions\\\": () => (/* binding */ retryMiddlewareOptions)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/service-error-classification */ \\\"./node_modules/@aws-sdk/service-error-classification/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-retry */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/index.js\\\");\\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uuid */ \\\"./node_modules/uuid/dist/esm-browser/v4.js\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \\\"./node_modules/@aws-sdk/middleware-retry/dist-es/util.js\\\");\\n\\n\\n\\n\\n\\nconst retryMiddleware = (options) => (next, context) => async (args) => {\\n    let retryStrategy = await options.retryStrategy();\\n    const maxAttempts = await options.maxAttempts();\\n    if (isRetryStrategyV2(retryStrategy)) {\\n        retryStrategy = retryStrategy;\\n        let retryToken = await retryStrategy.acquireInitialRetryToken(context[\\\"partition_id\\\"]);\\n        let lastError = new Error();\\n        let attempts = 0;\\n        let totalRetryDelay = 0;\\n        const { request } = args;\\n        if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n            request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.INVOCATION_ID_HEADER] = (0,uuid__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"])();\\n        }\\n        while (true) {\\n            try {\\n                if (_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request)) {\\n                    request.headers[_aws_sdk_util_retry__WEBPACK_IMPORTED_MODULE_2__.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\\n                }\\n                const { response, output } = await next(args);\\n                retryStrategy.recordSuccess(retryToken);\\n                output.$metadata.attempts = attempts + 1;\\n                output.$metadata.totalRetryDelay = totalRetryDelay;\\n                return { response, output };\\n            }\\n            catch (e) {\\n                const retryErrorInfo = getRetyErrorInto(e);\\n                lastError = (0,_util__WEBPACK_IMPORTED_MODULE_3__.asSdkError)(e);\\n                try {\\n                    retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\\n                }\\n                catch (refreshError) {\\n                    if (!lastError.$metadata) {\\n                        lastError.$metadata = {};\\n                    }\\n                    lastError.$metadata.attempts = attempts + 1;\\n                    lastError.$metadata.totalRetryDelay = totalRetryDelay;\\n                    throw lastError;\\n                }\\n                attempts = retryToken.getRetryCount();\\n                const delay = retryToken.getRetryDelay();\\n                totalRetryDelay += delay;\\n                await new Promise((resolve) => setTimeout(resolve, delay));\\n            }\\n        }\\n    }\\n    else {\\n        retryStrategy = retryStrategy;\\n        if (retryStrategy?.mode)\\n            context.userAgent = [...(context.userAgent || []), [\\\"cfg/retry-mode\\\", retryStrategy.mode]];\\n        return retryStrategy.retry(next, args);\\n    }\\n};\\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \\\"undefined\\\" &&\\n    typeof retryStrategy.refreshRetryTokenForRetry !== \\\"undefined\\\" &&\\n    typeof retryStrategy.recordSuccess !== \\\"undefined\\\";\\nconst getRetyErrorInto = (error) => {\\n    const errorInfo = {\\n        errorType: getRetryErrorType(error),\\n    };\\n    const retryAfterHint = getRetryAfterHint(error.$response);\\n    if (retryAfterHint) {\\n        errorInfo.retryAfterHint = retryAfterHint;\\n    }\\n    return errorInfo;\\n};\\nconst getRetryErrorType = (error) => {\\n    if ((0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__.isThrottlingError)(error))\\n        return \\\"THROTTLING\\\";\\n    if ((0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__.isTransientError)(error))\\n        return \\\"TRANSIENT\\\";\\n    if ((0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_1__.isServerError)(error))\\n        return \\\"SERVER_ERROR\\\";\\n    return \\\"CLIENT_ERROR\\\";\\n};\\nconst retryMiddlewareOptions = {\\n    name: \\\"retryMiddleware\\\",\\n    tags: [\\\"RETRY\\\"],\\n    step: \\\"finalizeRequest\\\",\\n    priority: \\\"high\\\",\\n    override: true,\\n};\\nconst getRetryPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\\n    },\\n});\\nconst getRetryAfterHint = (response) => {\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpResponse.isInstance(response))\\n        return;\\n    const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \\\"retry-after\\\");\\n    if (!retryAfterHeaderName)\\n        return;\\n    const retryAfter = response.headers[retryAfterHeaderName];\\n    const retryAfterSeconds = Number(retryAfter);\\n    if (!Number.isNaN(retryAfterSeconds))\\n        return new Date(retryAfterSeconds * 1000);\\n    const retryAfterDate = new Date(retryAfter);\\n    return retryAfterDate;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-retry/dist-es/util.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-retry/dist-es/util.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"asSdkError\\\": () => (/* binding */ asSdkError)\\n/* harmony export */ });\\nconst asSdkError = (error) => {\\n    if (error instanceof Error)\\n        return error;\\n    if (error instanceof Object)\\n        return Object.assign(new Error(), error);\\n    if (typeof error === \\\"string\\\")\\n        return new Error(error);\\n    return new Error(`AWS SDK error wrapper for ${error}`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-retry/dist-es/util.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deserializerMiddleware\\\": () => (/* binding */ deserializerMiddleware)\\n/* harmony export */ });\\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\\n    const { response } = await next(args);\\n    try {\\n        const parsed = await deserializer(response, options);\\n        return {\\n            response,\\n            output: parsed,\\n        };\\n    }\\n    catch (error) {\\n        Object.defineProperty(error, \\\"$response\\\", {\\n            value: response,\\n        });\\n        throw error;\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-serde/dist-es/index.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-serde/dist-es/index.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deserializerMiddleware\\\": () => (/* reexport safe */ _deserializerMiddleware__WEBPACK_IMPORTED_MODULE_0__.deserializerMiddleware),\\n/* harmony export */   \\\"deserializerMiddlewareOption\\\": () => (/* reexport safe */ _serdePlugin__WEBPACK_IMPORTED_MODULE_1__.deserializerMiddlewareOption),\\n/* harmony export */   \\\"getSerdePlugin\\\": () => (/* reexport safe */ _serdePlugin__WEBPACK_IMPORTED_MODULE_1__.getSerdePlugin),\\n/* harmony export */   \\\"serializerMiddleware\\\": () => (/* reexport safe */ _serializerMiddleware__WEBPACK_IMPORTED_MODULE_2__.serializerMiddleware),\\n/* harmony export */   \\\"serializerMiddlewareOption\\\": () => (/* reexport safe */ _serdePlugin__WEBPACK_IMPORTED_MODULE_1__.serializerMiddlewareOption)\\n/* harmony export */ });\\n/* harmony import */ var _deserializerMiddleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deserializerMiddleware */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js\\\");\\n/* harmony import */ var _serdePlugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./serdePlugin */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js\\\");\\n/* harmony import */ var _serializerMiddleware__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./serializerMiddleware */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-serde/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deserializerMiddlewareOption\\\": () => (/* binding */ deserializerMiddlewareOption),\\n/* harmony export */   \\\"getSerdePlugin\\\": () => (/* binding */ getSerdePlugin),\\n/* harmony export */   \\\"serializerMiddlewareOption\\\": () => (/* binding */ serializerMiddlewareOption)\\n/* harmony export */ });\\n/* harmony import */ var _deserializerMiddleware__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deserializerMiddleware */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js\\\");\\n/* harmony import */ var _serializerMiddleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./serializerMiddleware */ \\\"./node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js\\\");\\n\\n\\nconst deserializerMiddlewareOption = {\\n    name: \\\"deserializerMiddleware\\\",\\n    step: \\\"deserialize\\\",\\n    tags: [\\\"DESERIALIZER\\\"],\\n    override: true,\\n};\\nconst serializerMiddlewareOption = {\\n    name: \\\"serializerMiddleware\\\",\\n    step: \\\"serialize\\\",\\n    tags: [\\\"SERIALIZER\\\"],\\n    override: true,\\n};\\nfunction getSerdePlugin(config, serializer, deserializer) {\\n    return {\\n        applyToStack: (commandStack) => {\\n            commandStack.add((0,_deserializerMiddleware__WEBPACK_IMPORTED_MODULE_0__.deserializerMiddleware)(config, deserializer), deserializerMiddlewareOption);\\n            commandStack.add((0,_serializerMiddleware__WEBPACK_IMPORTED_MODULE_1__.serializerMiddleware)(config, serializer), serializerMiddlewareOption);\\n        },\\n    };\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"serializerMiddleware\\\": () => (/* binding */ serializerMiddleware)\\n/* harmony export */ });\\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\\n    const endpoint = context.endpointV2?.url && options.urlParser\\n        ? async () => options.urlParser(context.endpointV2.url)\\n        : options.endpoint;\\n    if (!endpoint) {\\n        throw new Error(\\\"No valid endpoint provider available.\\\");\\n    }\\n    const request = await serializer(args.input, { ...options, endpoint });\\n    return next({\\n        ...args,\\n        request,\\n    });\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveAwsAuthConfig\\\": () => (/* binding */ resolveAwsAuthConfig),\\n/* harmony export */   \\\"resolveSigV4AuthConfig\\\": () => (/* binding */ resolveSigV4AuthConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_property_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/property-provider */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_signature_v4__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/signature-v4 */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n\\n\\n\\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\\nconst resolveAwsAuthConfig = (input) => {\\n    const normalizedCreds = input.credentials\\n        ? normalizeCredentialProvider(input.credentials)\\n        : input.credentialDefaultProvider(input);\\n    const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\\n    let signer;\\n    if (input.signer) {\\n        signer = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(input.signer);\\n    }\\n    else if (input.regionInfoProvider) {\\n        signer = () => (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(input.region)()\\n            .then(async (region) => [\\n            (await input.regionInfoProvider(region, {\\n                useFipsEndpoint: await input.useFipsEndpoint(),\\n                useDualstackEndpoint: await input.useDualstackEndpoint(),\\n            })) || {},\\n            region,\\n        ])\\n            .then(([regionInfo, region]) => {\\n            const { signingRegion, signingService } = regionInfo;\\n            input.signingRegion = input.signingRegion || signingRegion || region;\\n            input.signingName = input.signingName || signingService || input.serviceId;\\n            const params = {\\n                ...input,\\n                credentials: normalizedCreds,\\n                region: input.signingRegion,\\n                service: input.signingName,\\n                sha256,\\n                uriEscapePath: signingEscapePath,\\n            };\\n            const SignerCtor = input.signerConstructor || _aws_sdk_signature_v4__WEBPACK_IMPORTED_MODULE_1__.SignatureV4;\\n            return new SignerCtor(params);\\n        });\\n    }\\n    else {\\n        signer = async (authScheme) => {\\n            authScheme = Object.assign({}, {\\n                name: \\\"sigv4\\\",\\n                signingName: input.signingName || input.defaultSigningName,\\n                signingRegion: await (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(input.region)(),\\n                properties: {},\\n            }, authScheme);\\n            const signingRegion = authScheme.signingRegion;\\n            const signingService = authScheme.signingName;\\n            input.signingRegion = input.signingRegion || signingRegion;\\n            input.signingName = input.signingName || signingService || input.serviceId;\\n            const params = {\\n                ...input,\\n                credentials: normalizedCreds,\\n                region: input.signingRegion,\\n                service: input.signingName,\\n                sha256,\\n                uriEscapePath: signingEscapePath,\\n            };\\n            const SignerCtor = input.signerConstructor || _aws_sdk_signature_v4__WEBPACK_IMPORTED_MODULE_1__.SignatureV4;\\n            return new SignerCtor(params);\\n        };\\n    }\\n    return {\\n        ...input,\\n        systemClockOffset,\\n        signingEscapePath,\\n        credentials: normalizedCreds,\\n        signer,\\n    };\\n};\\nconst resolveSigV4AuthConfig = (input) => {\\n    const normalizedCreds = input.credentials\\n        ? normalizeCredentialProvider(input.credentials)\\n        : input.credentialDefaultProvider(input);\\n    const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\\n    let signer;\\n    if (input.signer) {\\n        signer = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(input.signer);\\n    }\\n    else {\\n        signer = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(new _aws_sdk_signature_v4__WEBPACK_IMPORTED_MODULE_1__.SignatureV4({\\n            credentials: normalizedCreds,\\n            region: input.region,\\n            service: input.signingName,\\n            sha256,\\n            uriEscapePath: signingEscapePath,\\n        }));\\n    }\\n    return {\\n        ...input,\\n        systemClockOffset,\\n        signingEscapePath,\\n        credentials: normalizedCreds,\\n        signer,\\n    };\\n};\\nconst normalizeCredentialProvider = (credentials) => {\\n    if (typeof credentials === \\\"function\\\") {\\n        return (0,_aws_sdk_property_provider__WEBPACK_IMPORTED_MODULE_0__.memoize)(credentials, (credentials) => credentials.expiration !== undefined &&\\n            credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\\n    }\\n    return (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_2__.normalizeProvider)(credentials);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"awsAuthMiddleware\\\": () => (/* reexport safe */ _middleware__WEBPACK_IMPORTED_MODULE_1__.awsAuthMiddleware),\\n/* harmony export */   \\\"awsAuthMiddlewareOptions\\\": () => (/* reexport safe */ _middleware__WEBPACK_IMPORTED_MODULE_1__.awsAuthMiddlewareOptions),\\n/* harmony export */   \\\"getAwsAuthPlugin\\\": () => (/* reexport safe */ _middleware__WEBPACK_IMPORTED_MODULE_1__.getAwsAuthPlugin),\\n/* harmony export */   \\\"getSigV4AuthPlugin\\\": () => (/* reexport safe */ _middleware__WEBPACK_IMPORTED_MODULE_1__.getSigV4AuthPlugin),\\n/* harmony export */   \\\"resolveAwsAuthConfig\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_0__.resolveAwsAuthConfig),\\n/* harmony export */   \\\"resolveSigV4AuthConfig\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_0__.resolveSigV4AuthConfig)\\n/* harmony export */ });\\n/* harmony import */ var _configurations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./configurations */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js\\\");\\n/* harmony import */ var _middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./middleware */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"awsAuthMiddleware\\\": () => (/* binding */ awsAuthMiddleware),\\n/* harmony export */   \\\"awsAuthMiddlewareOptions\\\": () => (/* binding */ awsAuthMiddlewareOptions),\\n/* harmony export */   \\\"getAwsAuthPlugin\\\": () => (/* binding */ getAwsAuthPlugin),\\n/* harmony export */   \\\"getSigV4AuthPlugin\\\": () => (/* binding */ getSigV4AuthPlugin)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _utils_getSkewCorrectedDate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/getSkewCorrectedDate */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js\\\");\\n/* harmony import */ var _utils_getUpdatedSystemClockOffset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/getUpdatedSystemClockOffset */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js\\\");\\n\\n\\n\\nconst awsAuthMiddleware = (options) => (next, context) => async function (args) {\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(args.request))\\n        return next(args);\\n    const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\\n    const multiRegionOverride = authScheme?.name === \\\"sigv4a\\\" ? authScheme?.signingRegionSet?.join(\\\",\\\") : undefined;\\n    const signer = await options.signer(authScheme);\\n    const output = await next({\\n        ...args,\\n        request: await signer.sign(args.request, {\\n            signingDate: (0,_utils_getSkewCorrectedDate__WEBPACK_IMPORTED_MODULE_1__.getSkewCorrectedDate)(options.systemClockOffset),\\n            signingRegion: multiRegionOverride || context[\\\"signing_region\\\"],\\n            signingService: context[\\\"signing_service\\\"],\\n        }),\\n    }).catch((error) => {\\n        const serverTime = error.ServerTime ?? getDateHeader(error.$response);\\n        if (serverTime) {\\n            options.systemClockOffset = (0,_utils_getUpdatedSystemClockOffset__WEBPACK_IMPORTED_MODULE_2__.getUpdatedSystemClockOffset)(serverTime, options.systemClockOffset);\\n        }\\n        throw error;\\n    });\\n    const dateHeader = getDateHeader(output.response);\\n    if (dateHeader) {\\n        options.systemClockOffset = (0,_utils_getUpdatedSystemClockOffset__WEBPACK_IMPORTED_MODULE_2__.getUpdatedSystemClockOffset)(dateHeader, options.systemClockOffset);\\n    }\\n    return output;\\n};\\nconst getDateHeader = (response) => _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\\nconst awsAuthMiddlewareOptions = {\\n    name: \\\"awsAuthMiddleware\\\",\\n    tags: [\\\"SIGNATURE\\\", \\\"AWSAUTH\\\"],\\n    relation: \\\"after\\\",\\n    toMiddleware: \\\"retryMiddleware\\\",\\n    override: true,\\n};\\nconst getAwsAuthPlugin = (options) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\\n    },\\n});\\nconst getSigV4AuthPlugin = getAwsAuthPlugin;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js ***!\n  \\****************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getSkewCorrectedDate\\\": () => (/* binding */ getSkewCorrectedDate)\\n/* harmony export */ });\\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getUpdatedSystemClockOffset\\\": () => (/* binding */ getUpdatedSystemClockOffset)\\n/* harmony export */ });\\n/* harmony import */ var _isClockSkewed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isClockSkewed */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js\\\");\\n\\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\\n    const clockTimeInMs = Date.parse(clockTime);\\n    if ((0,_isClockSkewed__WEBPACK_IMPORTED_MODULE_0__.isClockSkewed)(clockTimeInMs, currentSystemClockOffset)) {\\n        return clockTimeInMs - Date.now();\\n    }\\n    return currentSystemClockOffset;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isClockSkewed\\\": () => (/* binding */ isClockSkewed)\\n/* harmony export */ });\\n/* harmony import */ var _getSkewCorrectedDate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSkewCorrectedDate */ \\\"./node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js\\\");\\n\\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs((0,_getSkewCorrectedDate__WEBPACK_IMPORTED_MODULE_0__.getSkewCorrectedDate)(systemClockOffset).getTime() - clockTime) >= 300000;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"constructStack\\\": () => (/* binding */ constructStack)\\n/* harmony export */ });\\nconst constructStack = () => {\\n    let absoluteEntries = [];\\n    let relativeEntries = [];\\n    const entriesNameSet = new Set();\\n    const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\\n        priorityWeights[b.priority || \\\"normal\\\"] - priorityWeights[a.priority || \\\"normal\\\"]);\\n    const removeByName = (toRemove) => {\\n        let isRemoved = false;\\n        const filterCb = (entry) => {\\n            if (entry.name && entry.name === toRemove) {\\n                isRemoved = true;\\n                entriesNameSet.delete(toRemove);\\n                return false;\\n            }\\n            return true;\\n        };\\n        absoluteEntries = absoluteEntries.filter(filterCb);\\n        relativeEntries = relativeEntries.filter(filterCb);\\n        return isRemoved;\\n    };\\n    const removeByReference = (toRemove) => {\\n        let isRemoved = false;\\n        const filterCb = (entry) => {\\n            if (entry.middleware === toRemove) {\\n                isRemoved = true;\\n                if (entry.name)\\n                    entriesNameSet.delete(entry.name);\\n                return false;\\n            }\\n            return true;\\n        };\\n        absoluteEntries = absoluteEntries.filter(filterCb);\\n        relativeEntries = relativeEntries.filter(filterCb);\\n        return isRemoved;\\n    };\\n    const cloneTo = (toStack) => {\\n        absoluteEntries.forEach((entry) => {\\n            toStack.add(entry.middleware, { ...entry });\\n        });\\n        relativeEntries.forEach((entry) => {\\n            toStack.addRelativeTo(entry.middleware, { ...entry });\\n        });\\n        return toStack;\\n    };\\n    const expandRelativeMiddlewareList = (from) => {\\n        const expandedMiddlewareList = [];\\n        from.before.forEach((entry) => {\\n            if (entry.before.length === 0 && entry.after.length === 0) {\\n                expandedMiddlewareList.push(entry);\\n            }\\n            else {\\n                expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\\n            }\\n        });\\n        expandedMiddlewareList.push(from);\\n        from.after.reverse().forEach((entry) => {\\n            if (entry.before.length === 0 && entry.after.length === 0) {\\n                expandedMiddlewareList.push(entry);\\n            }\\n            else {\\n                expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\\n            }\\n        });\\n        return expandedMiddlewareList;\\n    };\\n    const getMiddlewareList = (debug = false) => {\\n        const normalizedAbsoluteEntries = [];\\n        const normalizedRelativeEntries = [];\\n        const normalizedEntriesNameMap = {};\\n        absoluteEntries.forEach((entry) => {\\n            const normalizedEntry = {\\n                ...entry,\\n                before: [],\\n                after: [],\\n            };\\n            if (normalizedEntry.name)\\n                normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\\n            normalizedAbsoluteEntries.push(normalizedEntry);\\n        });\\n        relativeEntries.forEach((entry) => {\\n            const normalizedEntry = {\\n                ...entry,\\n                before: [],\\n                after: [],\\n            };\\n            if (normalizedEntry.name)\\n                normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\\n            normalizedRelativeEntries.push(normalizedEntry);\\n        });\\n        normalizedRelativeEntries.forEach((entry) => {\\n            if (entry.toMiddleware) {\\n                const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\\n                if (toMiddleware === undefined) {\\n                    if (debug) {\\n                        return;\\n                    }\\n                    throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \\\"anonymous\\\"} middleware ${entry.relation} ${entry.toMiddleware}`);\\n                }\\n                if (entry.relation === \\\"after\\\") {\\n                    toMiddleware.after.push(entry);\\n                }\\n                if (entry.relation === \\\"before\\\") {\\n                    toMiddleware.before.push(entry);\\n                }\\n            }\\n        });\\n        const mainChain = sort(normalizedAbsoluteEntries)\\n            .map(expandRelativeMiddlewareList)\\n            .reduce((wholeList, expendedMiddlewareList) => {\\n            wholeList.push(...expendedMiddlewareList);\\n            return wholeList;\\n        }, []);\\n        return mainChain;\\n    };\\n    const stack = {\\n        add: (middleware, options = {}) => {\\n            const { name, override } = options;\\n            const entry = {\\n                step: \\\"initialize\\\",\\n                priority: \\\"normal\\\",\\n                middleware,\\n                ...options,\\n            };\\n            if (name) {\\n                if (entriesNameSet.has(name)) {\\n                    if (!override)\\n                        throw new Error(`Duplicate middleware name '${name}'`);\\n                    const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\\n                    const toOverride = absoluteEntries[toOverrideIndex];\\n                    if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\\n                        throw new Error(`\\\"${name}\\\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\\n                            `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\\n                    }\\n                    absoluteEntries.splice(toOverrideIndex, 1);\\n                }\\n                entriesNameSet.add(name);\\n            }\\n            absoluteEntries.push(entry);\\n        },\\n        addRelativeTo: (middleware, options) => {\\n            const { name, override } = options;\\n            const entry = {\\n                middleware,\\n                ...options,\\n            };\\n            if (name) {\\n                if (entriesNameSet.has(name)) {\\n                    if (!override)\\n                        throw new Error(`Duplicate middleware name '${name}'`);\\n                    const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\\n                    const toOverride = relativeEntries[toOverrideIndex];\\n                    if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\\n                        throw new Error(`\\\"${name}\\\" middleware ${toOverride.relation} \\\"${toOverride.toMiddleware}\\\" middleware cannot be overridden ` +\\n                            `by same-name middleware ${entry.relation} \\\"${entry.toMiddleware}\\\" middleware.`);\\n                    }\\n                    relativeEntries.splice(toOverrideIndex, 1);\\n                }\\n                entriesNameSet.add(name);\\n            }\\n            relativeEntries.push(entry);\\n        },\\n        clone: () => cloneTo(constructStack()),\\n        use: (plugin) => {\\n            plugin.applyToStack(stack);\\n        },\\n        remove: (toRemove) => {\\n            if (typeof toRemove === \\\"string\\\")\\n                return removeByName(toRemove);\\n            else\\n                return removeByReference(toRemove);\\n        },\\n        removeByTag: (toRemove) => {\\n            let isRemoved = false;\\n            const filterCb = (entry) => {\\n                const { tags, name } = entry;\\n                if (tags && tags.includes(toRemove)) {\\n                    if (name)\\n                        entriesNameSet.delete(name);\\n                    isRemoved = true;\\n                    return false;\\n                }\\n                return true;\\n            };\\n            absoluteEntries = absoluteEntries.filter(filterCb);\\n            relativeEntries = relativeEntries.filter(filterCb);\\n            return isRemoved;\\n        },\\n        concat: (from) => {\\n            const cloned = cloneTo(constructStack());\\n            cloned.use(from);\\n            return cloned;\\n        },\\n        applyToStack: cloneTo,\\n        identify: () => {\\n            return getMiddlewareList(true).map((mw) => {\\n                return mw.name + \\\": \\\" + (mw.tags || []).join(\\\",\\\");\\n            });\\n        },\\n        resolve: (handler, context) => {\\n            for (const middleware of getMiddlewareList()\\n                .map((entry) => entry.middleware)\\n                .reverse()) {\\n                handler = middleware(handler, context);\\n            }\\n            return handler;\\n        },\\n    };\\n    return stack;\\n};\\nconst stepWeights = {\\n    initialize: 5,\\n    serialize: 4,\\n    build: 3,\\n    finalizeRequest: 2,\\n    deserialize: 1,\\n};\\nconst priorityWeights = {\\n    high: 3,\\n    normal: 2,\\n    low: 1,\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-stack/dist-es/index.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-stack/dist-es/index.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"constructStack\\\": () => (/* reexport safe */ _MiddlewareStack__WEBPACK_IMPORTED_MODULE_0__.constructStack)\\n/* harmony export */ });\\n/* harmony import */ var _MiddlewareStack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MiddlewareStack */ \\\"./node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-stack/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveUserAgentConfig\\\": () => (/* binding */ resolveUserAgentConfig)\\n/* harmony export */ });\\nfunction resolveUserAgentConfig(input) {\\n    return {\\n        ...input,\\n        customUserAgent: typeof input.customUserAgent === \\\"string\\\" ? [[input.customUserAgent]] : input.customUserAgent,\\n    };\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SPACE\\\": () => (/* binding */ SPACE),\\n/* harmony export */   \\\"UA_ESCAPE_REGEX\\\": () => (/* binding */ UA_ESCAPE_REGEX),\\n/* harmony export */   \\\"USER_AGENT\\\": () => (/* binding */ USER_AGENT),\\n/* harmony export */   \\\"X_AMZ_USER_AGENT\\\": () => (/* binding */ X_AMZ_USER_AGENT)\\n/* harmony export */ });\\nconst USER_AGENT = \\\"user-agent\\\";\\nconst X_AMZ_USER_AGENT = \\\"x-amz-user-agent\\\";\\nconst SPACE = \\\" \\\";\\nconst UA_ESCAPE_REGEX = /[^\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\.\\\\^\\\\_\\\\`\\\\|\\\\~\\\\d\\\\w]/g;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getUserAgentMiddlewareOptions\\\": () => (/* reexport safe */ _user_agent_middleware__WEBPACK_IMPORTED_MODULE_1__.getUserAgentMiddlewareOptions),\\n/* harmony export */   \\\"getUserAgentPlugin\\\": () => (/* reexport safe */ _user_agent_middleware__WEBPACK_IMPORTED_MODULE_1__.getUserAgentPlugin),\\n/* harmony export */   \\\"resolveUserAgentConfig\\\": () => (/* reexport safe */ _configurations__WEBPACK_IMPORTED_MODULE_0__.resolveUserAgentConfig),\\n/* harmony export */   \\\"userAgentMiddleware\\\": () => (/* reexport safe */ _user_agent_middleware__WEBPACK_IMPORTED_MODULE_1__.userAgentMiddleware)\\n/* harmony export */ });\\n/* harmony import */ var _configurations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./configurations */ \\\"./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js\\\");\\n/* harmony import */ var _user_agent_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-agent-middleware */ \\\"./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getUserAgentMiddlewareOptions\\\": () => (/* binding */ getUserAgentMiddlewareOptions),\\n/* harmony export */   \\\"getUserAgentPlugin\\\": () => (/* binding */ getUserAgentPlugin),\\n/* harmony export */   \\\"userAgentMiddleware\\\": () => (/* binding */ userAgentMiddleware)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/protocol-http */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js\\\");\\n\\n\\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\\n    const { request } = args;\\n    if (!_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__.HttpRequest.isInstance(request))\\n        return next(args);\\n    const { headers } = request;\\n    const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\\n    const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\\n    const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\\n    const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(_constants__WEBPACK_IMPORTED_MODULE_1__.SPACE);\\n    const normalUAValue = [\\n        ...defaultUserAgent.filter((section) => section.startsWith(\\\"aws-sdk-\\\")),\\n        ...customUserAgent,\\n    ].join(_constants__WEBPACK_IMPORTED_MODULE_1__.SPACE);\\n    if (options.runtime !== \\\"browser\\\") {\\n        if (normalUAValue) {\\n            headers[_constants__WEBPACK_IMPORTED_MODULE_1__.X_AMZ_USER_AGENT] = headers[_constants__WEBPACK_IMPORTED_MODULE_1__.X_AMZ_USER_AGENT]\\n                ? `${headers[_constants__WEBPACK_IMPORTED_MODULE_1__.USER_AGENT]} ${normalUAValue}`\\n                : normalUAValue;\\n        }\\n        headers[_constants__WEBPACK_IMPORTED_MODULE_1__.USER_AGENT] = sdkUserAgentValue;\\n    }\\n    else {\\n        headers[_constants__WEBPACK_IMPORTED_MODULE_1__.X_AMZ_USER_AGENT] = sdkUserAgentValue;\\n    }\\n    return next({\\n        ...args,\\n        request,\\n    });\\n};\\nconst escapeUserAgent = ([name, version]) => {\\n    const prefixSeparatorIndex = name.indexOf(\\\"/\\\");\\n    const prefix = name.substring(0, prefixSeparatorIndex);\\n    let uaName = name.substring(prefixSeparatorIndex + 1);\\n    if (prefix === \\\"api\\\") {\\n        uaName = uaName.toLowerCase();\\n    }\\n    return [prefix, uaName, version]\\n        .filter((item) => item && item.length > 0)\\n        .map((item) => item?.replace(_constants__WEBPACK_IMPORTED_MODULE_1__.UA_ESCAPE_REGEX, \\\"_\\\"))\\n        .join(\\\"/\\\");\\n};\\nconst getUserAgentMiddlewareOptions = {\\n    name: \\\"getUserAgentMiddleware\\\",\\n    step: \\\"build\\\",\\n    priority: \\\"low\\\",\\n    tags: [\\\"SET_USER_AGENT\\\", \\\"USER_AGENT\\\"],\\n    override: true,\\n};\\nconst getUserAgentPlugin = (config) => ({\\n    applyToStack: (clientStack) => {\\n        clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\\n    },\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CredentialsProviderError\\\": () => (/* binding */ CredentialsProviderError)\\n/* harmony export */ });\\n/* harmony import */ var _ProviderError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js\\\");\\n\\nclass CredentialsProviderError extends _ProviderError__WEBPACK_IMPORTED_MODULE_0__.ProviderError {\\n    constructor(message, tryNextLink = true) {\\n        super(message, tryNextLink);\\n        this.tryNextLink = tryNextLink;\\n        this.name = \\\"CredentialsProviderError\\\";\\n        Object.setPrototypeOf(this, CredentialsProviderError.prototype);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ProviderError\\\": () => (/* binding */ ProviderError)\\n/* harmony export */ });\\nclass ProviderError extends Error {\\n    constructor(message, tryNextLink = true) {\\n        super(message);\\n        this.tryNextLink = tryNextLink;\\n        this.name = \\\"ProviderError\\\";\\n        Object.setPrototypeOf(this, ProviderError.prototype);\\n    }\\n    static from(error, tryNextLink = true) {\\n        return Object.assign(new this(error.message, tryNextLink), error);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"TokenProviderError\\\": () => (/* binding */ TokenProviderError)\\n/* harmony export */ });\\n/* harmony import */ var _ProviderError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js\\\");\\n\\nclass TokenProviderError extends _ProviderError__WEBPACK_IMPORTED_MODULE_0__.ProviderError {\\n    constructor(message, tryNextLink = true) {\\n        super(message, tryNextLink);\\n        this.tryNextLink = tryNextLink;\\n        this.name = \\\"TokenProviderError\\\";\\n        Object.setPrototypeOf(this, TokenProviderError.prototype);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/chain.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/chain.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"chain\\\": () => (/* binding */ chain)\\n/* harmony export */ });\\n/* harmony import */ var _ProviderError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js\\\");\\n\\nfunction chain(...providers) {\\n    return () => {\\n        let promise = Promise.reject(new _ProviderError__WEBPACK_IMPORTED_MODULE_0__.ProviderError(\\\"No providers in chain\\\"));\\n        for (const provider of providers) {\\n            promise = promise.catch((err) => {\\n                if (err?.tryNextLink) {\\n                    return provider();\\n                }\\n                throw err;\\n            });\\n        }\\n        return promise;\\n    };\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/chain.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/fromStatic.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/fromStatic.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromStatic\\\": () => (/* binding */ fromStatic)\\n/* harmony export */ });\\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/fromStatic.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/index.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/index.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CredentialsProviderError\\\": () => (/* reexport safe */ _CredentialsProviderError__WEBPACK_IMPORTED_MODULE_0__.CredentialsProviderError),\\n/* harmony export */   \\\"ProviderError\\\": () => (/* reexport safe */ _ProviderError__WEBPACK_IMPORTED_MODULE_1__.ProviderError),\\n/* harmony export */   \\\"TokenProviderError\\\": () => (/* reexport safe */ _TokenProviderError__WEBPACK_IMPORTED_MODULE_2__.TokenProviderError),\\n/* harmony export */   \\\"chain\\\": () => (/* reexport safe */ _chain__WEBPACK_IMPORTED_MODULE_3__.chain),\\n/* harmony export */   \\\"fromStatic\\\": () => (/* reexport safe */ _fromStatic__WEBPACK_IMPORTED_MODULE_4__.fromStatic),\\n/* harmony export */   \\\"memoize\\\": () => (/* reexport safe */ _memoize__WEBPACK_IMPORTED_MODULE_5__.memoize)\\n/* harmony export */ });\\n/* harmony import */ var _CredentialsProviderError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CredentialsProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js\\\");\\n/* harmony import */ var _ProviderError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js\\\");\\n/* harmony import */ var _TokenProviderError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TokenProviderError */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js\\\");\\n/* harmony import */ var _chain__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./chain */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/chain.js\\\");\\n/* harmony import */ var _fromStatic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fromStatic */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/fromStatic.js\\\");\\n/* harmony import */ var _memoize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./memoize */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/memoize.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/property-provider/dist-es/memoize.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/property-provider/dist-es/memoize.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"memoize\\\": () => (/* binding */ memoize)\\n/* harmony export */ });\\nconst memoize = (provider, isExpired, requiresRefresh) => {\\n    let resolved;\\n    let pending;\\n    let hasResult;\\n    let isConstant = false;\\n    const coalesceProvider = async () => {\\n        if (!pending) {\\n            pending = provider();\\n        }\\n        try {\\n            resolved = await pending;\\n            hasResult = true;\\n            isConstant = false;\\n        }\\n        finally {\\n            pending = undefined;\\n        }\\n        return resolved;\\n    };\\n    if (isExpired === undefined) {\\n        return async (options) => {\\n            if (!hasResult || options?.forceRefresh) {\\n                resolved = await coalesceProvider();\\n            }\\n            return resolved;\\n        };\\n    }\\n    return async (options) => {\\n        if (!hasResult || options?.forceRefresh) {\\n            resolved = await coalesceProvider();\\n        }\\n        if (isConstant) {\\n            return resolved;\\n        }\\n        if (requiresRefresh && !requiresRefresh(resolved)) {\\n            isConstant = true;\\n            return resolved;\\n        }\\n        if (isExpired(resolved)) {\\n            await coalesceProvider();\\n            return resolved;\\n        }\\n        return resolved;\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/property-provider/dist-es/memoize.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/protocol-http/dist-es/httpHandler.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/protocol-http/dist-es/httpHandler.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/protocol-http/dist-es/httpHandler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"HttpRequest\\\": () => (/* binding */ HttpRequest)\\n/* harmony export */ });\\nclass HttpRequest {\\n    constructor(options) {\\n        this.method = options.method || \\\"GET\\\";\\n        this.hostname = options.hostname || \\\"localhost\\\";\\n        this.port = options.port;\\n        this.query = options.query || {};\\n        this.headers = options.headers || {};\\n        this.body = options.body;\\n        this.protocol = options.protocol\\n            ? options.protocol.slice(-1) !== \\\":\\\"\\n                ? `${options.protocol}:`\\n                : options.protocol\\n            : \\\"https:\\\";\\n        this.path = options.path ? (options.path.charAt(0) !== \\\"/\\\" ? `/${options.path}` : options.path) : \\\"/\\\";\\n    }\\n    static isInstance(request) {\\n        if (!request)\\n            return false;\\n        const req = request;\\n        return (\\\"method\\\" in req &&\\n            \\\"protocol\\\" in req &&\\n            \\\"hostname\\\" in req &&\\n            \\\"path\\\" in req &&\\n            typeof req[\\\"query\\\"] === \\\"object\\\" &&\\n            typeof req[\\\"headers\\\"] === \\\"object\\\");\\n    }\\n    clone() {\\n        const cloned = new HttpRequest({\\n            ...this,\\n            headers: { ...this.headers },\\n        });\\n        if (cloned.query)\\n            cloned.query = cloneQuery(cloned.query);\\n        return cloned;\\n    }\\n}\\nfunction cloneQuery(query) {\\n    return Object.keys(query).reduce((carry, paramName) => {\\n        const param = query[paramName];\\n        return {\\n            ...carry,\\n            [paramName]: Array.isArray(param) ? [...param] : param,\\n        };\\n    }, {});\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"HttpResponse\\\": () => (/* binding */ HttpResponse)\\n/* harmony export */ });\\nclass HttpResponse {\\n    constructor(options) {\\n        this.statusCode = options.statusCode;\\n        this.headers = options.headers || {};\\n        this.body = options.body;\\n    }\\n    static isInstance(response) {\\n        if (!response)\\n            return false;\\n        const resp = response;\\n        return typeof resp.statusCode === \\\"number\\\" && typeof resp.headers === \\\"object\\\";\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/protocol-http/dist-es/index.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/protocol-http/dist-es/index.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"HttpRequest\\\": () => (/* reexport safe */ _httpRequest__WEBPACK_IMPORTED_MODULE_1__.HttpRequest),\\n/* harmony export */   \\\"HttpResponse\\\": () => (/* reexport safe */ _httpResponse__WEBPACK_IMPORTED_MODULE_2__.HttpResponse),\\n/* harmony export */   \\\"isValidHostname\\\": () => (/* reexport safe */ _isValidHostname__WEBPACK_IMPORTED_MODULE_3__.isValidHostname)\\n/* harmony export */ });\\n/* harmony import */ var _httpHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./httpHandler */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/httpHandler.js\\\");\\n/* harmony import */ var _httpRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./httpRequest */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js\\\");\\n/* harmony import */ var _httpResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./httpResponse */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js\\\");\\n/* harmony import */ var _isValidHostname__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isValidHostname */ \\\"./node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js\\\");\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/protocol-http/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isValidHostname\\\": () => (/* binding */ isValidHostname)\\n/* harmony export */ });\\nfunction isValidHostname(hostname) {\\n    const hostPattern = /^[a-z0-9][a-z0-9\\\\.\\\\-]*[a-z0-9]$/;\\n    return hostPattern.test(hostname);\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/querystring-builder/dist-es/index.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/querystring-builder/dist-es/index.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"buildQueryString\\\": () => (/* binding */ buildQueryString)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-uri-escape */ \\\"./node_modules/@aws-sdk/util-uri-escape/dist-es/index.js\\\");\\n\\nfunction buildQueryString(query) {\\n    const parts = [];\\n    for (let key of Object.keys(query).sort()) {\\n        const value = query[key];\\n        key = (0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(key);\\n        if (Array.isArray(value)) {\\n            for (let i = 0, iLen = value.length; i < iLen; i++) {\\n                parts.push(`${key}=${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(value[i])}`);\\n            }\\n        }\\n        else {\\n            let qsEntry = key;\\n            if (value || typeof value === \\\"string\\\") {\\n                qsEntry += `=${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(value)}`;\\n            }\\n            parts.push(qsEntry);\\n        }\\n    }\\n    return parts.join(\\\"&\\\");\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/querystring-builder/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/querystring-parser/dist-es/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/querystring-parser/dist-es/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"parseQueryString\\\": () => (/* binding */ parseQueryString)\\n/* harmony export */ });\\nfunction parseQueryString(querystring) {\\n    const query = {};\\n    querystring = querystring.replace(/^\\\\?/, \\\"\\\");\\n    if (querystring) {\\n        for (const pair of querystring.split(\\\"&\\\")) {\\n            let [key, value = null] = pair.split(\\\"=\\\");\\n            key = decodeURIComponent(key);\\n            if (value) {\\n                value = decodeURIComponent(value);\\n            }\\n            if (!(key in query)) {\\n                query[key] = value;\\n            }\\n            else if (Array.isArray(query[key])) {\\n                query[key].push(value);\\n            }\\n            else {\\n                query[key] = [query[key], value];\\n            }\\n        }\\n    }\\n    return query;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/querystring-parser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/service-error-classification/dist-es/constants.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/service-error-classification/dist-es/constants.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"CLOCK_SKEW_ERROR_CODES\\\": () => (/* binding */ CLOCK_SKEW_ERROR_CODES),\\n/* harmony export */   \\\"NODEJS_TIMEOUT_ERROR_CODES\\\": () => (/* binding */ NODEJS_TIMEOUT_ERROR_CODES),\\n/* harmony export */   \\\"THROTTLING_ERROR_CODES\\\": () => (/* binding */ THROTTLING_ERROR_CODES),\\n/* harmony export */   \\\"TRANSIENT_ERROR_CODES\\\": () => (/* binding */ TRANSIENT_ERROR_CODES),\\n/* harmony export */   \\\"TRANSIENT_ERROR_STATUS_CODES\\\": () => (/* binding */ TRANSIENT_ERROR_STATUS_CODES)\\n/* harmony export */ });\\nconst CLOCK_SKEW_ERROR_CODES = [\\n    \\\"AuthFailure\\\",\\n    \\\"InvalidSignatureException\\\",\\n    \\\"RequestExpired\\\",\\n    \\\"RequestInTheFuture\\\",\\n    \\\"RequestTimeTooSkewed\\\",\\n    \\\"SignatureDoesNotMatch\\\",\\n];\\nconst THROTTLING_ERROR_CODES = [\\n    \\\"BandwidthLimitExceeded\\\",\\n    \\\"EC2ThrottledException\\\",\\n    \\\"LimitExceededException\\\",\\n    \\\"PriorRequestNotComplete\\\",\\n    \\\"ProvisionedThroughputExceededException\\\",\\n    \\\"RequestLimitExceeded\\\",\\n    \\\"RequestThrottled\\\",\\n    \\\"RequestThrottledException\\\",\\n    \\\"SlowDown\\\",\\n    \\\"ThrottledException\\\",\\n    \\\"Throttling\\\",\\n    \\\"ThrottlingException\\\",\\n    \\\"TooManyRequestsException\\\",\\n    \\\"TransactionInProgressException\\\",\\n];\\nconst TRANSIENT_ERROR_CODES = [\\\"AbortError\\\", \\\"TimeoutError\\\", \\\"RequestTimeout\\\", \\\"RequestTimeoutException\\\"];\\nconst TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\\nconst NODEJS_TIMEOUT_ERROR_CODES = [\\\"ECONNRESET\\\", \\\"EPIPE\\\", \\\"ETIMEDOUT\\\"];\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/service-error-classification/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/service-error-classification/dist-es/index.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/service-error-classification/dist-es/index.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isClockSkewError\\\": () => (/* binding */ isClockSkewError),\\n/* harmony export */   \\\"isRetryableByTrait\\\": () => (/* binding */ isRetryableByTrait),\\n/* harmony export */   \\\"isServerError\\\": () => (/* binding */ isServerError),\\n/* harmony export */   \\\"isThrottlingError\\\": () => (/* binding */ isThrottlingError),\\n/* harmony export */   \\\"isTransientError\\\": () => (/* binding */ isTransientError)\\n/* harmony export */ });\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/service-error-classification/dist-es/constants.js\\\");\\n\\nconst isRetryableByTrait = (error) => error.$retryable !== undefined;\\nconst isClockSkewError = (error) => _constants__WEBPACK_IMPORTED_MODULE_0__.CLOCK_SKEW_ERROR_CODES.includes(error.name);\\nconst isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\\n    _constants__WEBPACK_IMPORTED_MODULE_0__.THROTTLING_ERROR_CODES.includes(error.name) ||\\n    error.$retryable?.throttling == true;\\nconst isTransientError = (error) => _constants__WEBPACK_IMPORTED_MODULE_0__.TRANSIENT_ERROR_CODES.includes(error.name) ||\\n    _constants__WEBPACK_IMPORTED_MODULE_0__.NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \\\"\\\") ||\\n    _constants__WEBPACK_IMPORTED_MODULE_0__.TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\\nconst isServerError = (error) => {\\n    if (error.$metadata?.httpStatusCode !== undefined) {\\n        const statusCode = error.$metadata.httpStatusCode;\\n        if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\\n            return true;\\n        }\\n        return false;\\n    }\\n    return false;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/service-error-classification/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SignatureV4\\\": () => (/* binding */ SignatureV4)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ \\\"./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-middleware */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-utf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/index.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n/* harmony import */ var _credentialDerivation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./credentialDerivation */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js\\\");\\n/* harmony import */ var _getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getCanonicalHeaders */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js\\\");\\n/* harmony import */ var _getCanonicalQuery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getCanonicalQuery */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js\\\");\\n/* harmony import */ var _getPayloadHash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getPayloadHash */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js\\\");\\n/* harmony import */ var _headerUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./headerUtil */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js\\\");\\n/* harmony import */ var _moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./moveHeadersToQuery */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js\\\");\\n/* harmony import */ var _prepareRequest__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prepareRequest */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js\\\");\\n/* harmony import */ var _utilDate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utilDate */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nclass SignatureV4 {\\n    constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\\n        this.service = service;\\n        this.sha256 = sha256;\\n        this.uriEscapePath = uriEscapePath;\\n        this.applyChecksum = typeof applyChecksum === \\\"boolean\\\" ? applyChecksum : true;\\n        this.regionProvider = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_1__.normalizeProvider)(region);\\n        this.credentialProvider = (0,_aws_sdk_util_middleware__WEBPACK_IMPORTED_MODULE_1__.normalizeProvider)(credentials);\\n    }\\n    async presign(originalRequest, options = {}) {\\n        const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\\n        const credentials = await this.credentialProvider();\\n        this.validateResolvedCredentials(credentials);\\n        const region = signingRegion ?? (await this.regionProvider());\\n        const { longDate, shortDate } = formatDate(signingDate);\\n        if (expiresIn > _constants__WEBPACK_IMPORTED_MODULE_3__.MAX_PRESIGNED_TTL) {\\n            return Promise.reject(\\\"Signature version 4 presigned URLs\\\" + \\\" must have an expiration date less than one week in\\\" + \\\" the future\\\");\\n        }\\n        const scope = (0,_credentialDerivation__WEBPACK_IMPORTED_MODULE_4__.createScope)(shortDate, region, signingService ?? this.service);\\n        const request = (0,_moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_9__.moveHeadersToQuery)((0,_prepareRequest__WEBPACK_IMPORTED_MODULE_10__.prepareRequest)(originalRequest), { unhoistableHeaders });\\n        if (credentials.sessionToken) {\\n            request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.TOKEN_QUERY_PARAM] = credentials.sessionToken;\\n        }\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.ALGORITHM_QUERY_PARAM] = _constants__WEBPACK_IMPORTED_MODULE_3__.ALGORITHM_IDENTIFIER;\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.AMZ_DATE_QUERY_PARAM] = longDate;\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\\n        const canonicalHeaders = (0,_getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_5__.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\\n        request.query[_constants__WEBPACK_IMPORTED_MODULE_3__.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await (0,_getPayloadHash__WEBPACK_IMPORTED_MODULE_7__.getPayloadHash)(originalRequest, this.sha256)));\\n        return request;\\n    }\\n    async sign(toSign, options) {\\n        if (typeof toSign === \\\"string\\\") {\\n            return this.signString(toSign, options);\\n        }\\n        else if (toSign.headers && toSign.payload) {\\n            return this.signEvent(toSign, options);\\n        }\\n        else {\\n            return this.signRequest(toSign, options);\\n        }\\n    }\\n    async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\\n        const region = signingRegion ?? (await this.regionProvider());\\n        const { shortDate, longDate } = formatDate(signingDate);\\n        const scope = (0,_credentialDerivation__WEBPACK_IMPORTED_MODULE_4__.createScope)(shortDate, region, signingService ?? this.service);\\n        const hashedPayload = await (0,_getPayloadHash__WEBPACK_IMPORTED_MODULE_7__.getPayloadHash)({ headers: {}, body: payload }, this.sha256);\\n        const hash = new this.sha256();\\n        hash.update(headers);\\n        const hashedHeaders = (0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__.toHex)(await hash.digest());\\n        const stringToSign = [\\n            _constants__WEBPACK_IMPORTED_MODULE_3__.EVENT_ALGORITHM_IDENTIFIER,\\n            longDate,\\n            scope,\\n            priorSignature,\\n            hashedHeaders,\\n            hashedPayload,\\n        ].join(\\\"\\\\n\\\");\\n        return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\\n    }\\n    async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\\n        const credentials = await this.credentialProvider();\\n        this.validateResolvedCredentials(credentials);\\n        const region = signingRegion ?? (await this.regionProvider());\\n        const { shortDate } = formatDate(signingDate);\\n        const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\\n        hash.update((0,_aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__.toUint8Array)(stringToSign));\\n        return (0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__.toHex)(await hash.digest());\\n    }\\n    async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\\n        const credentials = await this.credentialProvider();\\n        this.validateResolvedCredentials(credentials);\\n        const region = signingRegion ?? (await this.regionProvider());\\n        const request = (0,_prepareRequest__WEBPACK_IMPORTED_MODULE_10__.prepareRequest)(requestToSign);\\n        const { longDate, shortDate } = formatDate(signingDate);\\n        const scope = (0,_credentialDerivation__WEBPACK_IMPORTED_MODULE_4__.createScope)(shortDate, region, signingService ?? this.service);\\n        request.headers[_constants__WEBPACK_IMPORTED_MODULE_3__.AMZ_DATE_HEADER] = longDate;\\n        if (credentials.sessionToken) {\\n            request.headers[_constants__WEBPACK_IMPORTED_MODULE_3__.TOKEN_HEADER] = credentials.sessionToken;\\n        }\\n        const payloadHash = await (0,_getPayloadHash__WEBPACK_IMPORTED_MODULE_7__.getPayloadHash)(request, this.sha256);\\n        if (!(0,_headerUtil__WEBPACK_IMPORTED_MODULE_8__.hasHeader)(_constants__WEBPACK_IMPORTED_MODULE_3__.SHA256_HEADER, request.headers) && this.applyChecksum) {\\n            request.headers[_constants__WEBPACK_IMPORTED_MODULE_3__.SHA256_HEADER] = payloadHash;\\n        }\\n        const canonicalHeaders = (0,_getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_5__.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\\n        const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\\n        request.headers[_constants__WEBPACK_IMPORTED_MODULE_3__.AUTH_HEADER] =\\n            `${_constants__WEBPACK_IMPORTED_MODULE_3__.ALGORITHM_IDENTIFIER} ` +\\n                `Credential=${credentials.accessKeyId}/${scope}, ` +\\n                `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\\n                `Signature=${signature}`;\\n        return request;\\n    }\\n    createCanonicalRequest(request, canonicalHeaders, payloadHash) {\\n        const sortedHeaders = Object.keys(canonicalHeaders).sort();\\n        return `${request.method}\\n${this.getCanonicalPath(request)}\\n${(0,_getCanonicalQuery__WEBPACK_IMPORTED_MODULE_6__.getCanonicalQuery)(request)}\\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\\\"\\\\n\\\")}\\n\\n${sortedHeaders.join(\\\";\\\")}\\n${payloadHash}`;\\n    }\\n    async createStringToSign(longDate, credentialScope, canonicalRequest) {\\n        const hash = new this.sha256();\\n        hash.update((0,_aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__.toUint8Array)(canonicalRequest));\\n        const hashedRequest = await hash.digest();\\n        return `${_constants__WEBPACK_IMPORTED_MODULE_3__.ALGORITHM_IDENTIFIER}\\n${longDate}\\n${credentialScope}\\n${(0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__.toHex)(hashedRequest)}`;\\n    }\\n    getCanonicalPath({ path }) {\\n        if (this.uriEscapePath) {\\n            const normalizedPathSegments = [];\\n            for (const pathSegment of path.split(\\\"/\\\")) {\\n                if (pathSegment?.length === 0)\\n                    continue;\\n                if (pathSegment === \\\".\\\")\\n                    continue;\\n                if (pathSegment === \\\"..\\\") {\\n                    normalizedPathSegments.pop();\\n                }\\n                else {\\n                    normalizedPathSegments.push(pathSegment);\\n                }\\n            }\\n            const normalizedPath = `${path?.startsWith(\\\"/\\\") ? \\\"/\\\" : \\\"\\\"}${normalizedPathSegments.join(\\\"/\\\")}${normalizedPathSegments.length > 0 && path?.endsWith(\\\"/\\\") ? \\\"/\\\" : \\\"\\\"}`;\\n            const doubleEncoded = encodeURIComponent(normalizedPath);\\n            return doubleEncoded.replace(/%2F/g, \\\"/\\\");\\n        }\\n        return path;\\n    }\\n    async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\\n        const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\\n        const hash = new this.sha256(await keyPromise);\\n        hash.update((0,_aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__.toUint8Array)(stringToSign));\\n        return (0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__.toHex)(await hash.digest());\\n    }\\n    getSigningKey(credentials, region, shortDate, service) {\\n        return (0,_credentialDerivation__WEBPACK_IMPORTED_MODULE_4__.getSigningKey)(this.sha256, credentials, shortDate, region, service || this.service);\\n    }\\n    validateResolvedCredentials(credentials) {\\n        if (typeof credentials !== \\\"object\\\" ||\\n            typeof credentials.accessKeyId !== \\\"string\\\" ||\\n            typeof credentials.secretAccessKey !== \\\"string\\\") {\\n            throw new Error(\\\"Resolved credential object is not valid\\\");\\n        }\\n    }\\n}\\nconst formatDate = (now) => {\\n    const longDate = (0,_utilDate__WEBPACK_IMPORTED_MODULE_11__.iso8601)(now).replace(/[\\\\-:]/g, \\\"\\\");\\n    return {\\n        longDate,\\n        shortDate: longDate.slice(0, 8),\\n    };\\n};\\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\\\";\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"cloneQuery\\\": () => (/* binding */ cloneQuery),\\n/* harmony export */   \\\"cloneRequest\\\": () => (/* binding */ cloneRequest)\\n/* harmony export */ });\\nconst cloneRequest = ({ headers, query, ...rest }) => ({\\n    ...rest,\\n    headers: { ...headers },\\n    query: query ? cloneQuery(query) : undefined,\\n});\\nconst cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\\n    const param = query[paramName];\\n    return {\\n        ...carry,\\n        [paramName]: Array.isArray(param) ? [...param] : param,\\n    };\\n}, {});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/constants.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ALGORITHM_IDENTIFIER\\\": () => (/* binding */ ALGORITHM_IDENTIFIER),\\n/* harmony export */   \\\"ALGORITHM_IDENTIFIER_V4A\\\": () => (/* binding */ ALGORITHM_IDENTIFIER_V4A),\\n/* harmony export */   \\\"ALGORITHM_QUERY_PARAM\\\": () => (/* binding */ ALGORITHM_QUERY_PARAM),\\n/* harmony export */   \\\"ALWAYS_UNSIGNABLE_HEADERS\\\": () => (/* binding */ ALWAYS_UNSIGNABLE_HEADERS),\\n/* harmony export */   \\\"AMZ_DATE_HEADER\\\": () => (/* binding */ AMZ_DATE_HEADER),\\n/* harmony export */   \\\"AMZ_DATE_QUERY_PARAM\\\": () => (/* binding */ AMZ_DATE_QUERY_PARAM),\\n/* harmony export */   \\\"AUTH_HEADER\\\": () => (/* binding */ AUTH_HEADER),\\n/* harmony export */   \\\"CREDENTIAL_QUERY_PARAM\\\": () => (/* binding */ CREDENTIAL_QUERY_PARAM),\\n/* harmony export */   \\\"DATE_HEADER\\\": () => (/* binding */ DATE_HEADER),\\n/* harmony export */   \\\"EVENT_ALGORITHM_IDENTIFIER\\\": () => (/* binding */ EVENT_ALGORITHM_IDENTIFIER),\\n/* harmony export */   \\\"EXPIRES_QUERY_PARAM\\\": () => (/* binding */ EXPIRES_QUERY_PARAM),\\n/* harmony export */   \\\"GENERATED_HEADERS\\\": () => (/* binding */ GENERATED_HEADERS),\\n/* harmony export */   \\\"HOST_HEADER\\\": () => (/* binding */ HOST_HEADER),\\n/* harmony export */   \\\"KEY_TYPE_IDENTIFIER\\\": () => (/* binding */ KEY_TYPE_IDENTIFIER),\\n/* harmony export */   \\\"MAX_CACHE_SIZE\\\": () => (/* binding */ MAX_CACHE_SIZE),\\n/* harmony export */   \\\"MAX_PRESIGNED_TTL\\\": () => (/* binding */ MAX_PRESIGNED_TTL),\\n/* harmony export */   \\\"PROXY_HEADER_PATTERN\\\": () => (/* binding */ PROXY_HEADER_PATTERN),\\n/* harmony export */   \\\"REGION_SET_PARAM\\\": () => (/* binding */ REGION_SET_PARAM),\\n/* harmony export */   \\\"SEC_HEADER_PATTERN\\\": () => (/* binding */ SEC_HEADER_PATTERN),\\n/* harmony export */   \\\"SHA256_HEADER\\\": () => (/* binding */ SHA256_HEADER),\\n/* harmony export */   \\\"SIGNATURE_HEADER\\\": () => (/* binding */ SIGNATURE_HEADER),\\n/* harmony export */   \\\"SIGNATURE_QUERY_PARAM\\\": () => (/* binding */ SIGNATURE_QUERY_PARAM),\\n/* harmony export */   \\\"SIGNED_HEADERS_QUERY_PARAM\\\": () => (/* binding */ SIGNED_HEADERS_QUERY_PARAM),\\n/* harmony export */   \\\"TOKEN_HEADER\\\": () => (/* binding */ TOKEN_HEADER),\\n/* harmony export */   \\\"TOKEN_QUERY_PARAM\\\": () => (/* binding */ TOKEN_QUERY_PARAM),\\n/* harmony export */   \\\"UNSIGNABLE_PATTERNS\\\": () => (/* binding */ UNSIGNABLE_PATTERNS),\\n/* harmony export */   \\\"UNSIGNED_PAYLOAD\\\": () => (/* binding */ UNSIGNED_PAYLOAD)\\n/* harmony export */ });\\nconst ALGORITHM_QUERY_PARAM = \\\"X-Amz-Algorithm\\\";\\nconst CREDENTIAL_QUERY_PARAM = \\\"X-Amz-Credential\\\";\\nconst AMZ_DATE_QUERY_PARAM = \\\"X-Amz-Date\\\";\\nconst SIGNED_HEADERS_QUERY_PARAM = \\\"X-Amz-SignedHeaders\\\";\\nconst EXPIRES_QUERY_PARAM = \\\"X-Amz-Expires\\\";\\nconst SIGNATURE_QUERY_PARAM = \\\"X-Amz-Signature\\\";\\nconst TOKEN_QUERY_PARAM = \\\"X-Amz-Security-Token\\\";\\nconst REGION_SET_PARAM = \\\"X-Amz-Region-Set\\\";\\nconst AUTH_HEADER = \\\"authorization\\\";\\nconst AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\\nconst DATE_HEADER = \\\"date\\\";\\nconst GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\\nconst SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\\nconst SHA256_HEADER = \\\"x-amz-content-sha256\\\";\\nconst TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\\nconst HOST_HEADER = \\\"host\\\";\\nconst ALWAYS_UNSIGNABLE_HEADERS = {\\n    authorization: true,\\n    \\\"cache-control\\\": true,\\n    connection: true,\\n    expect: true,\\n    from: true,\\n    \\\"keep-alive\\\": true,\\n    \\\"max-forwards\\\": true,\\n    pragma: true,\\n    referer: true,\\n    te: true,\\n    trailer: true,\\n    \\\"transfer-encoding\\\": true,\\n    upgrade: true,\\n    \\\"user-agent\\\": true,\\n    \\\"x-amzn-trace-id\\\": true,\\n};\\nconst PROXY_HEADER_PATTERN = /^proxy-/;\\nconst SEC_HEADER_PATTERN = /^sec-/;\\nconst UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\\nconst ALGORITHM_IDENTIFIER = \\\"AWS4-HMAC-SHA256\\\";\\nconst ALGORITHM_IDENTIFIER_V4A = \\\"AWS4-ECDSA-P256-SHA256\\\";\\nconst EVENT_ALGORITHM_IDENTIFIER = \\\"AWS4-HMAC-SHA256-PAYLOAD\\\";\\nconst UNSIGNED_PAYLOAD = \\\"UNSIGNED-PAYLOAD\\\";\\nconst MAX_CACHE_SIZE = 50;\\nconst KEY_TYPE_IDENTIFIER = \\\"aws4_request\\\";\\nconst MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"clearCredentialCache\\\": () => (/* binding */ clearCredentialCache),\\n/* harmony export */   \\\"createScope\\\": () => (/* binding */ createScope),\\n/* harmony export */   \\\"getSigningKey\\\": () => (/* binding */ getSigningKey)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ \\\"./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-utf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/index.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n\\n\\n\\nconst signingKeyCache = {};\\nconst cacheQueue = [];\\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${_constants__WEBPACK_IMPORTED_MODULE_2__.KEY_TYPE_IDENTIFIER}`;\\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\\n    const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\\n    const cacheKey = `${shortDate}:${region}:${service}:${(0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_0__.toHex)(credsHash)}:${credentials.sessionToken}`;\\n    if (cacheKey in signingKeyCache) {\\n        return signingKeyCache[cacheKey];\\n    }\\n    cacheQueue.push(cacheKey);\\n    while (cacheQueue.length > _constants__WEBPACK_IMPORTED_MODULE_2__.MAX_CACHE_SIZE) {\\n        delete signingKeyCache[cacheQueue.shift()];\\n    }\\n    let key = `AWS4${credentials.secretAccessKey}`;\\n    for (const signable of [shortDate, region, service, _constants__WEBPACK_IMPORTED_MODULE_2__.KEY_TYPE_IDENTIFIER]) {\\n        key = await hmac(sha256Constructor, key, signable);\\n    }\\n    return (signingKeyCache[cacheKey] = key);\\n};\\nconst clearCredentialCache = () => {\\n    cacheQueue.length = 0;\\n    Object.keys(signingKeyCache).forEach((cacheKey) => {\\n        delete signingKeyCache[cacheKey];\\n    });\\n};\\nconst hmac = (ctor, secret, data) => {\\n    const hash = new ctor(secret);\\n    hash.update((0,_aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_1__.toUint8Array)(data));\\n    return hash.digest();\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getCanonicalHeaders\\\": () => (/* binding */ getCanonicalHeaders)\\n/* harmony export */ });\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n\\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\\n    const canonical = {};\\n    for (const headerName of Object.keys(headers).sort()) {\\n        if (headers[headerName] == undefined) {\\n            continue;\\n        }\\n        const canonicalHeaderName = headerName.toLowerCase();\\n        if (canonicalHeaderName in _constants__WEBPACK_IMPORTED_MODULE_0__.ALWAYS_UNSIGNABLE_HEADERS ||\\n            unsignableHeaders?.has(canonicalHeaderName) ||\\n            _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\\n            _constants__WEBPACK_IMPORTED_MODULE_0__.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\\n            if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\\n                continue;\\n            }\\n        }\\n        canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\\\s+/g, \\\" \\\");\\n    }\\n    return canonical;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getCanonicalQuery\\\": () => (/* binding */ getCanonicalQuery)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/util-uri-escape */ \\\"./node_modules/@aws-sdk/util-uri-escape/dist-es/index.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n\\n\\nconst getCanonicalQuery = ({ query = {} }) => {\\n    const keys = [];\\n    const serialized = {};\\n    for (const key of Object.keys(query).sort()) {\\n        if (key.toLowerCase() === _constants__WEBPACK_IMPORTED_MODULE_1__.SIGNATURE_HEADER) {\\n            continue;\\n        }\\n        keys.push(key);\\n        const value = query[key];\\n        if (typeof value === \\\"string\\\") {\\n            serialized[key] = `${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(key)}=${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(value)}`;\\n        }\\n        else if (Array.isArray(value)) {\\n            serialized[key] = value\\n                .slice(0)\\n                .sort()\\n                .reduce((encoded, value) => encoded.concat([`${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(key)}=${(0,_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_0__.escapeUri)(value)}`]), [])\\n                .join(\\\"&\\\");\\n        }\\n    }\\n    return keys\\n        .map((key) => serialized[key])\\n        .filter((serialized) => serialized)\\n        .join(\\\"&\\\");\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getPayloadHash\\\": () => (/* binding */ getPayloadHash)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/is-array-buffer */ \\\"./node_modules/@aws-sdk/is-array-buffer/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ \\\"./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js\\\");\\n/* harmony import */ var _aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-utf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/index.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n\\n\\n\\n\\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\\n    for (const headerName of Object.keys(headers)) {\\n        if (headerName.toLowerCase() === _constants__WEBPACK_IMPORTED_MODULE_3__.SHA256_HEADER) {\\n            return headers[headerName];\\n        }\\n    }\\n    if (body == undefined) {\\n        return \\\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\";\\n    }\\n    else if (typeof body === \\\"string\\\" || ArrayBuffer.isView(body) || (0,_aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_0__.isArrayBuffer)(body)) {\\n        const hashCtor = new hashConstructor();\\n        hashCtor.update((0,_aws_sdk_util_utf8__WEBPACK_IMPORTED_MODULE_2__.toUint8Array)(body));\\n        return (0,_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__.toHex)(await hashCtor.digest());\\n    }\\n    return _constants__WEBPACK_IMPORTED_MODULE_3__.UNSIGNED_PAYLOAD;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deleteHeader\\\": () => (/* binding */ deleteHeader),\\n/* harmony export */   \\\"getHeaderValue\\\": () => (/* binding */ getHeaderValue),\\n/* harmony export */   \\\"hasHeader\\\": () => (/* binding */ hasHeader)\\n/* harmony export */ });\\nconst hasHeader = (soughtHeader, headers) => {\\n    soughtHeader = soughtHeader.toLowerCase();\\n    for (const headerName of Object.keys(headers)) {\\n        if (soughtHeader === headerName.toLowerCase()) {\\n            return true;\\n        }\\n    }\\n    return false;\\n};\\nconst getHeaderValue = (soughtHeader, headers) => {\\n    soughtHeader = soughtHeader.toLowerCase();\\n    for (const headerName of Object.keys(headers)) {\\n        if (soughtHeader === headerName.toLowerCase()) {\\n            return headers[headerName];\\n        }\\n    }\\n    return undefined;\\n};\\nconst deleteHeader = (soughtHeader, headers) => {\\n    soughtHeader = soughtHeader.toLowerCase();\\n    for (const headerName of Object.keys(headers)) {\\n        if (soughtHeader === headerName.toLowerCase()) {\\n            delete headers[headerName];\\n        }\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/index.js\":\n/*!*************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/index.js ***!\n  \\*************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SignatureV4\\\": () => (/* reexport safe */ _SignatureV4__WEBPACK_IMPORTED_MODULE_0__.SignatureV4),\\n/* harmony export */   \\\"clearCredentialCache\\\": () => (/* reexport safe */ _credentialDerivation__WEBPACK_IMPORTED_MODULE_6__.clearCredentialCache),\\n/* harmony export */   \\\"createScope\\\": () => (/* reexport safe */ _credentialDerivation__WEBPACK_IMPORTED_MODULE_6__.createScope),\\n/* harmony export */   \\\"getCanonicalHeaders\\\": () => (/* reexport safe */ _getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_1__.getCanonicalHeaders),\\n/* harmony export */   \\\"getCanonicalQuery\\\": () => (/* reexport safe */ _getCanonicalQuery__WEBPACK_IMPORTED_MODULE_2__.getCanonicalQuery),\\n/* harmony export */   \\\"getPayloadHash\\\": () => (/* reexport safe */ _getPayloadHash__WEBPACK_IMPORTED_MODULE_3__.getPayloadHash),\\n/* harmony export */   \\\"getSigningKey\\\": () => (/* reexport safe */ _credentialDerivation__WEBPACK_IMPORTED_MODULE_6__.getSigningKey),\\n/* harmony export */   \\\"moveHeadersToQuery\\\": () => (/* reexport safe */ _moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_4__.moveHeadersToQuery),\\n/* harmony export */   \\\"prepareRequest\\\": () => (/* reexport safe */ _prepareRequest__WEBPACK_IMPORTED_MODULE_5__.prepareRequest)\\n/* harmony export */ });\\n/* harmony import */ var _SignatureV4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SignatureV4 */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js\\\");\\n/* harmony import */ var _getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getCanonicalHeaders */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js\\\");\\n/* harmony import */ var _getCanonicalQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getCanonicalQuery */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js\\\");\\n/* harmony import */ var _getPayloadHash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getPayloadHash */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js\\\");\\n/* harmony import */ var _moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./moveHeadersToQuery */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js\\\");\\n/* harmony import */ var _prepareRequest__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./prepareRequest */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js\\\");\\n/* harmony import */ var _credentialDerivation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./credentialDerivation */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"moveHeadersToQuery\\\": () => (/* binding */ moveHeadersToQuery)\\n/* harmony export */ });\\n/* harmony import */ var _cloneRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cloneRequest */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js\\\");\\n\\nconst moveHeadersToQuery = (request, options = {}) => {\\n    const { headers, query = {} } = typeof request.clone === \\\"function\\\" ? request.clone() : (0,_cloneRequest__WEBPACK_IMPORTED_MODULE_0__.cloneRequest)(request);\\n    for (const name of Object.keys(headers)) {\\n        const lname = name.toLowerCase();\\n        if (lname.slice(0, 6) === \\\"x-amz-\\\" && !options.unhoistableHeaders?.has(lname)) {\\n            query[name] = headers[name];\\n            delete headers[name];\\n        }\\n    }\\n    return {\\n        ...request,\\n        headers,\\n        query,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"prepareRequest\\\": () => (/* binding */ prepareRequest)\\n/* harmony export */ });\\n/* harmony import */ var _cloneRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cloneRequest */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/signature-v4/dist-es/constants.js\\\");\\n\\n\\nconst prepareRequest = (request) => {\\n    request = typeof request.clone === \\\"function\\\" ? request.clone() : (0,_cloneRequest__WEBPACK_IMPORTED_MODULE_0__.cloneRequest)(request);\\n    for (const headerName of Object.keys(request.headers)) {\\n        if (_constants__WEBPACK_IMPORTED_MODULE_1__.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\\n            delete request.headers[headerName];\\n        }\\n    }\\n    return request;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"iso8601\\\": () => (/* binding */ iso8601),\\n/* harmony export */   \\\"toDate\\\": () => (/* binding */ toDate)\\n/* harmony export */ });\\nconst iso8601 = (time) => toDate(time)\\n    .toISOString()\\n    .replace(/\\\\.\\\\d{3}Z$/, \\\"Z\\\");\\nconst toDate = (time) => {\\n    if (typeof time === \\\"number\\\") {\\n        return new Date(time * 1000);\\n    }\\n    if (typeof time === \\\"string\\\") {\\n        if (Number(time)) {\\n            return new Date(Number(time) * 1000);\\n        }\\n        return new Date(time);\\n    }\\n    return time;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/NoOpLogger.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/NoOpLogger.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"NoOpLogger\\\": () => (/* binding */ NoOpLogger)\\n/* harmony export */ });\\nclass NoOpLogger {\\n    trace() { }\\n    debug() { }\\n    info() { }\\n    warn() { }\\n    error() { }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/NoOpLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/client.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/client.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Client\\\": () => (/* binding */ Client)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-stack */ \\\"./node_modules/@aws-sdk/middleware-stack/dist-es/index.js\\\");\\n\\nclass Client {\\n    constructor(config) {\\n        this.middlewareStack = (0,_aws_sdk_middleware_stack__WEBPACK_IMPORTED_MODULE_0__.constructStack)();\\n        this.config = config;\\n    }\\n    send(command, optionsOrCb, cb) {\\n        const options = typeof optionsOrCb !== \\\"function\\\" ? optionsOrCb : undefined;\\n        const callback = typeof optionsOrCb === \\\"function\\\" ? optionsOrCb : cb;\\n        const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\\n        if (callback) {\\n            handler(command)\\n                .then((result) => callback(null, result.output), (err) => callback(err))\\n                .catch(() => { });\\n        }\\n        else {\\n            return handler(command).then((result) => result.output);\\n        }\\n    }\\n    destroy() {\\n        if (this.config.requestHandler.destroy)\\n            this.config.requestHandler.destroy();\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/client.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/command.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/command.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Command\\\": () => (/* binding */ Command)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_middleware_stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/middleware-stack */ \\\"./node_modules/@aws-sdk/middleware-stack/dist-es/index.js\\\");\\n\\nclass Command {\\n    constructor() {\\n        this.middlewareStack = (0,_aws_sdk_middleware_stack__WEBPACK_IMPORTED_MODULE_0__.constructStack)();\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/command.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/constants.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/constants.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SENSITIVE_STRING\\\": () => (/* binding */ SENSITIVE_STRING)\\n/* harmony export */ });\\nconst SENSITIVE_STRING = \\\"***SensitiveInformation***\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"dateToUtcString\\\": () => (/* binding */ dateToUtcString),\\n/* harmony export */   \\\"parseEpochTimestamp\\\": () => (/* binding */ parseEpochTimestamp),\\n/* harmony export */   \\\"parseRfc3339DateTime\\\": () => (/* binding */ parseRfc3339DateTime),\\n/* harmony export */   \\\"parseRfc7231DateTime\\\": () => (/* binding */ parseRfc7231DateTime)\\n/* harmony export */ });\\n/* harmony import */ var _parse_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-utils */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js\\\");\\n\\nconst DAYS = [\\\"Sun\\\", \\\"Mon\\\", \\\"Tue\\\", \\\"Wed\\\", \\\"Thu\\\", \\\"Fri\\\", \\\"Sat\\\"];\\nconst MONTHS = [\\\"Jan\\\", \\\"Feb\\\", \\\"Mar\\\", \\\"Apr\\\", \\\"May\\\", \\\"Jun\\\", \\\"Jul\\\", \\\"Aug\\\", \\\"Sep\\\", \\\"Oct\\\", \\\"Nov\\\", \\\"Dec\\\"];\\nfunction dateToUtcString(date) {\\n    const year = date.getUTCFullYear();\\n    const month = date.getUTCMonth();\\n    const dayOfWeek = date.getUTCDay();\\n    const dayOfMonthInt = date.getUTCDate();\\n    const hoursInt = date.getUTCHours();\\n    const minutesInt = date.getUTCMinutes();\\n    const secondsInt = date.getUTCSeconds();\\n    const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\\n    const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\\n    const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\\n    const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\\n    return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\\n}\\nconst RFC3339 = new RegExp(/^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})[tT](\\\\d{2}):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))?[zZ]$/);\\nconst parseRfc3339DateTime = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value !== \\\"string\\\") {\\n        throw new TypeError(\\\"RFC-3339 date-times must be expressed as strings\\\");\\n    }\\n    const match = RFC3339.exec(value);\\n    if (!match) {\\n        throw new TypeError(\\\"Invalid RFC-3339 date-time value\\\");\\n    }\\n    const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\\n    const year = (0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseShort)(stripLeadingZeroes(yearStr));\\n    const month = parseDateValue(monthStr, \\\"month\\\", 1, 12);\\n    const day = parseDateValue(dayStr, \\\"day\\\", 1, 31);\\n    return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\\n};\\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\\\d{4}) (\\\\d{1,2}):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))? GMT$/);\\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\\\d{2}) (\\\\d{1,2}):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))? GMT$/);\\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\\\d{2}) (\\\\d{1,2}):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))? (\\\\d{4})$/);\\nconst parseRfc7231DateTime = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value !== \\\"string\\\") {\\n        throw new TypeError(\\\"RFC-7231 date-times must be expressed as strings\\\");\\n    }\\n    let match = IMF_FIXDATE.exec(value);\\n    if (match) {\\n        const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\\n        return buildDate((0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \\\"day\\\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\\n    }\\n    match = RFC_850_DATE.exec(value);\\n    if (match) {\\n        const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\\n        return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \\\"day\\\", 1, 31), {\\n            hours,\\n            minutes,\\n            seconds,\\n            fractionalMilliseconds,\\n        }));\\n    }\\n    match = ASC_TIME.exec(value);\\n    if (match) {\\n        const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\\n        return buildDate((0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \\\"day\\\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\\n    }\\n    throw new TypeError(\\\"Invalid RFC-7231 date-time value\\\");\\n};\\nconst parseEpochTimestamp = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    let valueAsDouble;\\n    if (typeof value === \\\"number\\\") {\\n        valueAsDouble = value;\\n    }\\n    else if (typeof value === \\\"string\\\") {\\n        valueAsDouble = (0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseDouble)(value);\\n    }\\n    else {\\n        throw new TypeError(\\\"Epoch timestamps must be expressed as floating point numbers or their string representation\\\");\\n    }\\n    if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\\n        throw new TypeError(\\\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\\\");\\n    }\\n    return new Date(Math.round(valueAsDouble * 1000));\\n};\\nconst buildDate = (year, month, day, time) => {\\n    const adjustedMonth = month - 1;\\n    validateDayOfMonth(year, adjustedMonth, day);\\n    return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \\\"hour\\\", 0, 23), parseDateValue(time.minutes, \\\"minute\\\", 0, 59), parseDateValue(time.seconds, \\\"seconds\\\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\\n};\\nconst parseTwoDigitYear = (value) => {\\n    const thisYear = new Date().getUTCFullYear();\\n    const valueInThisCentury = Math.floor(thisYear / 100) * 100 + (0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseShort)(stripLeadingZeroes(value));\\n    if (valueInThisCentury < thisYear) {\\n        return valueInThisCentury + 100;\\n    }\\n    return valueInThisCentury;\\n};\\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\\nconst adjustRfc850Year = (input) => {\\n    if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\\n        return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\\n    }\\n    return input;\\n};\\nconst parseMonthByShortName = (value) => {\\n    const monthIdx = MONTHS.indexOf(value);\\n    if (monthIdx < 0) {\\n        throw new TypeError(`Invalid month: ${value}`);\\n    }\\n    return monthIdx + 1;\\n};\\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\\nconst validateDayOfMonth = (year, month, day) => {\\n    let maxDays = DAYS_IN_MONTH[month];\\n    if (month === 1 && isLeapYear(year)) {\\n        maxDays = 29;\\n    }\\n    if (day > maxDays) {\\n        throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\\n    }\\n};\\nconst isLeapYear = (year) => {\\n    return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\\n};\\nconst parseDateValue = (value, type, lower, upper) => {\\n    const dateVal = (0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseByte)(stripLeadingZeroes(value));\\n    if (dateVal < lower || dateVal > upper) {\\n        throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\\n    }\\n    return dateVal;\\n};\\nconst parseMilliseconds = (value) => {\\n    if (value === null || value === undefined) {\\n        return 0;\\n    }\\n    return (0,_parse_utils__WEBPACK_IMPORTED_MODULE_0__.strictParseFloat32)(\\\"0.\\\" + value) * 1000;\\n};\\nconst stripLeadingZeroes = (value) => {\\n    let idx = 0;\\n    while (idx < value.length - 1 && value.charAt(idx) === \\\"0\\\") {\\n        idx++;\\n    }\\n    if (idx === 0) {\\n        return value;\\n    }\\n    return value.slice(idx);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"throwDefaultError\\\": () => (/* binding */ throwDefaultError)\\n/* harmony export */ });\\n/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exceptions */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js\\\");\\n\\nconst throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\\n    const $metadata = deserializeMetadata(output);\\n    const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \\\"\\\" : undefined;\\n    const response = new exceptionCtor({\\n        name: parsedBody.code || parsedBody.Code || errorCode || statusCode || \\\"UnknownError\\\",\\n        $fault: \\\"client\\\",\\n        $metadata,\\n    });\\n    throw (0,_exceptions__WEBPACK_IMPORTED_MODULE_0__.decorateServiceException)(response, parsedBody);\\n};\\nconst deserializeMetadata = (output) => ({\\n    httpStatusCode: output.statusCode,\\n    requestId: output.headers[\\\"x-amzn-requestid\\\"] ?? output.headers[\\\"x-amzn-request-id\\\"] ?? output.headers[\\\"x-amz-request-id\\\"],\\n    extendedRequestId: output.headers[\\\"x-amz-id-2\\\"],\\n    cfId: output.headers[\\\"x-amz-cf-id\\\"],\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"loadConfigsForDefaultMode\\\": () => (/* binding */ loadConfigsForDefaultMode)\\n/* harmony export */ });\\nconst loadConfigsForDefaultMode = (mode) => {\\n    switch (mode) {\\n        case \\\"standard\\\":\\n            return {\\n                retryMode: \\\"standard\\\",\\n                connectionTimeout: 3100,\\n            };\\n        case \\\"in-region\\\":\\n            return {\\n                retryMode: \\\"standard\\\",\\n                connectionTimeout: 1100,\\n            };\\n        case \\\"cross-region\\\":\\n            return {\\n                retryMode: \\\"standard\\\",\\n                connectionTimeout: 3100,\\n            };\\n        case \\\"mobile\\\":\\n            return {\\n                retryMode: \\\"standard\\\",\\n                connectionTimeout: 30000,\\n            };\\n        default:\\n            return {};\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js ***!\n  \\****************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"emitWarningIfUnsupportedVersion\\\": () => (/* binding */ emitWarningIfUnsupportedVersion)\\n/* harmony export */ });\\nlet warningEmitted = false;\\nconst emitWarningIfUnsupportedVersion = (version) => {\\n    if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\\\".\\\"))) < 14) {\\n        warningEmitted = true;\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ServiceException\\\": () => (/* binding */ ServiceException),\\n/* harmony export */   \\\"decorateServiceException\\\": () => (/* binding */ decorateServiceException)\\n/* harmony export */ });\\nclass ServiceException extends Error {\\n    constructor(options) {\\n        super(options.message);\\n        Object.setPrototypeOf(this, ServiceException.prototype);\\n        this.name = options.name;\\n        this.$fault = options.$fault;\\n        this.$metadata = options.$metadata;\\n    }\\n}\\nconst decorateServiceException = (exception, additions = {}) => {\\n    Object.entries(additions)\\n        .filter(([, v]) => v !== undefined)\\n        .forEach(([k, v]) => {\\n        if (exception[k] == undefined || exception[k] === \\\"\\\") {\\n            exception[k] = v;\\n        }\\n    });\\n    const message = exception.message || exception.Message || \\\"UnknownError\\\";\\n    exception.message = message;\\n    delete exception.Message;\\n    return exception;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"extendedEncodeURIComponent\\\": () => (/* binding */ extendedEncodeURIComponent)\\n/* harmony export */ });\\nfunction extendedEncodeURIComponent(str) {\\n    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\\n        return \\\"%\\\" + c.charCodeAt(0).toString(16).toUpperCase();\\n    });\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getArrayIfSingleItem\\\": () => (/* binding */ getArrayIfSingleItem)\\n/* harmony export */ });\\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getValueFromTextNode\\\": () => (/* binding */ getValueFromTextNode)\\n/* harmony export */ });\\nconst getValueFromTextNode = (obj) => {\\n    const textNodeName = \\\"#text\\\";\\n    for (const key in obj) {\\n        if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\\n            obj[key] = obj[key][textNodeName];\\n        }\\n        else if (typeof obj[key] === \\\"object\\\" && obj[key] !== null) {\\n            obj[key] = getValueFromTextNode(obj[key]);\\n        }\\n    }\\n    return obj;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/index.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/index.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Client\\\": () => (/* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_1__.Client),\\n/* harmony export */   \\\"Command\\\": () => (/* reexport safe */ _command__WEBPACK_IMPORTED_MODULE_2__.Command),\\n/* harmony export */   \\\"LazyJsonString\\\": () => (/* reexport safe */ _lazy_json__WEBPACK_IMPORTED_MODULE_12__.LazyJsonString),\\n/* harmony export */   \\\"NoOpLogger\\\": () => (/* reexport safe */ _NoOpLogger__WEBPACK_IMPORTED_MODULE_0__.NoOpLogger),\\n/* harmony export */   \\\"SENSITIVE_STRING\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_3__.SENSITIVE_STRING),\\n/* harmony export */   \\\"ServiceException\\\": () => (/* reexport safe */ _exceptions__WEBPACK_IMPORTED_MODULE_8__.ServiceException),\\n/* harmony export */   \\\"StringWrapper\\\": () => (/* reexport safe */ _lazy_json__WEBPACK_IMPORTED_MODULE_12__.StringWrapper),\\n/* harmony export */   \\\"convertMap\\\": () => (/* reexport safe */ _object_mapping__WEBPACK_IMPORTED_MODULE_13__.convertMap),\\n/* harmony export */   \\\"dateToUtcString\\\": () => (/* reexport safe */ _date_utils__WEBPACK_IMPORTED_MODULE_4__.dateToUtcString),\\n/* harmony export */   \\\"decorateServiceException\\\": () => (/* reexport safe */ _exceptions__WEBPACK_IMPORTED_MODULE_8__.decorateServiceException),\\n/* harmony export */   \\\"emitWarningIfUnsupportedVersion\\\": () => (/* reexport safe */ _emitWarningIfUnsupportedVersion__WEBPACK_IMPORTED_MODULE_7__.emitWarningIfUnsupportedVersion),\\n/* harmony export */   \\\"expectBoolean\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectBoolean),\\n/* harmony export */   \\\"expectByte\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectByte),\\n/* harmony export */   \\\"expectFloat32\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectFloat32),\\n/* harmony export */   \\\"expectInt\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectInt),\\n/* harmony export */   \\\"expectInt32\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectInt32),\\n/* harmony export */   \\\"expectLong\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectLong),\\n/* harmony export */   \\\"expectNonNull\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectNonNull),\\n/* harmony export */   \\\"expectNumber\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectNumber),\\n/* harmony export */   \\\"expectObject\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectObject),\\n/* harmony export */   \\\"expectShort\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectShort),\\n/* harmony export */   \\\"expectString\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectString),\\n/* harmony export */   \\\"expectUnion\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.expectUnion),\\n/* harmony export */   \\\"extendedEncodeURIComponent\\\": () => (/* reexport safe */ _extended_encode_uri_component__WEBPACK_IMPORTED_MODULE_9__.extendedEncodeURIComponent),\\n/* harmony export */   \\\"getArrayIfSingleItem\\\": () => (/* reexport safe */ _get_array_if_single_item__WEBPACK_IMPORTED_MODULE_10__.getArrayIfSingleItem),\\n/* harmony export */   \\\"getValueFromTextNode\\\": () => (/* reexport safe */ _get_value_from_text_node__WEBPACK_IMPORTED_MODULE_11__.getValueFromTextNode),\\n/* harmony export */   \\\"handleFloat\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.handleFloat),\\n/* harmony export */   \\\"limitedParseDouble\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.limitedParseDouble),\\n/* harmony export */   \\\"limitedParseFloat\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.limitedParseFloat),\\n/* harmony export */   \\\"limitedParseFloat32\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.limitedParseFloat32),\\n/* harmony export */   \\\"loadConfigsForDefaultMode\\\": () => (/* reexport safe */ _defaults_mode__WEBPACK_IMPORTED_MODULE_6__.loadConfigsForDefaultMode),\\n/* harmony export */   \\\"logger\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.logger),\\n/* harmony export */   \\\"map\\\": () => (/* reexport safe */ _object_mapping__WEBPACK_IMPORTED_MODULE_13__.map),\\n/* harmony export */   \\\"parseBoolean\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.parseBoolean),\\n/* harmony export */   \\\"parseEpochTimestamp\\\": () => (/* reexport safe */ _date_utils__WEBPACK_IMPORTED_MODULE_4__.parseEpochTimestamp),\\n/* harmony export */   \\\"parseRfc3339DateTime\\\": () => (/* reexport safe */ _date_utils__WEBPACK_IMPORTED_MODULE_4__.parseRfc3339DateTime),\\n/* harmony export */   \\\"parseRfc7231DateTime\\\": () => (/* reexport safe */ _date_utils__WEBPACK_IMPORTED_MODULE_4__.parseRfc7231DateTime),\\n/* harmony export */   \\\"resolvedPath\\\": () => (/* reexport safe */ _resolve_path__WEBPACK_IMPORTED_MODULE_15__.resolvedPath),\\n/* harmony export */   \\\"serializeFloat\\\": () => (/* reexport safe */ _ser_utils__WEBPACK_IMPORTED_MODULE_16__.serializeFloat),\\n/* harmony export */   \\\"splitEvery\\\": () => (/* reexport safe */ _split_every__WEBPACK_IMPORTED_MODULE_17__.splitEvery),\\n/* harmony export */   \\\"strictParseByte\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseByte),\\n/* harmony export */   \\\"strictParseDouble\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseDouble),\\n/* harmony export */   \\\"strictParseFloat\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseFloat),\\n/* harmony export */   \\\"strictParseFloat32\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseFloat32),\\n/* harmony export */   \\\"strictParseInt\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseInt),\\n/* harmony export */   \\\"strictParseInt32\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseInt32),\\n/* harmony export */   \\\"strictParseLong\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseLong),\\n/* harmony export */   \\\"strictParseShort\\\": () => (/* reexport safe */ _parse_utils__WEBPACK_IMPORTED_MODULE_14__.strictParseShort),\\n/* harmony export */   \\\"throwDefaultError\\\": () => (/* reexport safe */ _default_error_handler__WEBPACK_IMPORTED_MODULE_5__.throwDefaultError)\\n/* harmony export */ });\\n/* harmony import */ var _NoOpLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NoOpLogger */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/NoOpLogger.js\\\");\\n/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./client */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/client.js\\\");\\n/* harmony import */ var _command__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./command */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/command.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/constants.js\\\");\\n/* harmony import */ var _date_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./date-utils */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js\\\");\\n/* harmony import */ var _default_error_handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./default-error-handler */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js\\\");\\n/* harmony import */ var _defaults_mode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./defaults-mode */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js\\\");\\n/* harmony import */ var _emitWarningIfUnsupportedVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./emitWarningIfUnsupportedVersion */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js\\\");\\n/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./exceptions */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js\\\");\\n/* harmony import */ var _extended_encode_uri_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./extended-encode-uri-component */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js\\\");\\n/* harmony import */ var _get_array_if_single_item__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./get-array-if-single-item */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/get-array-if-single-item.js\\\");\\n/* harmony import */ var _get_value_from_text_node__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./get-value-from-text-node */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/get-value-from-text-node.js\\\");\\n/* harmony import */ var _lazy_json__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./lazy-json */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js\\\");\\n/* harmony import */ var _object_mapping__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./object-mapping */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js\\\");\\n/* harmony import */ var _parse_utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./parse-utils */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js\\\");\\n/* harmony import */ var _resolve_path__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./resolve-path */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js\\\");\\n/* harmony import */ var _ser_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ser-utils */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js\\\");\\n/* harmony import */ var _split_every__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./split-every */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/split-every.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"LazyJsonString\\\": () => (/* binding */ LazyJsonString),\\n/* harmony export */   \\\"StringWrapper\\\": () => (/* binding */ StringWrapper)\\n/* harmony export */ });\\nconst StringWrapper = function () {\\n    const Class = Object.getPrototypeOf(this).constructor;\\n    const Constructor = Function.bind.apply(String, [null, ...arguments]);\\n    const instance = new Constructor();\\n    Object.setPrototypeOf(instance, Class.prototype);\\n    return instance;\\n};\\nStringWrapper.prototype = Object.create(String.prototype, {\\n    constructor: {\\n        value: StringWrapper,\\n        enumerable: false,\\n        writable: true,\\n        configurable: true,\\n    },\\n});\\nObject.setPrototypeOf(StringWrapper, String);\\nclass LazyJsonString extends StringWrapper {\\n    deserializeJSON() {\\n        return JSON.parse(super.toString());\\n    }\\n    toJSON() {\\n        return super.toString();\\n    }\\n    static fromObject(object) {\\n        if (object instanceof LazyJsonString) {\\n            return object;\\n        }\\n        else if (object instanceof String || typeof object === \\\"string\\\") {\\n            return new LazyJsonString(object);\\n        }\\n        return new LazyJsonString(JSON.stringify(object));\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"convertMap\\\": () => (/* binding */ convertMap),\\n/* harmony export */   \\\"map\\\": () => (/* binding */ map)\\n/* harmony export */ });\\nfunction map(arg0, arg1, arg2) {\\n    let target;\\n    let filter;\\n    let instructions;\\n    if (typeof arg1 === \\\"undefined\\\" && typeof arg2 === \\\"undefined\\\") {\\n        target = {};\\n        instructions = arg0;\\n    }\\n    else {\\n        target = arg0;\\n        if (typeof arg1 === \\\"function\\\") {\\n            filter = arg1;\\n            instructions = arg2;\\n            return mapWithFilter(target, filter, instructions);\\n        }\\n        else {\\n            instructions = arg1;\\n        }\\n    }\\n    for (const key of Object.keys(instructions)) {\\n        if (!Array.isArray(instructions[key])) {\\n            target[key] = instructions[key];\\n            continue;\\n        }\\n        let [filter, value] = instructions[key];\\n        if (typeof value === \\\"function\\\") {\\n            let _value;\\n            const defaultFilterPassed = filter === undefined && (_value = value()) != null;\\n            const customFilterPassed = (typeof filter === \\\"function\\\" && !!filter(void 0)) || (typeof filter !== \\\"function\\\" && !!filter);\\n            if (defaultFilterPassed) {\\n                target[key] = _value;\\n            }\\n            else if (customFilterPassed) {\\n                target[key] = value();\\n            }\\n        }\\n        else {\\n            const defaultFilterPassed = filter === undefined && value != null;\\n            const customFilterPassed = (typeof filter === \\\"function\\\" && !!filter(value)) || (typeof filter !== \\\"function\\\" && !!filter);\\n            if (defaultFilterPassed || customFilterPassed) {\\n                target[key] = value;\\n            }\\n        }\\n    }\\n    return target;\\n}\\nconst convertMap = (target) => {\\n    const output = {};\\n    for (const [k, v] of Object.entries(target || {})) {\\n        output[k] = [, v];\\n    }\\n    return output;\\n};\\nconst mapWithFilter = (target, filter, instructions) => {\\n    return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\\n        if (Array.isArray(value)) {\\n            _instructions[key] = value;\\n        }\\n        else {\\n            if (typeof value === \\\"function\\\") {\\n                _instructions[key] = [filter, value()];\\n            }\\n            else {\\n                _instructions[key] = [filter, value];\\n            }\\n        }\\n        return _instructions;\\n    }, {}));\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"expectBoolean\\\": () => (/* binding */ expectBoolean),\\n/* harmony export */   \\\"expectByte\\\": () => (/* binding */ expectByte),\\n/* harmony export */   \\\"expectFloat32\\\": () => (/* binding */ expectFloat32),\\n/* harmony export */   \\\"expectInt\\\": () => (/* binding */ expectInt),\\n/* harmony export */   \\\"expectInt32\\\": () => (/* binding */ expectInt32),\\n/* harmony export */   \\\"expectLong\\\": () => (/* binding */ expectLong),\\n/* harmony export */   \\\"expectNonNull\\\": () => (/* binding */ expectNonNull),\\n/* harmony export */   \\\"expectNumber\\\": () => (/* binding */ expectNumber),\\n/* harmony export */   \\\"expectObject\\\": () => (/* binding */ expectObject),\\n/* harmony export */   \\\"expectShort\\\": () => (/* binding */ expectShort),\\n/* harmony export */   \\\"expectString\\\": () => (/* binding */ expectString),\\n/* harmony export */   \\\"expectUnion\\\": () => (/* binding */ expectUnion),\\n/* harmony export */   \\\"handleFloat\\\": () => (/* binding */ handleFloat),\\n/* harmony export */   \\\"limitedParseDouble\\\": () => (/* binding */ limitedParseDouble),\\n/* harmony export */   \\\"limitedParseFloat\\\": () => (/* binding */ limitedParseFloat),\\n/* harmony export */   \\\"limitedParseFloat32\\\": () => (/* binding */ limitedParseFloat32),\\n/* harmony export */   \\\"logger\\\": () => (/* binding */ logger),\\n/* harmony export */   \\\"parseBoolean\\\": () => (/* binding */ parseBoolean),\\n/* harmony export */   \\\"strictParseByte\\\": () => (/* binding */ strictParseByte),\\n/* harmony export */   \\\"strictParseDouble\\\": () => (/* binding */ strictParseDouble),\\n/* harmony export */   \\\"strictParseFloat\\\": () => (/* binding */ strictParseFloat),\\n/* harmony export */   \\\"strictParseFloat32\\\": () => (/* binding */ strictParseFloat32),\\n/* harmony export */   \\\"strictParseInt\\\": () => (/* binding */ strictParseInt),\\n/* harmony export */   \\\"strictParseInt32\\\": () => (/* binding */ strictParseInt32),\\n/* harmony export */   \\\"strictParseLong\\\": () => (/* binding */ strictParseLong),\\n/* harmony export */   \\\"strictParseShort\\\": () => (/* binding */ strictParseShort)\\n/* harmony export */ });\\nconst parseBoolean = (value) => {\\n    switch (value) {\\n        case \\\"true\\\":\\n            return true;\\n        case \\\"false\\\":\\n            return false;\\n        default:\\n            throw new Error(`Unable to parse boolean value \\\"${value}\\\"`);\\n    }\\n};\\nconst expectBoolean = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value === \\\"number\\\") {\\n        if (value === 0 || value === 1) {\\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\\n        }\\n        if (value === 0) {\\n            return false;\\n        }\\n        if (value === 1) {\\n            return true;\\n        }\\n    }\\n    if (typeof value === \\\"string\\\") {\\n        const lower = value.toLowerCase();\\n        if (lower === \\\"false\\\" || lower === \\\"true\\\") {\\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\\n        }\\n        if (lower === \\\"false\\\") {\\n            return false;\\n        }\\n        if (lower === \\\"true\\\") {\\n            return true;\\n        }\\n    }\\n    if (typeof value === \\\"boolean\\\") {\\n        return value;\\n    }\\n    throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\\n};\\nconst expectNumber = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value === \\\"string\\\") {\\n        const parsed = parseFloat(value);\\n        if (!Number.isNaN(parsed)) {\\n            if (String(parsed) !== String(value)) {\\n                logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\\n            }\\n            return parsed;\\n        }\\n    }\\n    if (typeof value === \\\"number\\\") {\\n        return value;\\n    }\\n    throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\\n};\\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\\nconst expectFloat32 = (value) => {\\n    const expected = expectNumber(value);\\n    if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\\n        if (Math.abs(expected) > MAX_FLOAT) {\\n            throw new TypeError(`Expected 32-bit float, got ${value}`);\\n        }\\n    }\\n    return expected;\\n};\\nconst expectLong = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (Number.isInteger(value) && !Number.isNaN(value)) {\\n        return value;\\n    }\\n    throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\\n};\\nconst expectInt = expectLong;\\nconst expectInt32 = (value) => expectSizedInt(value, 32);\\nconst expectShort = (value) => expectSizedInt(value, 16);\\nconst expectByte = (value) => expectSizedInt(value, 8);\\nconst expectSizedInt = (value, size) => {\\n    const expected = expectLong(value);\\n    if (expected !== undefined && castInt(expected, size) !== expected) {\\n        throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\\n    }\\n    return expected;\\n};\\nconst castInt = (value, size) => {\\n    switch (size) {\\n        case 32:\\n            return Int32Array.of(value)[0];\\n        case 16:\\n            return Int16Array.of(value)[0];\\n        case 8:\\n            return Int8Array.of(value)[0];\\n    }\\n};\\nconst expectNonNull = (value, location) => {\\n    if (value === null || value === undefined) {\\n        if (location) {\\n            throw new TypeError(`Expected a non-null value for ${location}`);\\n        }\\n        throw new TypeError(\\\"Expected a non-null value\\\");\\n    }\\n    return value;\\n};\\nconst expectObject = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value === \\\"object\\\" && !Array.isArray(value)) {\\n        return value;\\n    }\\n    const receivedType = Array.isArray(value) ? \\\"array\\\" : typeof value;\\n    throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\\n};\\nconst expectString = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    if (typeof value === \\\"string\\\") {\\n        return value;\\n    }\\n    if ([\\\"boolean\\\", \\\"number\\\", \\\"bigint\\\"].includes(typeof value)) {\\n        logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\\n        return String(value);\\n    }\\n    throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\\n};\\nconst expectUnion = (value) => {\\n    if (value === null || value === undefined) {\\n        return undefined;\\n    }\\n    const asObject = expectObject(value);\\n    const setKeys = Object.entries(asObject)\\n        .filter(([, v]) => v != null)\\n        .map(([k]) => k);\\n    if (setKeys.length === 0) {\\n        throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\\n    }\\n    if (setKeys.length > 1) {\\n        throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\\n    }\\n    return asObject;\\n};\\nconst strictParseDouble = (value) => {\\n    if (typeof value == \\\"string\\\") {\\n        return expectNumber(parseNumber(value));\\n    }\\n    return expectNumber(value);\\n};\\nconst strictParseFloat = strictParseDouble;\\nconst strictParseFloat32 = (value) => {\\n    if (typeof value == \\\"string\\\") {\\n        return expectFloat32(parseNumber(value));\\n    }\\n    return expectFloat32(value);\\n};\\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\\\d*)(?:\\\\.\\\\d+)?(?:[eE][+-]?\\\\d+)?)|(-?Infinity)|(NaN)/g;\\nconst parseNumber = (value) => {\\n    const matches = value.match(NUMBER_REGEX);\\n    if (matches === null || matches[0].length !== value.length) {\\n        throw new TypeError(`Expected real number, got implicit NaN`);\\n    }\\n    return parseFloat(value);\\n};\\nconst limitedParseDouble = (value) => {\\n    if (typeof value == \\\"string\\\") {\\n        return parseFloatString(value);\\n    }\\n    return expectNumber(value);\\n};\\nconst handleFloat = limitedParseDouble;\\nconst limitedParseFloat = limitedParseDouble;\\nconst limitedParseFloat32 = (value) => {\\n    if (typeof value == \\\"string\\\") {\\n        return parseFloatString(value);\\n    }\\n    return expectFloat32(value);\\n};\\nconst parseFloatString = (value) => {\\n    switch (value) {\\n        case \\\"NaN\\\":\\n            return NaN;\\n        case \\\"Infinity\\\":\\n            return Infinity;\\n        case \\\"-Infinity\\\":\\n            return -Infinity;\\n        default:\\n            throw new Error(`Unable to parse float value: ${value}`);\\n    }\\n};\\nconst strictParseLong = (value) => {\\n    if (typeof value === \\\"string\\\") {\\n        return expectLong(parseNumber(value));\\n    }\\n    return expectLong(value);\\n};\\nconst strictParseInt = strictParseLong;\\nconst strictParseInt32 = (value) => {\\n    if (typeof value === \\\"string\\\") {\\n        return expectInt32(parseNumber(value));\\n    }\\n    return expectInt32(value);\\n};\\nconst strictParseShort = (value) => {\\n    if (typeof value === \\\"string\\\") {\\n        return expectShort(parseNumber(value));\\n    }\\n    return expectShort(value);\\n};\\nconst strictParseByte = (value) => {\\n    if (typeof value === \\\"string\\\") {\\n        return expectByte(parseNumber(value));\\n    }\\n    return expectByte(value);\\n};\\nconst stackTraceWarning = (message) => {\\n    return String(new TypeError(message).stack || message)\\n        .split(\\\"\\\\n\\\")\\n        .slice(0, 5)\\n        .filter((s) => !s.includes(\\\"stackTraceWarning\\\"))\\n        .join(\\\"\\\\n\\\");\\n};\\nconst logger = {\\n    warn: console.warn,\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolvedPath\\\": () => (/* binding */ resolvedPath)\\n/* harmony export */ });\\n/* harmony import */ var _extended_encode_uri_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extended-encode-uri-component */ \\\"./node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js\\\");\\n\\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\\n    if (input != null && input[memberName] !== undefined) {\\n        const labelValue = labelValueProvider();\\n        if (labelValue.length <= 0) {\\n            throw new Error(\\\"Empty value provided for input HTTP label: \\\" + memberName + \\\".\\\");\\n        }\\n        resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\\n            ? labelValue\\n                .split(\\\"/\\\")\\n                .map((segment) => (0,_extended_encode_uri_component__WEBPACK_IMPORTED_MODULE_0__.extendedEncodeURIComponent)(segment))\\n                .join(\\\"/\\\")\\n            : (0,_extended_encode_uri_component__WEBPACK_IMPORTED_MODULE_0__.extendedEncodeURIComponent)(labelValue));\\n    }\\n    else {\\n        throw new Error(\\\"No value provided for input HTTP label: \\\" + memberName + \\\".\\\");\\n    }\\n    return resolvedPath;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"serializeFloat\\\": () => (/* binding */ serializeFloat)\\n/* harmony export */ });\\nconst serializeFloat = (value) => {\\n    if (value !== value) {\\n        return \\\"NaN\\\";\\n    }\\n    switch (value) {\\n        case Infinity:\\n            return \\\"Infinity\\\";\\n        case -Infinity:\\n            return \\\"-Infinity\\\";\\n        default:\\n            return value;\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/smithy-client/dist-es/split-every.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/smithy-client/dist-es/split-every.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"splitEvery\\\": () => (/* binding */ splitEvery)\\n/* harmony export */ });\\nfunction splitEvery(value, delimiter, numDelimiters) {\\n    if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\\n        throw new Error(\\\"Invalid number of delimiters (\\\" + numDelimiters + \\\") for splitEvery.\\\");\\n    }\\n    const segments = value.split(delimiter);\\n    if (numDelimiters === 1) {\\n        return segments;\\n    }\\n    const compoundSegments = [];\\n    let currentSegment = \\\"\\\";\\n    for (let i = 0; i < segments.length; i++) {\\n        if (currentSegment === \\\"\\\") {\\n            currentSegment = segments[i];\\n        }\\n        else {\\n            currentSegment += delimiter + segments[i];\\n        }\\n        if ((i + 1) % numDelimiters === 0) {\\n            compoundSegments.push(currentSegment);\\n            currentSegment = \\\"\\\";\\n        }\\n    }\\n    if (currentSegment !== \\\"\\\") {\\n        compoundSegments.push(currentSegment);\\n    }\\n    return compoundSegments;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/smithy-client/dist-es/split-every.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/abort.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/abort.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/abort.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/auth.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/auth.js ***!\n  \\*****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"HttpAuthLocation\\\": () => (/* binding */ HttpAuthLocation)\\n/* harmony export */ });\\nvar HttpAuthLocation;\\n(function (HttpAuthLocation) {\\n    HttpAuthLocation[\\\"HEADER\\\"] = \\\"header\\\";\\n    HttpAuthLocation[\\\"QUERY\\\"] = \\\"query\\\";\\n})(HttpAuthLocation || (HttpAuthLocation = {}));\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/auth.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/checksum.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/checksum.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/checksum.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/client.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/client.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/client.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/command.js\":\n/*!********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/command.js ***!\n  \\********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/command.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/credentials.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/credentials.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/credentials.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/crypto.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/crypto.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/crypto.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/endpoint.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/endpoint.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"EndpointURLScheme\\\": () => (/* binding */ EndpointURLScheme)\\n/* harmony export */ });\\nvar EndpointURLScheme;\\n(function (EndpointURLScheme) {\\n    EndpointURLScheme[\\\"HTTP\\\"] = \\\"http\\\";\\n    EndpointURLScheme[\\\"HTTPS\\\"] = \\\"https\\\";\\n})(EndpointURLScheme || (EndpointURLScheme = {}));\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/endpoint.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/eventStream.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/eventStream.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/eventStream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/http.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/http.js ***!\n  \\*****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/http.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/AnonymousIdentity.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/AnonymousIdentity.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/AnonymousIdentity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/AwsCredentialIdentity.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/AwsCredentialIdentity.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/AwsCredentialIdentity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/Identity.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/Identity.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n;\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/Identity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/LoginIdentity.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/LoginIdentity.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/LoginIdentity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/TokenIdentity.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/TokenIdentity.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/TokenIdentity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/identity/index.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/identity/index.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _AnonymousIdentity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnonymousIdentity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/AnonymousIdentity.js\\\");\\n/* harmony import */ var _AwsCredentialIdentity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AwsCredentialIdentity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/AwsCredentialIdentity.js\\\");\\n/* harmony import */ var _Identity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Identity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/Identity.js\\\");\\n/* harmony import */ var _LoginIdentity__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LoginIdentity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/LoginIdentity.js\\\");\\n/* harmony import */ var _TokenIdentity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TokenIdentity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/TokenIdentity.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/identity/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/index.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/index.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"EndpointURLScheme\\\": () => (/* reexport safe */ _endpoint__WEBPACK_IMPORTED_MODULE_7__.EndpointURLScheme),\\n/* harmony export */   \\\"HttpAuthLocation\\\": () => (/* reexport safe */ _auth__WEBPACK_IMPORTED_MODULE_1__.HttpAuthLocation)\\n/* harmony export */ });\\n/* harmony import */ var _abort__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort */ \\\"./node_modules/@aws-sdk/types/dist-es/abort.js\\\");\\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auth */ \\\"./node_modules/@aws-sdk/types/dist-es/auth.js\\\");\\n/* harmony import */ var _checksum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./checksum */ \\\"./node_modules/@aws-sdk/types/dist-es/checksum.js\\\");\\n/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./client */ \\\"./node_modules/@aws-sdk/types/dist-es/client.js\\\");\\n/* harmony import */ var _command__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./command */ \\\"./node_modules/@aws-sdk/types/dist-es/command.js\\\");\\n/* harmony import */ var _credentials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./credentials */ \\\"./node_modules/@aws-sdk/types/dist-es/credentials.js\\\");\\n/* harmony import */ var _crypto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./crypto */ \\\"./node_modules/@aws-sdk/types/dist-es/crypto.js\\\");\\n/* harmony import */ var _endpoint__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./endpoint */ \\\"./node_modules/@aws-sdk/types/dist-es/endpoint.js\\\");\\n/* harmony import */ var _eventStream__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./eventStream */ \\\"./node_modules/@aws-sdk/types/dist-es/eventStream.js\\\");\\n/* harmony import */ var _http__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./http */ \\\"./node_modules/@aws-sdk/types/dist-es/http.js\\\");\\n/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./identity */ \\\"./node_modules/@aws-sdk/types/dist-es/identity/index.js\\\");\\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./logger */ \\\"./node_modules/@aws-sdk/types/dist-es/logger.js\\\");\\n/* harmony import */ var _middleware__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./middleware */ \\\"./node_modules/@aws-sdk/types/dist-es/middleware.js\\\");\\n/* harmony import */ var _pagination__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pagination */ \\\"./node_modules/@aws-sdk/types/dist-es/pagination.js\\\");\\n/* harmony import */ var _profile__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./profile */ \\\"./node_modules/@aws-sdk/types/dist-es/profile.js\\\");\\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./response */ \\\"./node_modules/@aws-sdk/types/dist-es/response.js\\\");\\n/* harmony import */ var _retry__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./retry */ \\\"./node_modules/@aws-sdk/types/dist-es/retry.js\\\");\\n/* harmony import */ var _serde__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./serde */ \\\"./node_modules/@aws-sdk/types/dist-es/serde.js\\\");\\n/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./shapes */ \\\"./node_modules/@aws-sdk/types/dist-es/shapes.js\\\");\\n/* harmony import */ var _signature__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./signature */ \\\"./node_modules/@aws-sdk/types/dist-es/signature.js\\\");\\n/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./stream */ \\\"./node_modules/@aws-sdk/types/dist-es/stream.js\\\");\\n/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./token */ \\\"./node_modules/@aws-sdk/types/dist-es/token.js\\\");\\n/* harmony import */ var _transfer__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./transfer */ \\\"./node_modules/@aws-sdk/types/dist-es/transfer.js\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./util */ \\\"./node_modules/@aws-sdk/types/dist-es/util.js\\\");\\n/* harmony import */ var _waiter__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./waiter */ \\\"./node_modules/@aws-sdk/types/dist-es/waiter.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/logger.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/logger.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/logger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/middleware.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/middleware.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/middleware.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/pagination.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/pagination.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/pagination.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/profile.js\":\n/*!********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/profile.js ***!\n  \\********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/profile.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/response.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/response.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/response.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/retry.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/retry.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/retry.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/serde.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/serde.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/serde.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/shapes.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/shapes.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/shapes.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/signature.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/signature.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/signature.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/stream.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/stream.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/stream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/token.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/token.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/token.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/transfer.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/transfer.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/transfer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/util.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/util.js ***!\n  \\*****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/util.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/types/dist-es/waiter.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@aws-sdk/types/dist-es/waiter.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/types/dist-es/waiter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/url-parser/dist-es/index.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/url-parser/dist-es/index.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"parseUrl\\\": () => (/* binding */ parseUrl)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_querystring_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/querystring-parser */ \\\"./node_modules/@aws-sdk/querystring-parser/dist-es/index.js\\\");\\n\\nconst parseUrl = (url) => {\\n    if (typeof url === \\\"string\\\") {\\n        return parseUrl(new URL(url));\\n    }\\n    const { hostname, pathname, port, protocol, search } = url;\\n    let query;\\n    if (search) {\\n        query = (0,_aws_sdk_querystring_parser__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(search);\\n    }\\n    return {\\n        hostname,\\n        port: port ? parseInt(port) : undefined,\\n        protocol,\\n        path: pathname,\\n        query,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/url-parser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"alphabetByEncoding\\\": () => (/* binding */ alphabetByEncoding),\\n/* harmony export */   \\\"alphabetByValue\\\": () => (/* binding */ alphabetByValue),\\n/* harmony export */   \\\"bitsPerByte\\\": () => (/* binding */ bitsPerByte),\\n/* harmony export */   \\\"bitsPerLetter\\\": () => (/* binding */ bitsPerLetter),\\n/* harmony export */   \\\"maxLetterValue\\\": () => (/* binding */ maxLetterValue)\\n/* harmony export */ });\\nconst alphabetByEncoding = {};\\nconst alphabetByValue = new Array(64);\\nfor (let i = 0, start = \\\"A\\\".charCodeAt(0), limit = \\\"Z\\\".charCodeAt(0); i + start <= limit; i++) {\\n    const char = String.fromCharCode(i + start);\\n    alphabetByEncoding[char] = i;\\n    alphabetByValue[i] = char;\\n}\\nfor (let i = 0, start = \\\"a\\\".charCodeAt(0), limit = \\\"z\\\".charCodeAt(0); i + start <= limit; i++) {\\n    const char = String.fromCharCode(i + start);\\n    const index = i + 26;\\n    alphabetByEncoding[char] = index;\\n    alphabetByValue[index] = char;\\n}\\nfor (let i = 0; i < 10; i++) {\\n    alphabetByEncoding[i.toString(10)] = i + 52;\\n    const char = i.toString(10);\\n    const index = i + 52;\\n    alphabetByEncoding[char] = index;\\n    alphabetByValue[index] = char;\\n}\\nalphabetByEncoding[\\\"+\\\"] = 62;\\nalphabetByValue[62] = \\\"+\\\";\\nalphabetByEncoding[\\\"/\\\"] = 63;\\nalphabetByValue[63] = \\\"/\\\";\\nconst bitsPerLetter = 6;\\nconst bitsPerByte = 8;\\nconst maxLetterValue = 0b111111;\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-base64/dist-es/fromBase64.browser.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-base64/dist-es/fromBase64.browser.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromBase64\\\": () => (/* binding */ fromBase64)\\n/* harmony export */ });\\n/* harmony import */ var _constants_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.browser */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js\\\");\\n\\nconst fromBase64 = (input) => {\\n    let totalByteLength = (input.length / 4) * 3;\\n    if (input.slice(-2) === \\\"==\\\") {\\n        totalByteLength -= 2;\\n    }\\n    else if (input.slice(-1) === \\\"=\\\") {\\n        totalByteLength--;\\n    }\\n    const out = new ArrayBuffer(totalByteLength);\\n    const dataView = new DataView(out);\\n    for (let i = 0; i < input.length; i += 4) {\\n        let bits = 0;\\n        let bitLength = 0;\\n        for (let j = i, limit = i + 3; j <= limit; j++) {\\n            if (input[j] !== \\\"=\\\") {\\n                if (!(input[j] in _constants_browser__WEBPACK_IMPORTED_MODULE_0__.alphabetByEncoding)) {\\n                    throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\\n                }\\n                bits |= _constants_browser__WEBPACK_IMPORTED_MODULE_0__.alphabetByEncoding[input[j]] << ((limit - j) * _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter);\\n                bitLength += _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter;\\n            }\\n            else {\\n                bits >>= _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter;\\n            }\\n        }\\n        const chunkOffset = (i / 4) * 3;\\n        bits >>= bitLength % _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerByte;\\n        const byteLength = Math.floor(bitLength / _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerByte);\\n        for (let k = 0; k < byteLength; k++) {\\n            const offset = (byteLength - k - 1) * _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerByte;\\n            dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\\n        }\\n    }\\n    return new Uint8Array(out);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-base64/dist-es/fromBase64.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-base64/dist-es/index.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-base64/dist-es/index.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromBase64\\\": () => (/* reexport safe */ _fromBase64__WEBPACK_IMPORTED_MODULE_0__.fromBase64),\\n/* harmony export */   \\\"toBase64\\\": () => (/* reexport safe */ _toBase64__WEBPACK_IMPORTED_MODULE_1__.toBase64)\\n/* harmony export */ });\\n/* harmony import */ var _fromBase64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fromBase64 */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/fromBase64.browser.js\\\");\\n/* harmony import */ var _toBase64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toBase64 */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/toBase64.browser.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-base64/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-base64/dist-es/toBase64.browser.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-base64/dist-es/toBase64.browser.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"toBase64\\\": () => (/* binding */ toBase64)\\n/* harmony export */ });\\n/* harmony import */ var _constants_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.browser */ \\\"./node_modules/@aws-sdk/util-base64/dist-es/constants.browser.js\\\");\\n\\nfunction toBase64(input) {\\n    let str = \\\"\\\";\\n    for (let i = 0; i < input.length; i += 3) {\\n        let bits = 0;\\n        let bitLength = 0;\\n        for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\\n            bits |= input[j] << ((limit - j - 1) * _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerByte);\\n            bitLength += _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerByte;\\n        }\\n        const bitClusterCount = Math.ceil(bitLength / _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter);\\n        bits <<= bitClusterCount * _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter - bitLength;\\n        for (let k = 1; k <= bitClusterCount; k++) {\\n            const offset = (bitClusterCount - k) * _constants_browser__WEBPACK_IMPORTED_MODULE_0__.bitsPerLetter;\\n            str += _constants_browser__WEBPACK_IMPORTED_MODULE_0__.alphabetByValue[(bits & (_constants_browser__WEBPACK_IMPORTED_MODULE_0__.maxLetterValue << offset)) >> offset];\\n        }\\n        str += \\\"==\\\".slice(0, 4 - bitClusterCount);\\n    }\\n    return str;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-base64/dist-es/toBase64.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js ***!\n  \\***************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"calculateBodyLength\\\": () => (/* binding */ calculateBodyLength)\\n/* harmony export */ });\\nconst calculateBodyLength = (body) => {\\n    if (typeof body === \\\"string\\\") {\\n        let len = body.length;\\n        for (let i = len - 1; i >= 0; i--) {\\n            const code = body.charCodeAt(i);\\n            if (code > 0x7f && code <= 0x7ff)\\n                len++;\\n            else if (code > 0x7ff && code <= 0xffff)\\n                len += 2;\\n            if (code >= 0xdc00 && code <= 0xdfff)\\n                i--;\\n        }\\n        return len;\\n    }\\n    else if (typeof body.byteLength === \\\"number\\\") {\\n        return body.byteLength;\\n    }\\n    else if (typeof body.size === \\\"number\\\") {\\n        return body.size;\\n    }\\n    throw new Error(`Body Length computation failed for ${body}`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-body-length-browser/dist-es/index.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-body-length-browser/dist-es/index.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"calculateBodyLength\\\": () => (/* reexport safe */ _calculateBodyLength__WEBPACK_IMPORTED_MODULE_0__.calculateBodyLength)\\n/* harmony export */ });\\n/* harmony import */ var _calculateBodyLength__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calculateBodyLength */ \\\"./node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-body-length-browser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SelectorType\\\": () => (/* binding */ SelectorType),\\n/* harmony export */   \\\"booleanSelector\\\": () => (/* binding */ booleanSelector)\\n/* harmony export */ });\\nvar SelectorType;\\n(function (SelectorType) {\\n    SelectorType[\\\"ENV\\\"] = \\\"env\\\";\\n    SelectorType[\\\"CONFIG\\\"] = \\\"shared config entry\\\";\\n})(SelectorType || (SelectorType = {}));\\nconst booleanSelector = (obj, key, type) => {\\n    if (!(key in obj))\\n        return undefined;\\n    if (obj[key] === \\\"true\\\")\\n        return true;\\n    if (obj[key] === \\\"false\\\")\\n        return false;\\n    throw new Error(`Cannot load ${type} \\\"${key}\\\". Expected \\\"true\\\" or \\\"false\\\", got ${obj[key]}.`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-config-provider/dist-es/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-config-provider/dist-es/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"SelectorType\\\": () => (/* reexport safe */ _booleanSelector__WEBPACK_IMPORTED_MODULE_0__.SelectorType),\\n/* harmony export */   \\\"booleanSelector\\\": () => (/* reexport safe */ _booleanSelector__WEBPACK_IMPORTED_MODULE_0__.booleanSelector)\\n/* harmony export */ });\\n/* harmony import */ var _booleanSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./booleanSelector */ \\\"./node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-config-provider/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DEFAULTS_MODE_OPTIONS\\\": () => (/* binding */ DEFAULTS_MODE_OPTIONS)\\n/* harmony export */ });\\nconst DEFAULTS_MODE_OPTIONS = [\\\"in-region\\\", \\\"cross-region\\\", \\\"mobile\\\", \\\"standard\\\", \\\"legacy\\\"];\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/index.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/index.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveDefaultsModeConfig\\\": () => (/* reexport safe */ _resolveDefaultsModeConfig__WEBPACK_IMPORTED_MODULE_0__.resolveDefaultsModeConfig)\\n/* harmony export */ });\\n/* harmony import */ var _resolveDefaultsModeConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolveDefaultsModeConfig */ \\\"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveDefaultsModeConfig\\\": () => (/* binding */ resolveDefaultsModeConfig)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_property_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/property-provider */ \\\"./node_modules/@aws-sdk/property-provider/dist-es/index.js\\\");\\n/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! bowser */ \\\"./node_modules/bowser/es5.js\\\");\\n/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bowser__WEBPACK_IMPORTED_MODULE_1__);\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js\\\");\\n\\n\\n\\nconst resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => (0,_aws_sdk_property_provider__WEBPACK_IMPORTED_MODULE_0__.memoize)(async () => {\\n    const mode = typeof defaultsMode === \\\"function\\\" ? await defaultsMode() : defaultsMode;\\n    switch (mode?.toLowerCase()) {\\n        case \\\"auto\\\":\\n            return Promise.resolve(isMobileBrowser() ? \\\"mobile\\\" : \\\"standard\\\");\\n        case \\\"mobile\\\":\\n        case \\\"in-region\\\":\\n        case \\\"cross-region\\\":\\n        case \\\"standard\\\":\\n        case \\\"legacy\\\":\\n            return Promise.resolve(mode?.toLocaleLowerCase());\\n        case undefined:\\n            return Promise.resolve(\\\"legacy\\\");\\n        default:\\n            throw new Error(`Invalid parameter for \\\"defaultsMode\\\", expect ${_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULTS_MODE_OPTIONS.join(\\\", \\\")}, got ${mode}`);\\n    }\\n});\\nconst isMobileBrowser = () => {\\n    const parsedUA = typeof window !== \\\"undefined\\\" && window?.navigator?.userAgent\\n        ? bowser__WEBPACK_IMPORTED_MODULE_1___default().parse(window.navigator.userAgent)\\n        : undefined;\\n    const platform = parsedUA?.platform?.type;\\n    return platform === \\\"tablet\\\" || platform === \\\"mobile\\\";\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"debugId\\\": () => (/* binding */ debugId)\\n/* harmony export */ });\\nconst debugId = \\\"endpoints\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"debugId\\\": () => (/* reexport safe */ _debugId__WEBPACK_IMPORTED_MODULE_0__.debugId),\\n/* harmony export */   \\\"toDebugString\\\": () => (/* reexport safe */ _toDebugString__WEBPACK_IMPORTED_MODULE_1__.toDebugString)\\n/* harmony export */ });\\n/* harmony import */ var _debugId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./debugId */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js\\\");\\n/* harmony import */ var _toDebugString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDebugString */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"toDebugString\\\": () => (/* binding */ toDebugString)\\n/* harmony export */ });\\nfunction toDebugString(input) {\\n    if (typeof input !== \\\"object\\\" || input == null) {\\n        return input;\\n    }\\n    if (\\\"ref\\\" in input) {\\n        return `$${toDebugString(input.ref)}`;\\n    }\\n    if (\\\"fn\\\" in input) {\\n        return `${input.fn}(${(input.argv || []).map(toDebugString).join(\\\", \\\")})`;\\n    }\\n    return JSON.stringify(input, null, 2);\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/index.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/index.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"EndpointError\\\": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_2__.EndpointError),\\n/* harmony export */   \\\"partition\\\": () => (/* reexport safe */ _lib_aws_partition__WEBPACK_IMPORTED_MODULE_0__.partition),\\n/* harmony export */   \\\"resolveEndpoint\\\": () => (/* reexport safe */ _resolveEndpoint__WEBPACK_IMPORTED_MODULE_1__.resolveEndpoint)\\n/* harmony export */ });\\n/* harmony import */ var _lib_aws_partition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/aws/partition */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js\\\");\\n/* harmony import */ var _resolveEndpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolveEndpoint */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js\\\");\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/index.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/index.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isVirtualHostableS3Bucket\\\": () => (/* reexport safe */ _isVirtualHostableS3Bucket__WEBPACK_IMPORTED_MODULE_0__.isVirtualHostableS3Bucket),\\n/* harmony export */   \\\"parseArn\\\": () => (/* reexport safe */ _parseArn__WEBPACK_IMPORTED_MODULE_1__.parseArn),\\n/* harmony export */   \\\"partition\\\": () => (/* reexport safe */ _partition__WEBPACK_IMPORTED_MODULE_2__.partition)\\n/* harmony export */ });\\n/* harmony import */ var _isVirtualHostableS3Bucket__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isVirtualHostableS3Bucket */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js\\\");\\n/* harmony import */ var _parseArn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parseArn */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js\\\");\\n/* harmony import */ var _partition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./partition */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isVirtualHostableS3Bucket\\\": () => (/* binding */ isVirtualHostableS3Bucket)\\n/* harmony export */ });\\n/* harmony import */ var _isIpAddress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../isIpAddress */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js\\\");\\n/* harmony import */ var _isValidHostLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../isValidHostLabel */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js\\\");\\n\\n\\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\\n    if (allowSubDomains) {\\n        for (const label of value.split(\\\".\\\")) {\\n            if (!isVirtualHostableS3Bucket(label)) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    if (!(0,_isValidHostLabel__WEBPACK_IMPORTED_MODULE_1__.isValidHostLabel)(value)) {\\n        return false;\\n    }\\n    if (value.length < 3 || value.length > 63) {\\n        return false;\\n    }\\n    if (value !== value.toLowerCase()) {\\n        return false;\\n    }\\n    if ((0,_isIpAddress__WEBPACK_IMPORTED_MODULE_0__.isIpAddress)(value)) {\\n        return false;\\n    }\\n    return true;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"parseArn\\\": () => (/* binding */ parseArn)\\n/* harmony export */ });\\nconst parseArn = (value) => {\\n    const segments = value.split(\\\":\\\");\\n    if (segments.length < 6)\\n        return null;\\n    const [arn, partition, service, region, accountId, ...resourceId] = segments;\\n    if (arn !== \\\"arn\\\" || partition === \\\"\\\" || service === \\\"\\\" || resourceId[0] === \\\"\\\")\\n        return null;\\n    return {\\n        partition,\\n        service,\\n        region,\\n        accountId,\\n        resourceId: resourceId[0].includes(\\\"/\\\") ? resourceId[0].split(\\\"/\\\") : resourceId,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"partition\\\": () => (/* binding */ partition)\\n/* harmony export */ });\\n/* harmony import */ var _partitions_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partitions.json */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json\\\");\\n\\nconst { partitions } = _partitions_json__WEBPACK_IMPORTED_MODULE_0__;\\nconst DEFAULT_PARTITION = partitions.find((partition) => partition.id === \\\"aws\\\");\\nconst partition = (value) => {\\n    for (const partition of partitions) {\\n        const { regions, outputs } = partition;\\n        for (const [region, regionData] of Object.entries(regions)) {\\n            if (region === value) {\\n                return {\\n                    ...outputs,\\n                    ...regionData,\\n                };\\n            }\\n        }\\n    }\\n    for (const partition of partitions) {\\n        const { regionRegex, outputs } = partition;\\n        if (new RegExp(regionRegex).test(value)) {\\n            return {\\n                ...outputs,\\n            };\\n        }\\n    }\\n    if (!DEFAULT_PARTITION) {\\n        throw new Error(\\\"Provided region was not found in the partition array or regex,\\\" +\\n            \\\" and default partition with id 'aws' doesn't exist.\\\");\\n    }\\n    return {\\n        ...DEFAULT_PARTITION.outputs,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"booleanEquals\\\": () => (/* binding */ booleanEquals)\\n/* harmony export */ });\\nconst booleanEquals = (value1, value2) => value1 === value2;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getAttr\\\": () => (/* binding */ getAttr)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _getAttrPathList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getAttrPathList */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js\\\");\\n\\n\\nconst getAttr = (value, path) => (0,_getAttrPathList__WEBPACK_IMPORTED_MODULE_1__.getAttrPathList)(path).reduce((acc, index) => {\\n    if (typeof acc !== \\\"object\\\") {\\n        throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\\n    }\\n    else if (Array.isArray(acc)) {\\n        return acc[parseInt(index)];\\n    }\\n    return acc[index];\\n}, value);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getAttrPathList\\\": () => (/* binding */ getAttrPathList)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n\\nconst getAttrPathList = (path) => {\\n    const parts = path.split(\\\".\\\");\\n    const pathList = [];\\n    for (const part of parts) {\\n        const squareBracketIndex = part.indexOf(\\\"[\\\");\\n        if (squareBracketIndex !== -1) {\\n            if (part.indexOf(\\\"]\\\") !== part.length - 1) {\\n                throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Path: '${path}' does not end with ']'`);\\n            }\\n            const arrayIndex = part.slice(squareBracketIndex + 1, -1);\\n            if (Number.isNaN(parseInt(arrayIndex))) {\\n                throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\\n            }\\n            if (squareBracketIndex !== 0) {\\n                pathList.push(part.slice(0, squareBracketIndex));\\n            }\\n            pathList.push(arrayIndex);\\n        }\\n        else {\\n            pathList.push(part);\\n        }\\n    }\\n    return pathList;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"aws\\\": () => (/* reexport module object */ _aws__WEBPACK_IMPORTED_MODULE_0__),\\n/* harmony export */   \\\"booleanEquals\\\": () => (/* reexport safe */ _booleanEquals__WEBPACK_IMPORTED_MODULE_1__.booleanEquals),\\n/* harmony export */   \\\"getAttr\\\": () => (/* reexport safe */ _getAttr__WEBPACK_IMPORTED_MODULE_2__.getAttr),\\n/* harmony export */   \\\"isSet\\\": () => (/* reexport safe */ _isSet__WEBPACK_IMPORTED_MODULE_3__.isSet),\\n/* harmony export */   \\\"isValidHostLabel\\\": () => (/* reexport safe */ _isValidHostLabel__WEBPACK_IMPORTED_MODULE_4__.isValidHostLabel),\\n/* harmony export */   \\\"not\\\": () => (/* reexport safe */ _not__WEBPACK_IMPORTED_MODULE_5__.not),\\n/* harmony export */   \\\"parseURL\\\": () => (/* reexport safe */ _parseURL__WEBPACK_IMPORTED_MODULE_6__.parseURL),\\n/* harmony export */   \\\"stringEquals\\\": () => (/* reexport safe */ _stringEquals__WEBPACK_IMPORTED_MODULE_7__.stringEquals),\\n/* harmony export */   \\\"substring\\\": () => (/* reexport safe */ _substring__WEBPACK_IMPORTED_MODULE_8__.substring),\\n/* harmony export */   \\\"uriEncode\\\": () => (/* reexport safe */ _uriEncode__WEBPACK_IMPORTED_MODULE_9__.uriEncode)\\n/* harmony export */ });\\n/* harmony import */ var _aws__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./aws */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/index.js\\\");\\n/* harmony import */ var _booleanEquals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./booleanEquals */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js\\\");\\n/* harmony import */ var _getAttr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getAttr */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js\\\");\\n/* harmony import */ var _isSet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSet */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js\\\");\\n/* harmony import */ var _isValidHostLabel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isValidHostLabel */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js\\\");\\n/* harmony import */ var _not__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./not */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js\\\");\\n/* harmony import */ var _parseURL__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parseURL */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js\\\");\\n/* harmony import */ var _stringEquals__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./stringEquals */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js\\\");\\n/* harmony import */ var _substring__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./substring */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js\\\");\\n/* harmony import */ var _uriEncode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./uriEncode */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isIpAddress\\\": () => (/* binding */ isIpAddress)\\n/* harmony export */ });\\nconst IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\\\\\d|1\\\\\\\\d\\\\\\\\d|[1-9]\\\\\\\\d|\\\\\\\\d)(?:\\\\\\\\.(?:25[0-5]|2[0-4]\\\\\\\\d|1\\\\\\\\d\\\\\\\\d|[1-9]\\\\\\\\d|\\\\\\\\d)){3}$`);\\nconst isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\\\"[\\\") && value.endsWith(\\\"]\\\"));\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isSet\\\": () => (/* binding */ isSet)\\n/* harmony export */ });\\nconst isSet = (value) => value != null;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"isValidHostLabel\\\": () => (/* binding */ isValidHostLabel)\\n/* harmony export */ });\\nconst VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\\nconst isValidHostLabel = (value, allowSubDomains = false) => {\\n    if (!allowSubDomains) {\\n        return VALID_HOST_LABEL_REGEX.test(value);\\n    }\\n    const labels = value.split(\\\".\\\");\\n    for (const label of labels) {\\n        if (!isValidHostLabel(label)) {\\n            return false;\\n        }\\n    }\\n    return true;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"not\\\": () => (/* binding */ not)\\n/* harmony export */ });\\nconst not = (value) => !value;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"parseURL\\\": () => (/* binding */ parseURL)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/types */ \\\"./node_modules/@aws-sdk/types/dist-es/index.js\\\");\\n/* harmony import */ var _isIpAddress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isIpAddress */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js\\\");\\n\\n\\nconst DEFAULT_PORTS = {\\n    [_aws_sdk_types__WEBPACK_IMPORTED_MODULE_0__.EndpointURLScheme.HTTP]: 80,\\n    [_aws_sdk_types__WEBPACK_IMPORTED_MODULE_0__.EndpointURLScheme.HTTPS]: 443,\\n};\\nconst parseURL = (value) => {\\n    const whatwgURL = (() => {\\n        try {\\n            if (value instanceof URL) {\\n                return value;\\n            }\\n            if (typeof value === \\\"object\\\" && \\\"hostname\\\" in value) {\\n                const { hostname, port, protocol = \\\"\\\", path = \\\"\\\", query = {} } = value;\\n                const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \\\"\\\"}${path}`);\\n                url.search = Object.entries(query)\\n                    .map(([k, v]) => `${k}=${v}`)\\n                    .join(\\\"&\\\");\\n                return url;\\n            }\\n            return new URL(value);\\n        }\\n        catch (error) {\\n            return null;\\n        }\\n    })();\\n    if (!whatwgURL) {\\n        console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\\n        return null;\\n    }\\n    const urlString = whatwgURL.href;\\n    const { host, hostname, pathname, protocol, search } = whatwgURL;\\n    if (search) {\\n        return null;\\n    }\\n    const scheme = protocol.slice(0, -1);\\n    if (!Object.values(_aws_sdk_types__WEBPACK_IMPORTED_MODULE_0__.EndpointURLScheme).includes(scheme)) {\\n        return null;\\n    }\\n    const isIp = (0,_isIpAddress__WEBPACK_IMPORTED_MODULE_1__.isIpAddress)(hostname);\\n    const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\\n        (typeof value === \\\"string\\\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\\n    const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\\n    return {\\n        scheme,\\n        authority,\\n        path: pathname,\\n        normalizedPath: pathname.endsWith(\\\"/\\\") ? pathname : `${pathname}/`,\\n        isIp,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"stringEquals\\\": () => (/* binding */ stringEquals)\\n/* harmony export */ });\\nconst stringEquals = (value1, value2) => value1 === value2;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"substring\\\": () => (/* binding */ substring)\\n/* harmony export */ });\\nconst substring = (input, start, stop, reverse) => {\\n    if (start >= stop || input.length < stop) {\\n        return null;\\n    }\\n    if (!reverse) {\\n        return input.substring(start, stop);\\n    }\\n    return input.substring(input.length - stop, input.length - start);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"uriEncode\\\": () => (/* binding */ uriEncode)\\n/* harmony export */ });\\nconst uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"resolveEndpoint\\\": () => (/* binding */ resolveEndpoint)\\n/* harmony export */ });\\n/* harmony import */ var _debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./debug */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js\\\");\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/index.js\\\");\\n\\n\\n\\nconst resolveEndpoint = (ruleSetObject, options) => {\\n    const { endpointParams, logger } = options;\\n    const { parameters, rules } = ruleSetObject;\\n    options.logger?.debug?.(_debug__WEBPACK_IMPORTED_MODULE_0__.debugId, `Initial EndpointParams: ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(endpointParams)}`);\\n    const paramsWithDefault = Object.entries(parameters)\\n        .filter(([, v]) => v.default != null)\\n        .map(([k, v]) => [k, v.default]);\\n    if (paramsWithDefault.length > 0) {\\n        for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\\n            endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\\n        }\\n    }\\n    const requiredParams = Object.entries(parameters)\\n        .filter(([, v]) => v.required)\\n        .map(([k]) => k);\\n    for (const requiredParam of requiredParams) {\\n        if (endpointParams[requiredParam] == null) {\\n            throw new _types__WEBPACK_IMPORTED_MODULE_1__.EndpointError(`Missing required parameter: '${requiredParam}'`);\\n        }\\n    }\\n    const endpoint = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.evaluateRules)(rules, { endpointParams, logger, referenceRecord: {} });\\n    if (options.endpointParams?.Endpoint) {\\n        try {\\n            const givenEndpoint = new URL(options.endpointParams.Endpoint);\\n            const { protocol, port } = givenEndpoint;\\n            endpoint.url.protocol = protocol;\\n            endpoint.url.port = port;\\n        }\\n        catch (e) {\\n        }\\n    }\\n    options.logger?.debug?.(_debug__WEBPACK_IMPORTED_MODULE_0__.debugId, `Resolved endpoint: ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(endpoint)}`);\\n    return endpoint;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"EndpointError\\\": () => (/* binding */ EndpointError)\\n/* harmony export */ });\\nclass EndpointError extends Error {\\n    constructor(message) {\\n        super(message);\\n        this.name = \\\"EndpointError\\\";\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"EndpointError\\\": () => (/* reexport safe */ _EndpointError__WEBPACK_IMPORTED_MODULE_0__.EndpointError)\\n/* harmony export */ });\\n/* harmony import */ var _EndpointError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EndpointError */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js\\\");\\n/* harmony import */ var _EndpointRuleObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EndpointRuleObject */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js\\\");\\n/* harmony import */ var _ErrorRuleObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ErrorRuleObject */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js\\\");\\n/* harmony import */ var _RuleSetObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RuleSetObject */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js\\\");\\n/* harmony import */ var _TreeRuleObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TreeRuleObject */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js\\\");\\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"callFunction\\\": () => (/* binding */ callFunction)\\n/* harmony export */ });\\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js\\\");\\n/* harmony import */ var _evaluateExpression__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateExpression */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js\\\");\\n\\n\\nconst callFunction = ({ fn, argv }, options) => {\\n    const evaluatedArgs = argv.map((arg) => [\\\"boolean\\\", \\\"number\\\"].includes(typeof arg) ? arg : (0,_evaluateExpression__WEBPACK_IMPORTED_MODULE_1__.evaluateExpression)(arg, \\\"arg\\\", options));\\n    return fn.split(\\\".\\\").reduce((acc, key) => acc[key], _lib__WEBPACK_IMPORTED_MODULE_0__)(...evaluatedArgs);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateCondition\\\": () => (/* binding */ evaluateCondition)\\n/* harmony export */ });\\n/* harmony import */ var _debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../debug */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js\\\");\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _callFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./callFunction */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js\\\");\\n\\n\\n\\nconst evaluateCondition = ({ assign, ...fnArgs }, options) => {\\n    if (assign && assign in options.referenceRecord) {\\n        throw new _types__WEBPACK_IMPORTED_MODULE_1__.EndpointError(`'${assign}' is already defined in Reference Record.`);\\n    }\\n    const value = (0,_callFunction__WEBPACK_IMPORTED_MODULE_2__.callFunction)(fnArgs, options);\\n    options.logger?.debug?.(_debug__WEBPACK_IMPORTED_MODULE_0__.debugId, `evaluateCondition: ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(fnArgs)} = ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(value)}`);\\n    return {\\n        result: value === \\\"\\\" ? true : !!value,\\n        ...(assign != null && { toAssign: { name: assign, value } }),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateConditions\\\": () => (/* binding */ evaluateConditions)\\n/* harmony export */ });\\n/* harmony import */ var _debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../debug */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js\\\");\\n/* harmony import */ var _evaluateCondition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateCondition */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js\\\");\\n\\n\\nconst evaluateConditions = (conditions = [], options) => {\\n    const conditionsReferenceRecord = {};\\n    for (const condition of conditions) {\\n        const { result, toAssign } = (0,_evaluateCondition__WEBPACK_IMPORTED_MODULE_1__.evaluateCondition)(condition, {\\n            ...options,\\n            referenceRecord: {\\n                ...options.referenceRecord,\\n                ...conditionsReferenceRecord,\\n            },\\n        });\\n        if (!result) {\\n            return { result };\\n        }\\n        if (toAssign) {\\n            conditionsReferenceRecord[toAssign.name] = toAssign.value;\\n            options.logger?.debug?.(_debug__WEBPACK_IMPORTED_MODULE_0__.debugId, `assign: ${toAssign.name} := ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(toAssign.value)}`);\\n        }\\n    }\\n    return { result: true, referenceRecord: conditionsReferenceRecord };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateEndpointRule\\\": () => (/* binding */ evaluateEndpointRule)\\n/* harmony export */ });\\n/* harmony import */ var _debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../debug */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/debug/index.js\\\");\\n/* harmony import */ var _evaluateConditions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateConditions */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js\\\");\\n/* harmony import */ var _getEndpointHeaders__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getEndpointHeaders */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js\\\");\\n/* harmony import */ var _getEndpointProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getEndpointProperties */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js\\\");\\n/* harmony import */ var _getEndpointUrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getEndpointUrl */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js\\\");\\n\\n\\n\\n\\n\\nconst evaluateEndpointRule = (endpointRule, options) => {\\n    const { conditions, endpoint } = endpointRule;\\n    const { result, referenceRecord } = (0,_evaluateConditions__WEBPACK_IMPORTED_MODULE_1__.evaluateConditions)(conditions, options);\\n    if (!result) {\\n        return;\\n    }\\n    const endpointRuleOptions = {\\n        ...options,\\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\\n    };\\n    const { url, properties, headers } = endpoint;\\n    options.logger?.debug?.(_debug__WEBPACK_IMPORTED_MODULE_0__.debugId, `Resolving endpoint from template: ${(0,_debug__WEBPACK_IMPORTED_MODULE_0__.toDebugString)(endpoint)}`);\\n    return {\\n        ...(headers != undefined && {\\n            headers: (0,_getEndpointHeaders__WEBPACK_IMPORTED_MODULE_2__.getEndpointHeaders)(headers, endpointRuleOptions),\\n        }),\\n        ...(properties != undefined && {\\n            properties: (0,_getEndpointProperties__WEBPACK_IMPORTED_MODULE_3__.getEndpointProperties)(properties, endpointRuleOptions),\\n        }),\\n        url: (0,_getEndpointUrl__WEBPACK_IMPORTED_MODULE_4__.getEndpointUrl)(url, endpointRuleOptions),\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateErrorRule\\\": () => (/* binding */ evaluateErrorRule)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _evaluateConditions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateConditions */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js\\\");\\n/* harmony import */ var _evaluateExpression__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./evaluateExpression */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js\\\");\\n\\n\\n\\nconst evaluateErrorRule = (errorRule, options) => {\\n    const { conditions, error } = errorRule;\\n    const { result, referenceRecord } = (0,_evaluateConditions__WEBPACK_IMPORTED_MODULE_1__.evaluateConditions)(conditions, options);\\n    if (!result) {\\n        return;\\n    }\\n    throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError((0,_evaluateExpression__WEBPACK_IMPORTED_MODULE_2__.evaluateExpression)(error, \\\"Error\\\", {\\n        ...options,\\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\\n    }));\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateExpression\\\": () => (/* binding */ evaluateExpression)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _callFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./callFunction */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js\\\");\\n/* harmony import */ var _evaluateTemplate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./evaluateTemplate */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js\\\");\\n/* harmony import */ var _getReferenceValue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getReferenceValue */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js\\\");\\n\\n\\n\\n\\nconst evaluateExpression = (obj, keyName, options) => {\\n    if (typeof obj === \\\"string\\\") {\\n        return (0,_evaluateTemplate__WEBPACK_IMPORTED_MODULE_2__.evaluateTemplate)(obj, options);\\n    }\\n    else if (obj[\\\"fn\\\"]) {\\n        return (0,_callFunction__WEBPACK_IMPORTED_MODULE_1__.callFunction)(obj, options);\\n    }\\n    else if (obj[\\\"ref\\\"]) {\\n        return (0,_getReferenceValue__WEBPACK_IMPORTED_MODULE_3__.getReferenceValue)(obj, options);\\n    }\\n    throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateRules\\\": () => (/* binding */ evaluateRules)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _evaluateEndpointRule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateEndpointRule */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js\\\");\\n/* harmony import */ var _evaluateErrorRule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./evaluateErrorRule */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js\\\");\\n/* harmony import */ var _evaluateTreeRule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./evaluateTreeRule */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js\\\");\\n\\n\\n\\n\\nconst evaluateRules = (rules, options) => {\\n    for (const rule of rules) {\\n        if (rule.type === \\\"endpoint\\\") {\\n            const endpointOrUndefined = (0,_evaluateEndpointRule__WEBPACK_IMPORTED_MODULE_1__.evaluateEndpointRule)(rule, options);\\n            if (endpointOrUndefined) {\\n                return endpointOrUndefined;\\n            }\\n        }\\n        else if (rule.type === \\\"error\\\") {\\n            (0,_evaluateErrorRule__WEBPACK_IMPORTED_MODULE_2__.evaluateErrorRule)(rule, options);\\n        }\\n        else if (rule.type === \\\"tree\\\") {\\n            const endpointOrUndefined = (0,_evaluateTreeRule__WEBPACK_IMPORTED_MODULE_3__.evaluateTreeRule)(rule, options);\\n            if (endpointOrUndefined) {\\n                return endpointOrUndefined;\\n            }\\n        }\\n        else {\\n            throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Unknown endpoint rule: ${rule}`);\\n        }\\n    }\\n    throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Rules evaluation failed`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateTemplate\\\": () => (/* binding */ evaluateTemplate)\\n/* harmony export */ });\\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/index.js\\\");\\n\\nconst evaluateTemplate = (template, options) => {\\n    const evaluatedTemplateArr = [];\\n    const templateContext = {\\n        ...options.endpointParams,\\n        ...options.referenceRecord,\\n    };\\n    let currentIndex = 0;\\n    while (currentIndex < template.length) {\\n        const openingBraceIndex = template.indexOf(\\\"{\\\", currentIndex);\\n        if (openingBraceIndex === -1) {\\n            evaluatedTemplateArr.push(template.slice(currentIndex));\\n            break;\\n        }\\n        evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\\n        const closingBraceIndex = template.indexOf(\\\"}\\\", openingBraceIndex);\\n        if (closingBraceIndex === -1) {\\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex));\\n            break;\\n        }\\n        if (template[openingBraceIndex + 1] === \\\"{\\\" && template[closingBraceIndex + 1] === \\\"}\\\") {\\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\\n            currentIndex = closingBraceIndex + 2;\\n        }\\n        const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\\n        if (parameterName.includes(\\\"#\\\")) {\\n            const [refName, attrName] = parameterName.split(\\\"#\\\");\\n            evaluatedTemplateArr.push((0,_lib__WEBPACK_IMPORTED_MODULE_0__.getAttr)(templateContext[refName], attrName));\\n        }\\n        else {\\n            evaluatedTemplateArr.push(templateContext[parameterName]);\\n        }\\n        currentIndex = closingBraceIndex + 1;\\n    }\\n    return evaluatedTemplateArr.join(\\\"\\\");\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateTreeRule\\\": () => (/* binding */ evaluateTreeRule)\\n/* harmony export */ });\\n/* harmony import */ var _evaluateConditions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./evaluateConditions */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js\\\");\\n/* harmony import */ var _evaluateRules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateRules */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js\\\");\\n\\n\\nconst evaluateTreeRule = (treeRule, options) => {\\n    const { conditions, rules } = treeRule;\\n    const { result, referenceRecord } = (0,_evaluateConditions__WEBPACK_IMPORTED_MODULE_0__.evaluateConditions)(conditions, options);\\n    if (!result) {\\n        return;\\n    }\\n    return (0,_evaluateRules__WEBPACK_IMPORTED_MODULE_1__.evaluateRules)(rules, {\\n        ...options,\\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\\n    });\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointHeaders\\\": () => (/* binding */ getEndpointHeaders)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _evaluateExpression__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateExpression */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js\\\");\\n\\n\\nconst getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\\n    ...acc,\\n    [headerKey]: headerVal.map((headerValEntry) => {\\n        const processedExpr = (0,_evaluateExpression__WEBPACK_IMPORTED_MODULE_1__.evaluateExpression)(headerValEntry, \\\"Header value entry\\\", options);\\n        if (typeof processedExpr !== \\\"string\\\") {\\n            throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\\n        }\\n        return processedExpr;\\n    }),\\n}), {});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointProperties\\\": () => (/* binding */ getEndpointProperties)\\n/* harmony export */ });\\n/* harmony import */ var _getEndpointProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getEndpointProperty */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js\\\");\\n\\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\\n    ...acc,\\n    [propertyKey]: (0,_getEndpointProperty__WEBPACK_IMPORTED_MODULE_0__.getEndpointProperty)(propertyVal, options),\\n}), {});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointProperty\\\": () => (/* binding */ getEndpointProperty)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _evaluateTemplate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateTemplate */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js\\\");\\n/* harmony import */ var _getEndpointProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getEndpointProperties */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js\\\");\\n\\n\\n\\nconst getEndpointProperty = (property, options) => {\\n    if (Array.isArray(property)) {\\n        return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\\n    }\\n    switch (typeof property) {\\n        case \\\"string\\\":\\n            return (0,_evaluateTemplate__WEBPACK_IMPORTED_MODULE_1__.evaluateTemplate)(property, options);\\n        case \\\"object\\\":\\n            if (property === null) {\\n                throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Unexpected endpoint property: ${property}`);\\n            }\\n            return (0,_getEndpointProperties__WEBPACK_IMPORTED_MODULE_2__.getEndpointProperties)(property, options);\\n        case \\\"boolean\\\":\\n            return property;\\n        default:\\n            throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Unexpected endpoint property type: ${typeof property}`);\\n    }\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getEndpointUrl\\\": () => (/* binding */ getEndpointUrl)\\n/* harmony export */ });\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js\\\");\\n/* harmony import */ var _evaluateExpression__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evaluateExpression */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js\\\");\\n\\n\\nconst getEndpointUrl = (endpointUrl, options) => {\\n    const expression = (0,_evaluateExpression__WEBPACK_IMPORTED_MODULE_1__.evaluateExpression)(endpointUrl, \\\"Endpoint URL\\\", options);\\n    if (typeof expression === \\\"string\\\") {\\n        try {\\n            return new URL(expression);\\n        }\\n        catch (error) {\\n            console.error(`Failed to construct URL with ${expression}`, error);\\n            throw error;\\n        }\\n    }\\n    throw new _types__WEBPACK_IMPORTED_MODULE_0__.EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getReferenceValue\\\": () => (/* binding */ getReferenceValue)\\n/* harmony export */ });\\nconst getReferenceValue = ({ ref }, options) => {\\n    const referenceRecord = {\\n        ...options.endpointParams,\\n        ...options.referenceRecord,\\n    };\\n    return referenceRecord[ref];\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/utils/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"evaluateRules\\\": () => (/* reexport safe */ _evaluateRules__WEBPACK_IMPORTED_MODULE_0__.evaluateRules)\\n/* harmony export */ });\\n/* harmony import */ var _evaluateRules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./evaluateRules */ \\\"./node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/utils/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromHex\\\": () => (/* binding */ fromHex),\\n/* harmony export */   \\\"toHex\\\": () => (/* binding */ toHex)\\n/* harmony export */ });\\nconst SHORT_TO_HEX = {};\\nconst HEX_TO_SHORT = {};\\nfor (let i = 0; i < 256; i++) {\\n    let encodedByte = i.toString(16).toLowerCase();\\n    if (encodedByte.length === 1) {\\n        encodedByte = `0${encodedByte}`;\\n    }\\n    SHORT_TO_HEX[i] = encodedByte;\\n    HEX_TO_SHORT[encodedByte] = i;\\n}\\nfunction fromHex(encoded) {\\n    if (encoded.length % 2 !== 0) {\\n        throw new Error(\\\"Hex encoded strings must have an even number length\\\");\\n    }\\n    const out = new Uint8Array(encoded.length / 2);\\n    for (let i = 0; i < encoded.length; i += 2) {\\n        const encodedByte = encoded.slice(i, i + 2).toLowerCase();\\n        if (encodedByte in HEX_TO_SHORT) {\\n            out[i / 2] = HEX_TO_SHORT[encodedByte];\\n        }\\n        else {\\n            throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\\n        }\\n    }\\n    return out;\\n}\\nfunction toHex(bytes) {\\n    let out = \\\"\\\";\\n    for (let i = 0; i < bytes.byteLength; i++) {\\n        out += SHORT_TO_HEX[bytes[i]];\\n    }\\n    return out;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-locate-window/dist-es/index.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-locate-window/dist-es/index.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"locateWindow\\\": () => (/* binding */ locateWindow)\\n/* harmony export */ });\\nconst fallbackWindow = {};\\nfunction locateWindow() {\\n    if (typeof window !== \\\"undefined\\\") {\\n        return window;\\n    }\\n    else if (typeof self !== \\\"undefined\\\") {\\n        return self;\\n    }\\n    return fallbackWindow;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-locate-window/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-middleware/dist-es/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-middleware/dist-es/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"normalizeProvider\\\": () => (/* reexport safe */ _normalizeProvider__WEBPACK_IMPORTED_MODULE_0__.normalizeProvider)\\n/* harmony export */ });\\n/* harmony import */ var _normalizeProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalizeProvider */ \\\"./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js\\\");\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-middleware/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"normalizeProvider\\\": () => (/* binding */ normalizeProvider)\\n/* harmony export */ });\\nconst normalizeProvider = (input) => {\\n    if (typeof input === \\\"function\\\")\\n        return input;\\n    const promisified = Promise.resolve(input);\\n    return () => promisified;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/AdaptiveRetryStrategy.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/AdaptiveRetryStrategy.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AdaptiveRetryStrategy\\\": () => (/* binding */ AdaptiveRetryStrategy)\\n/* harmony export */ });\\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/config.js\\\");\\n/* harmony import */ var _DefaultRateLimiter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DefaultRateLimiter */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js\\\");\\n/* harmony import */ var _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./StandardRetryStrategy */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js\\\");\\n\\n\\n\\nclass AdaptiveRetryStrategy {\\n    constructor(maxAttemptsProvider, options) {\\n        this.maxAttemptsProvider = maxAttemptsProvider;\\n        this.mode = _config__WEBPACK_IMPORTED_MODULE_0__.RETRY_MODES.ADAPTIVE;\\n        const { rateLimiter } = options ?? {};\\n        this.rateLimiter = rateLimiter ?? new _DefaultRateLimiter__WEBPACK_IMPORTED_MODULE_1__.DefaultRateLimiter();\\n        this.standardRetryStrategy = new _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_2__.StandardRetryStrategy(maxAttemptsProvider);\\n    }\\n    async acquireInitialRetryToken(retryTokenScope) {\\n        await this.rateLimiter.getSendToken();\\n        return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\\n    }\\n    async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\\n        this.rateLimiter.updateClientSendingRate(errorInfo);\\n        return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\\n    }\\n    recordSuccess(token) {\\n        this.rateLimiter.updateClientSendingRate({});\\n        this.standardRetryStrategy.recordSuccess(token);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/AdaptiveRetryStrategy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DefaultRateLimiter\\\": () => (/* binding */ DefaultRateLimiter)\\n/* harmony export */ });\\n/* harmony import */ var _aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-sdk/service-error-classification */ \\\"./node_modules/@aws-sdk/service-error-classification/dist-es/index.js\\\");\\n\\nclass DefaultRateLimiter {\\n    constructor(options) {\\n        this.currentCapacity = 0;\\n        this.enabled = false;\\n        this.lastMaxRate = 0;\\n        this.measuredTxRate = 0;\\n        this.requestCount = 0;\\n        this.lastTimestamp = 0;\\n        this.timeWindow = 0;\\n        this.beta = options?.beta ?? 0.7;\\n        this.minCapacity = options?.minCapacity ?? 1;\\n        this.minFillRate = options?.minFillRate ?? 0.5;\\n        this.scaleConstant = options?.scaleConstant ?? 0.4;\\n        this.smooth = options?.smooth ?? 0.8;\\n        const currentTimeInSeconds = this.getCurrentTimeInSeconds();\\n        this.lastThrottleTime = currentTimeInSeconds;\\n        this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\\n        this.fillRate = this.minFillRate;\\n        this.maxCapacity = this.minCapacity;\\n    }\\n    getCurrentTimeInSeconds() {\\n        return Date.now() / 1000;\\n    }\\n    async getSendToken() {\\n        return this.acquireTokenBucket(1);\\n    }\\n    async acquireTokenBucket(amount) {\\n        if (!this.enabled) {\\n            return;\\n        }\\n        this.refillTokenBucket();\\n        if (amount > this.currentCapacity) {\\n            const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\\n            await new Promise((resolve) => setTimeout(resolve, delay));\\n        }\\n        this.currentCapacity = this.currentCapacity - amount;\\n    }\\n    refillTokenBucket() {\\n        const timestamp = this.getCurrentTimeInSeconds();\\n        if (!this.lastTimestamp) {\\n            this.lastTimestamp = timestamp;\\n            return;\\n        }\\n        const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\\n        this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\\n        this.lastTimestamp = timestamp;\\n    }\\n    updateClientSendingRate(response) {\\n        let calculatedRate;\\n        this.updateMeasuredRate();\\n        if ((0,_aws_sdk_service_error_classification__WEBPACK_IMPORTED_MODULE_0__.isThrottlingError)(response)) {\\n            const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\\n            this.lastMaxRate = rateToUse;\\n            this.calculateTimeWindow();\\n            this.lastThrottleTime = this.getCurrentTimeInSeconds();\\n            calculatedRate = this.cubicThrottle(rateToUse);\\n            this.enableTokenBucket();\\n        }\\n        else {\\n            this.calculateTimeWindow();\\n            calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\\n        }\\n        const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\\n        this.updateTokenBucketRate(newRate);\\n    }\\n    calculateTimeWindow() {\\n        this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\\n    }\\n    cubicThrottle(rateToUse) {\\n        return this.getPrecise(rateToUse * this.beta);\\n    }\\n    cubicSuccess(timestamp) {\\n        return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\\n    }\\n    enableTokenBucket() {\\n        this.enabled = true;\\n    }\\n    updateTokenBucketRate(newRate) {\\n        this.refillTokenBucket();\\n        this.fillRate = Math.max(newRate, this.minFillRate);\\n        this.maxCapacity = Math.max(newRate, this.minCapacity);\\n        this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\\n    }\\n    updateMeasuredRate() {\\n        const t = this.getCurrentTimeInSeconds();\\n        const timeBucket = Math.floor(t * 2) / 2;\\n        this.requestCount++;\\n        if (timeBucket > this.lastTxRateBucket) {\\n            const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\\n            this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\\n            this.requestCount = 0;\\n            this.lastTxRateBucket = timeBucket;\\n        }\\n    }\\n    getPrecise(num) {\\n        return parseFloat(num.toFixed(8));\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"StandardRetryStrategy\\\": () => (/* binding */ StandardRetryStrategy)\\n/* harmony export */ });\\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/config.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/constants.js\\\");\\n/* harmony import */ var _defaultRetryToken__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultRetryToken */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryToken.js\\\");\\n\\n\\n\\nclass StandardRetryStrategy {\\n    constructor(maxAttemptsProvider) {\\n        this.maxAttemptsProvider = maxAttemptsProvider;\\n        this.mode = _config__WEBPACK_IMPORTED_MODULE_0__.RETRY_MODES.STANDARD;\\n        this.retryToken = (0,_defaultRetryToken__WEBPACK_IMPORTED_MODULE_2__.getDefaultRetryToken)(_constants__WEBPACK_IMPORTED_MODULE_1__.INITIAL_RETRY_TOKENS, _constants__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_RETRY_DELAY_BASE);\\n        this.maxAttemptsProvider = maxAttemptsProvider;\\n    }\\n    async acquireInitialRetryToken(retryTokenScope) {\\n        return this.retryToken;\\n    }\\n    async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\\n        const maxAttempts = await this.getMaxAttempts();\\n        if (this.shouldRetry(tokenToRenew, errorInfo, maxAttempts)) {\\n            tokenToRenew.getRetryTokenCount(errorInfo);\\n            return tokenToRenew;\\n        }\\n        throw new Error(\\\"No retry token available\\\");\\n    }\\n    recordSuccess(token) {\\n        this.retryToken.releaseRetryTokens(token.getLastRetryCost());\\n    }\\n    async getMaxAttempts() {\\n        let maxAttempts;\\n        try {\\n            return await this.maxAttemptsProvider();\\n        }\\n        catch (error) {\\n            console.warn(`Max attempts provider could not resolve. Using default of ${_config__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MAX_ATTEMPTS}`);\\n            return _config__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MAX_ATTEMPTS;\\n        }\\n    }\\n    shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\\n        const attempts = tokenToRenew.getRetryCount();\\n        return (attempts < maxAttempts &&\\n            tokenToRenew.hasRetryTokens(errorInfo.errorType) &&\\n            this.isRetryableError(errorInfo.errorType));\\n    }\\n    isRetryableError(errorType) {\\n        return errorType === \\\"THROTTLING\\\" || errorType === \\\"TRANSIENT\\\";\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/config.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/config.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DEFAULT_MAX_ATTEMPTS\\\": () => (/* binding */ DEFAULT_MAX_ATTEMPTS),\\n/* harmony export */   \\\"DEFAULT_RETRY_MODE\\\": () => (/* binding */ DEFAULT_RETRY_MODE),\\n/* harmony export */   \\\"RETRY_MODES\\\": () => (/* binding */ RETRY_MODES)\\n/* harmony export */ });\\nvar RETRY_MODES;\\n(function (RETRY_MODES) {\\n    RETRY_MODES[\\\"STANDARD\\\"] = \\\"standard\\\";\\n    RETRY_MODES[\\\"ADAPTIVE\\\"] = \\\"adaptive\\\";\\n})(RETRY_MODES || (RETRY_MODES = {}));\\nconst DEFAULT_MAX_ATTEMPTS = 3;\\nconst DEFAULT_RETRY_MODE = \\\"STANDARD\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/config.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/constants.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/constants.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"DEFAULT_RETRY_DELAY_BASE\\\": () => (/* binding */ DEFAULT_RETRY_DELAY_BASE),\\n/* harmony export */   \\\"INITIAL_RETRY_TOKENS\\\": () => (/* binding */ INITIAL_RETRY_TOKENS),\\n/* harmony export */   \\\"INVOCATION_ID_HEADER\\\": () => (/* binding */ INVOCATION_ID_HEADER),\\n/* harmony export */   \\\"MAXIMUM_RETRY_DELAY\\\": () => (/* binding */ MAXIMUM_RETRY_DELAY),\\n/* harmony export */   \\\"NO_RETRY_INCREMENT\\\": () => (/* binding */ NO_RETRY_INCREMENT),\\n/* harmony export */   \\\"REQUEST_HEADER\\\": () => (/* binding */ REQUEST_HEADER),\\n/* harmony export */   \\\"RETRY_COST\\\": () => (/* binding */ RETRY_COST),\\n/* harmony export */   \\\"THROTTLING_RETRY_DELAY_BASE\\\": () => (/* binding */ THROTTLING_RETRY_DELAY_BASE),\\n/* harmony export */   \\\"TIMEOUT_RETRY_COST\\\": () => (/* binding */ TIMEOUT_RETRY_COST)\\n/* harmony export */ });\\nconst DEFAULT_RETRY_DELAY_BASE = 100;\\nconst MAXIMUM_RETRY_DELAY = 20 * 1000;\\nconst THROTTLING_RETRY_DELAY_BASE = 500;\\nconst INITIAL_RETRY_TOKENS = 500;\\nconst RETRY_COST = 5;\\nconst TIMEOUT_RETRY_COST = 10;\\nconst NO_RETRY_INCREMENT = 1;\\nconst INVOCATION_ID_HEADER = \\\"amz-sdk-invocation-id\\\";\\nconst REQUEST_HEADER = \\\"amz-sdk-request\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryBackoffStrategy.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryBackoffStrategy.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getDefaultRetryBackoffStrategy\\\": () => (/* binding */ getDefaultRetryBackoffStrategy)\\n/* harmony export */ });\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/constants.js\\\");\\n\\nconst getDefaultRetryBackoffStrategy = () => {\\n    let delayBase = _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_RETRY_DELAY_BASE;\\n    const computeNextBackoffDelay = (attempts) => {\\n        return Math.floor(Math.min(_constants__WEBPACK_IMPORTED_MODULE_0__.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\\n    };\\n    const setDelayBase = (delay) => {\\n        delayBase = delay;\\n    };\\n    return {\\n        computeNextBackoffDelay,\\n        setDelayBase,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryBackoffStrategy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryToken.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryToken.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"getDefaultRetryToken\\\": () => (/* binding */ getDefaultRetryToken)\\n/* harmony export */ });\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/constants.js\\\");\\n/* harmony import */ var _defaultRetryBackoffStrategy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultRetryBackoffStrategy */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryBackoffStrategy.js\\\");\\n\\n\\nconst getDefaultRetryToken = (initialRetryTokens, initialRetryDelay, initialRetryCount, options) => {\\n    const MAX_CAPACITY = initialRetryTokens;\\n    const retryCost = options?.retryCost ?? _constants__WEBPACK_IMPORTED_MODULE_0__.RETRY_COST;\\n    const timeoutRetryCost = options?.timeoutRetryCost ?? _constants__WEBPACK_IMPORTED_MODULE_0__.TIMEOUT_RETRY_COST;\\n    const retryBackoffStrategy = options?.retryBackoffStrategy ?? (0,_defaultRetryBackoffStrategy__WEBPACK_IMPORTED_MODULE_1__.getDefaultRetryBackoffStrategy)();\\n    let availableCapacity = initialRetryTokens;\\n    let retryDelay = Math.min(_constants__WEBPACK_IMPORTED_MODULE_0__.MAXIMUM_RETRY_DELAY, initialRetryDelay);\\n    let lastRetryCost = undefined;\\n    let retryCount = initialRetryCount ?? 0;\\n    const getCapacityAmount = (errorType) => (errorType === \\\"TRANSIENT\\\" ? timeoutRetryCost : retryCost);\\n    const getRetryCount = () => retryCount;\\n    const getRetryDelay = () => retryDelay;\\n    const getLastRetryCost = () => lastRetryCost;\\n    const hasRetryTokens = (errorType) => getCapacityAmount(errorType) <= availableCapacity;\\n    const getRetryTokenCount = (errorInfo) => {\\n        const errorType = errorInfo.errorType;\\n        if (!hasRetryTokens(errorType)) {\\n            throw new Error(\\\"No retry token available\\\");\\n        }\\n        const capacityAmount = getCapacityAmount(errorType);\\n        const delayBase = errorType === \\\"THROTTLING\\\" ? _constants__WEBPACK_IMPORTED_MODULE_0__.THROTTLING_RETRY_DELAY_BASE : _constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_RETRY_DELAY_BASE;\\n        retryBackoffStrategy.setDelayBase(delayBase);\\n        const delayFromErrorType = retryBackoffStrategy.computeNextBackoffDelay(retryCount);\\n        if (errorInfo.retryAfterHint) {\\n            const delayFromRetryAfterHint = errorInfo.retryAfterHint.getTime() - Date.now();\\n            retryDelay = Math.max(delayFromRetryAfterHint || 0, delayFromErrorType);\\n        }\\n        else {\\n            retryDelay = delayFromErrorType;\\n        }\\n        retryCount++;\\n        lastRetryCost = capacityAmount;\\n        availableCapacity -= capacityAmount;\\n        return capacityAmount;\\n    };\\n    const releaseRetryTokens = (releaseAmount) => {\\n        availableCapacity += releaseAmount ?? _constants__WEBPACK_IMPORTED_MODULE_0__.NO_RETRY_INCREMENT;\\n        availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\\n    };\\n    return {\\n        getRetryCount,\\n        getRetryDelay,\\n        getLastRetryCost,\\n        hasRetryTokens,\\n        getRetryTokenCount,\\n        releaseRetryTokens,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/defaultRetryToken.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/index.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/index.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AdaptiveRetryStrategy\\\": () => (/* reexport safe */ _AdaptiveRetryStrategy__WEBPACK_IMPORTED_MODULE_0__.AdaptiveRetryStrategy),\\n/* harmony export */   \\\"DEFAULT_MAX_ATTEMPTS\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_MAX_ATTEMPTS),\\n/* harmony export */   \\\"DEFAULT_RETRY_DELAY_BASE\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_RETRY_DELAY_BASE),\\n/* harmony export */   \\\"DEFAULT_RETRY_MODE\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_RETRY_MODE),\\n/* harmony export */   \\\"DefaultRateLimiter\\\": () => (/* reexport safe */ _DefaultRateLimiter__WEBPACK_IMPORTED_MODULE_1__.DefaultRateLimiter),\\n/* harmony export */   \\\"INITIAL_RETRY_TOKENS\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.INITIAL_RETRY_TOKENS),\\n/* harmony export */   \\\"INVOCATION_ID_HEADER\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.INVOCATION_ID_HEADER),\\n/* harmony export */   \\\"MAXIMUM_RETRY_DELAY\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.MAXIMUM_RETRY_DELAY),\\n/* harmony export */   \\\"NO_RETRY_INCREMENT\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.NO_RETRY_INCREMENT),\\n/* harmony export */   \\\"REQUEST_HEADER\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.REQUEST_HEADER),\\n/* harmony export */   \\\"RETRY_COST\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.RETRY_COST),\\n/* harmony export */   \\\"RETRY_MODES\\\": () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.RETRY_MODES),\\n/* harmony export */   \\\"StandardRetryStrategy\\\": () => (/* reexport safe */ _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_2__.StandardRetryStrategy),\\n/* harmony export */   \\\"THROTTLING_RETRY_DELAY_BASE\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.THROTTLING_RETRY_DELAY_BASE),\\n/* harmony export */   \\\"TIMEOUT_RETRY_COST\\\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.TIMEOUT_RETRY_COST)\\n/* harmony export */ });\\n/* harmony import */ var _AdaptiveRetryStrategy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdaptiveRetryStrategy */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/AdaptiveRetryStrategy.js\\\");\\n/* harmony import */ var _DefaultRateLimiter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DefaultRateLimiter */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/DefaultRateLimiter.js\\\");\\n/* harmony import */ var _StandardRetryStrategy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./StandardRetryStrategy */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/StandardRetryStrategy.js\\\");\\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/config.js\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/constants.js\\\");\\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./types */ \\\"./node_modules/@aws-sdk/util-retry/dist-es/types.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-retry/dist-es/types.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-retry/dist-es/types.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-retry/dist-es/types.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri-path.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri-path.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"escapeUriPath\\\": () => (/* binding */ escapeUriPath)\\n/* harmony export */ });\\n/* harmony import */ var _escape_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./escape-uri */ \\\"./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js\\\");\\n\\nconst escapeUriPath = (uri) => uri.split(\\\"/\\\").map(_escape_uri__WEBPACK_IMPORTED_MODULE_0__.escapeUri).join(\\\"/\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri-path.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"escapeUri\\\": () => (/* binding */ escapeUri)\\n/* harmony export */ });\\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-uri-escape/dist-es/index.js\":\n/*!****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-uri-escape/dist-es/index.js ***!\n  \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"escapeUri\\\": () => (/* reexport safe */ _escape_uri__WEBPACK_IMPORTED_MODULE_0__.escapeUri),\\n/* harmony export */   \\\"escapeUriPath\\\": () => (/* reexport safe */ _escape_uri_path__WEBPACK_IMPORTED_MODULE_1__.escapeUriPath)\\n/* harmony export */ });\\n/* harmony import */ var _escape_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./escape-uri */ \\\"./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js\\\");\\n/* harmony import */ var _escape_uri_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./escape-uri-path */ \\\"./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri-path.js\\\");\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-uri-escape/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"defaultUserAgent\\\": () => (/* binding */ defaultUserAgent)\\n/* harmony export */ });\\n/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bowser */ \\\"./node_modules/bowser/es5.js\\\");\\n/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bowser__WEBPACK_IMPORTED_MODULE_0__);\\n\\nconst defaultUserAgent = ({ serviceId, clientVersion }) => async () => {\\n    const parsedUA = typeof window !== \\\"undefined\\\" && window?.navigator?.userAgent\\n        ? bowser__WEBPACK_IMPORTED_MODULE_0___default().parse(window.navigator.userAgent)\\n        : undefined;\\n    const sections = [\\n        [\\\"aws-sdk-js\\\", clientVersion],\\n        [`os/${parsedUA?.os?.name || \\\"other\\\"}`, parsedUA?.os?.version],\\n        [\\\"lang/js\\\"],\\n        [\\\"md/browser\\\", `${parsedUA?.browser?.name ?? \\\"unknown\\\"}_${parsedUA?.browser?.version ?? \\\"unknown\\\"}`],\\n    ];\\n    if (serviceId) {\\n        sections.push([`api/${serviceId}`, clientVersion]);\\n    }\\n    return sections;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromUtf8\\\": () => (/* binding */ fromUtf8),\\n/* harmony export */   \\\"toUtf8\\\": () => (/* binding */ toUtf8)\\n/* harmony export */ });\\n/* harmony import */ var _pureJs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pureJs */ \\\"./node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js\\\");\\n/* harmony import */ var _whatwgEncodingApi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./whatwgEncodingApi */ \\\"./node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js\\\");\\n\\n\\nconst fromUtf8 = (input) => typeof TextEncoder === \\\"function\\\" ? (0,_whatwgEncodingApi__WEBPACK_IMPORTED_MODULE_1__.fromUtf8)(input) : (0,_pureJs__WEBPACK_IMPORTED_MODULE_0__.fromUtf8)(input);\\nconst toUtf8 = (input) => typeof TextDecoder === \\\"function\\\" ? (0,_whatwgEncodingApi__WEBPACK_IMPORTED_MODULE_1__.toUtf8)(input) : (0,_pureJs__WEBPACK_IMPORTED_MODULE_0__.toUtf8)(input);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromUtf8\\\": () => (/* binding */ fromUtf8),\\n/* harmony export */   \\\"toUtf8\\\": () => (/* binding */ toUtf8)\\n/* harmony export */ });\\nconst fromUtf8 = (input) => {\\n    const bytes = [];\\n    for (let i = 0, len = input.length; i < len; i++) {\\n        const value = input.charCodeAt(i);\\n        if (value < 0x80) {\\n            bytes.push(value);\\n        }\\n        else if (value < 0x800) {\\n            bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\\n        }\\n        else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\\n            const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\\n            bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\\n        }\\n        else {\\n            bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\\n        }\\n    }\\n    return Uint8Array.from(bytes);\\n};\\nconst toUtf8 = (input) => {\\n    let decoded = \\\"\\\";\\n    for (let i = 0, len = input.length; i < len; i++) {\\n        const byte = input[i];\\n        if (byte < 0x80) {\\n            decoded += String.fromCharCode(byte);\\n        }\\n        else if (0b11000000 <= byte && byte < 0b11100000) {\\n            const nextByte = input[++i];\\n            decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\\n        }\\n        else if (0b11110000 <= byte && byte < 0b101101101) {\\n            const surrogatePair = [byte, input[++i], input[++i], input[++i]];\\n            const encoded = \\\"%\\\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\\\"%\\\");\\n            decoded += decodeURIComponent(encoded);\\n        }\\n        else {\\n            decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\\n        }\\n    }\\n    return decoded;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromUtf8\\\": () => (/* binding */ fromUtf8),\\n/* harmony export */   \\\"toUtf8\\\": () => (/* binding */ toUtf8)\\n/* harmony export */ });\\nfunction fromUtf8(input) {\\n    return new TextEncoder().encode(input);\\n}\\nfunction toUtf8(input) {\\n    return new TextDecoder(\\\"utf-8\\\").decode(input);\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromUtf8\\\": () => (/* binding */ fromUtf8)\\n/* harmony export */ });\\nconst fromUtf8 = (input) => new TextEncoder().encode(input);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8/dist-es/index.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8/dist-es/index.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"fromUtf8\\\": () => (/* reexport safe */ _fromUtf8__WEBPACK_IMPORTED_MODULE_0__.fromUtf8),\\n/* harmony export */   \\\"toUint8Array\\\": () => (/* reexport safe */ _toUint8Array__WEBPACK_IMPORTED_MODULE_1__.toUint8Array),\\n/* harmony export */   \\\"toUtf8\\\": () => (/* reexport safe */ _toUtf8__WEBPACK_IMPORTED_MODULE_2__.toUtf8)\\n/* harmony export */ });\\n/* harmony import */ var _fromUtf8__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fromUtf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js\\\");\\n/* harmony import */ var _toUint8Array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toUint8Array */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js\\\");\\n/* harmony import */ var _toUtf8__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toUtf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js\\\");\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8/dist-es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"toUint8Array\\\": () => (/* binding */ toUint8Array)\\n/* harmony export */ });\\n/* harmony import */ var _fromUtf8__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fromUtf8 */ \\\"./node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js\\\");\\n\\nconst toUint8Array = (data) => {\\n    if (typeof data === \\\"string\\\") {\\n        return (0,_fromUtf8__WEBPACK_IMPORTED_MODULE_0__.fromUtf8)(data);\\n    }\\n    if (ArrayBuffer.isView(data)) {\\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\\n    }\\n    return new Uint8Array(data);\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"toUtf8\\\": () => (/* binding */ toUtf8)\\n/* harmony export */ });\\nconst toUtf8 = (input) => new TextDecoder(\\\"utf-8\\\").decode(input);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/aspromise/index.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/@protobufjs/aspromise/index.js ***!\n  \\*****************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\r\\nmodule.exports = asPromise;\\r\\n\\r\\n/**\\r\\n * Callback as used by {@link util.asPromise}.\\r\\n * @typedef asPromiseCallback\\r\\n * @type {function}\\r\\n * @param {Error|null} error Error, if any\\r\\n * @param {...*} params Additional arguments\\r\\n * @returns {undefined}\\r\\n */\\r\\n\\r\\n/**\\r\\n * Returns a promise from a node-style callback function.\\r\\n * @memberof util\\r\\n * @param {asPromiseCallback} fn Function to call\\r\\n * @param {*} ctx Function context\\r\\n * @param {...*} params Function arguments\\r\\n * @returns {Promise<*>} Promisified function\\r\\n */\\r\\nfunction asPromise(fn, ctx/*, varargs */) {\\r\\n    var params  = new Array(arguments.length - 1),\\r\\n        offset  = 0,\\r\\n        index   = 2,\\r\\n        pending = true;\\r\\n    while (index < arguments.length)\\r\\n        params[offset++] = arguments[index++];\\r\\n    return new Promise(function executor(resolve, reject) {\\r\\n        params[offset] = function callback(err/*, varargs */) {\\r\\n            if (pending) {\\r\\n                pending = false;\\r\\n                if (err)\\r\\n                    reject(err);\\r\\n                else {\\r\\n                    var params = new Array(arguments.length - 1),\\r\\n                        offset = 0;\\r\\n                    while (offset < params.length)\\r\\n                        params[offset++] = arguments[offset];\\r\\n                    resolve.apply(null, params);\\r\\n                }\\r\\n            }\\r\\n        };\\r\\n        try {\\r\\n            fn.apply(ctx || null, params);\\r\\n        } catch (err) {\\r\\n            if (pending) {\\r\\n                pending = false;\\r\\n                reject(err);\\r\\n            }\\r\\n        }\\r\\n    });\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/aspromise/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/base64/index.js\":\n/*!**************************************************!*\\\n  !*** ./node_modules/@protobufjs/base64/index.js ***!\n  \\**************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\r\\n\\r\\n/**\\r\\n * A minimal base64 implementation for number arrays.\\r\\n * @memberof util\\r\\n * @namespace\\r\\n */\\r\\nvar base64 = exports;\\r\\n\\r\\n/**\\r\\n * Calculates the byte length of a base64 encoded string.\\r\\n * @param {string} string Base64 encoded string\\r\\n * @returns {number} Byte length\\r\\n */\\r\\nbase64.length = function length(string) {\\r\\n    var p = string.length;\\r\\n    if (!p)\\r\\n        return 0;\\r\\n    var n = 0;\\r\\n    while (--p % 4 > 1 && string.charAt(p) === \\\"=\\\")\\r\\n        ++n;\\r\\n    return Math.ceil(string.length * 3) / 4 - n;\\r\\n};\\r\\n\\r\\n// Base64 encoding table\\r\\nvar b64 = new Array(64);\\r\\n\\r\\n// Base64 decoding table\\r\\nvar s64 = new Array(123);\\r\\n\\r\\n// 65..90, 97..122, 48..57, 43, 47\\r\\nfor (var i = 0; i < 64;)\\r\\n    s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\\r\\n\\r\\n/**\\r\\n * Encodes a buffer to a base64 encoded string.\\r\\n * @param {Uint8Array} buffer Source buffer\\r\\n * @param {number} start Source start\\r\\n * @param {number} end Source end\\r\\n * @returns {string} Base64 encoded string\\r\\n */\\r\\nbase64.encode = function encode(buffer, start, end) {\\r\\n    var parts = null,\\r\\n        chunk = [];\\r\\n    var i = 0, // output index\\r\\n        j = 0, // goto index\\r\\n        t;     // temporary\\r\\n    while (start < end) {\\r\\n        var b = buffer[start++];\\r\\n        switch (j) {\\r\\n            case 0:\\r\\n                chunk[i++] = b64[b >> 2];\\r\\n                t = (b & 3) << 4;\\r\\n                j = 1;\\r\\n                break;\\r\\n            case 1:\\r\\n                chunk[i++] = b64[t | b >> 4];\\r\\n                t = (b & 15) << 2;\\r\\n                j = 2;\\r\\n                break;\\r\\n            case 2:\\r\\n                chunk[i++] = b64[t | b >> 6];\\r\\n                chunk[i++] = b64[b & 63];\\r\\n                j = 0;\\r\\n                break;\\r\\n        }\\r\\n        if (i > 8191) {\\r\\n            (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\\r\\n            i = 0;\\r\\n        }\\r\\n    }\\r\\n    if (j) {\\r\\n        chunk[i++] = b64[t];\\r\\n        chunk[i++] = 61;\\r\\n        if (j === 1)\\r\\n            chunk[i++] = 61;\\r\\n    }\\r\\n    if (parts) {\\r\\n        if (i)\\r\\n            parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\\r\\n        return parts.join(\\\"\\\");\\r\\n    }\\r\\n    return String.fromCharCode.apply(String, chunk.slice(0, i));\\r\\n};\\r\\n\\r\\nvar invalidEncoding = \\\"invalid encoding\\\";\\r\\n\\r\\n/**\\r\\n * Decodes a base64 encoded string to a buffer.\\r\\n * @param {string} string Source string\\r\\n * @param {Uint8Array} buffer Destination buffer\\r\\n * @param {number} offset Destination offset\\r\\n * @returns {number} Number of bytes written\\r\\n * @throws {Error} If encoding is invalid\\r\\n */\\r\\nbase64.decode = function decode(string, buffer, offset) {\\r\\n    var start = offset;\\r\\n    var j = 0, // goto index\\r\\n        t;     // temporary\\r\\n    for (var i = 0; i < string.length;) {\\r\\n        var c = string.charCodeAt(i++);\\r\\n        if (c === 61 && j > 1)\\r\\n            break;\\r\\n        if ((c = s64[c]) === undefined)\\r\\n            throw Error(invalidEncoding);\\r\\n        switch (j) {\\r\\n            case 0:\\r\\n                t = c;\\r\\n                j = 1;\\r\\n                break;\\r\\n            case 1:\\r\\n                buffer[offset++] = t << 2 | (c & 48) >> 4;\\r\\n                t = c;\\r\\n                j = 2;\\r\\n                break;\\r\\n            case 2:\\r\\n                buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\\r\\n                t = c;\\r\\n                j = 3;\\r\\n                break;\\r\\n            case 3:\\r\\n                buffer[offset++] = (t & 3) << 6 | c;\\r\\n                j = 0;\\r\\n                break;\\r\\n        }\\r\\n    }\\r\\n    if (j === 1)\\r\\n        throw Error(invalidEncoding);\\r\\n    return offset - start;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Tests if the specified string appears to be base64 encoded.\\r\\n * @param {string} string String to test\\r\\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\\r\\n */\\r\\nbase64.test = function test(string) {\\r\\n    return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\\r\\n};\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/base64/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/eventemitter/index.js\":\n/*!********************************************************!*\\\n  !*** ./node_modules/@protobufjs/eventemitter/index.js ***!\n  \\********************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\r\\nmodule.exports = EventEmitter;\\r\\n\\r\\n/**\\r\\n * Constructs a new event emitter instance.\\r\\n * @classdesc A minimal event emitter.\\r\\n * @memberof util\\r\\n * @constructor\\r\\n */\\r\\nfunction EventEmitter() {\\r\\n\\r\\n    /**\\r\\n     * Registered listeners.\\r\\n     * @type {Object.<string,*>}\\r\\n     * @private\\r\\n     */\\r\\n    this._listeners = {};\\r\\n}\\r\\n\\r\\n/**\\r\\n * Registers an event listener.\\r\\n * @param {string} evt Event name\\r\\n * @param {function} fn Listener\\r\\n * @param {*} [ctx] Listener context\\r\\n * @returns {util.EventEmitter} `this`\\r\\n */\\r\\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\\r\\n    (this._listeners[evt] || (this._listeners[evt] = [])).push({\\r\\n        fn  : fn,\\r\\n        ctx : ctx || this\\r\\n    });\\r\\n    return this;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Removes an event listener or any matching listeners if arguments are omitted.\\r\\n * @param {string} [evt] Event name. Removes all listeners if omitted.\\r\\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\\r\\n * @returns {util.EventEmitter} `this`\\r\\n */\\r\\nEventEmitter.prototype.off = function off(evt, fn) {\\r\\n    if (evt === undefined)\\r\\n        this._listeners = {};\\r\\n    else {\\r\\n        if (fn === undefined)\\r\\n            this._listeners[evt] = [];\\r\\n        else {\\r\\n            var listeners = this._listeners[evt];\\r\\n            for (var i = 0; i < listeners.length;)\\r\\n                if (listeners[i].fn === fn)\\r\\n                    listeners.splice(i, 1);\\r\\n                else\\r\\n                    ++i;\\r\\n        }\\r\\n    }\\r\\n    return this;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Emits an event by calling its listeners with the specified arguments.\\r\\n * @param {string} evt Event name\\r\\n * @param {...*} args Arguments\\r\\n * @returns {util.EventEmitter} `this`\\r\\n */\\r\\nEventEmitter.prototype.emit = function emit(evt) {\\r\\n    var listeners = this._listeners[evt];\\r\\n    if (listeners) {\\r\\n        var args = [],\\r\\n            i = 1;\\r\\n        for (; i < arguments.length;)\\r\\n            args.push(arguments[i++]);\\r\\n        for (i = 0; i < listeners.length;)\\r\\n            listeners[i].fn.apply(listeners[i++].ctx, args);\\r\\n    }\\r\\n    return this;\\r\\n};\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/eventemitter/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/float/index.js\":\n/*!*************************************************!*\\\n  !*** ./node_modules/@protobufjs/float/index.js ***!\n  \\*************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\r\\n\\r\\nmodule.exports = factory(factory);\\r\\n\\r\\n/**\\r\\n * Reads / writes floats / doubles from / to buffers.\\r\\n * @name util.float\\r\\n * @namespace\\r\\n */\\r\\n\\r\\n/**\\r\\n * Writes a 32 bit float to a buffer using little endian byte order.\\r\\n * @name util.float.writeFloatLE\\r\\n * @function\\r\\n * @param {number} val Value to write\\r\\n * @param {Uint8Array} buf Target buffer\\r\\n * @param {number} pos Target buffer offset\\r\\n * @returns {undefined}\\r\\n */\\r\\n\\r\\n/**\\r\\n * Writes a 32 bit float to a buffer using big endian byte order.\\r\\n * @name util.float.writeFloatBE\\r\\n * @function\\r\\n * @param {number} val Value to write\\r\\n * @param {Uint8Array} buf Target buffer\\r\\n * @param {number} pos Target buffer offset\\r\\n * @returns {undefined}\\r\\n */\\r\\n\\r\\n/**\\r\\n * Reads a 32 bit float from a buffer using little endian byte order.\\r\\n * @name util.float.readFloatLE\\r\\n * @function\\r\\n * @param {Uint8Array} buf Source buffer\\r\\n * @param {number} pos Source buffer offset\\r\\n * @returns {number} Value read\\r\\n */\\r\\n\\r\\n/**\\r\\n * Reads a 32 bit float from a buffer using big endian byte order.\\r\\n * @name util.float.readFloatBE\\r\\n * @function\\r\\n * @param {Uint8Array} buf Source buffer\\r\\n * @param {number} pos Source buffer offset\\r\\n * @returns {number} Value read\\r\\n */\\r\\n\\r\\n/**\\r\\n * Writes a 64 bit double to a buffer using little endian byte order.\\r\\n * @name util.float.writeDoubleLE\\r\\n * @function\\r\\n * @param {number} val Value to write\\r\\n * @param {Uint8Array} buf Target buffer\\r\\n * @param {number} pos Target buffer offset\\r\\n * @returns {undefined}\\r\\n */\\r\\n\\r\\n/**\\r\\n * Writes a 64 bit double to a buffer using big endian byte order.\\r\\n * @name util.float.writeDoubleBE\\r\\n * @function\\r\\n * @param {number} val Value to write\\r\\n * @param {Uint8Array} buf Target buffer\\r\\n * @param {number} pos Target buffer offset\\r\\n * @returns {undefined}\\r\\n */\\r\\n\\r\\n/**\\r\\n * Reads a 64 bit double from a buffer using little endian byte order.\\r\\n * @name util.float.readDoubleLE\\r\\n * @function\\r\\n * @param {Uint8Array} buf Source buffer\\r\\n * @param {number} pos Source buffer offset\\r\\n * @returns {number} Value read\\r\\n */\\r\\n\\r\\n/**\\r\\n * Reads a 64 bit double from a buffer using big endian byte order.\\r\\n * @name util.float.readDoubleBE\\r\\n * @function\\r\\n * @param {Uint8Array} buf Source buffer\\r\\n * @param {number} pos Source buffer offset\\r\\n * @returns {number} Value read\\r\\n */\\r\\n\\r\\n// Factory function for the purpose of node-based testing in modified global environments\\r\\nfunction factory(exports) {\\r\\n\\r\\n    // float: typed array\\r\\n    if (typeof Float32Array !== \\\"undefined\\\") (function() {\\r\\n\\r\\n        var f32 = new Float32Array([ -0 ]),\\r\\n            f8b = new Uint8Array(f32.buffer),\\r\\n            le  = f8b[3] === 128;\\r\\n\\r\\n        function writeFloat_f32_cpy(val, buf, pos) {\\r\\n            f32[0] = val;\\r\\n            buf[pos    ] = f8b[0];\\r\\n            buf[pos + 1] = f8b[1];\\r\\n            buf[pos + 2] = f8b[2];\\r\\n            buf[pos + 3] = f8b[3];\\r\\n        }\\r\\n\\r\\n        function writeFloat_f32_rev(val, buf, pos) {\\r\\n            f32[0] = val;\\r\\n            buf[pos    ] = f8b[3];\\r\\n            buf[pos + 1] = f8b[2];\\r\\n            buf[pos + 2] = f8b[1];\\r\\n            buf[pos + 3] = f8b[0];\\r\\n        }\\r\\n\\r\\n        /* istanbul ignore next */\\r\\n        exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\\r\\n        /* istanbul ignore next */\\r\\n        exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\\r\\n\\r\\n        function readFloat_f32_cpy(buf, pos) {\\r\\n            f8b[0] = buf[pos    ];\\r\\n            f8b[1] = buf[pos + 1];\\r\\n            f8b[2] = buf[pos + 2];\\r\\n            f8b[3] = buf[pos + 3];\\r\\n            return f32[0];\\r\\n        }\\r\\n\\r\\n        function readFloat_f32_rev(buf, pos) {\\r\\n            f8b[3] = buf[pos    ];\\r\\n            f8b[2] = buf[pos + 1];\\r\\n            f8b[1] = buf[pos + 2];\\r\\n            f8b[0] = buf[pos + 3];\\r\\n            return f32[0];\\r\\n        }\\r\\n\\r\\n        /* istanbul ignore next */\\r\\n        exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\\r\\n        /* istanbul ignore next */\\r\\n        exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\\r\\n\\r\\n    // float: ieee754\\r\\n    })(); else (function() {\\r\\n\\r\\n        function writeFloat_ieee754(writeUint, val, buf, pos) {\\r\\n            var sign = val < 0 ? 1 : 0;\\r\\n            if (sign)\\r\\n                val = -val;\\r\\n            if (val === 0)\\r\\n                writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\\r\\n            else if (isNaN(val))\\r\\n                writeUint(2143289344, buf, pos);\\r\\n            else if (val > 3.4028234663852886e+38) // +-Infinity\\r\\n                writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\\r\\n            else if (val < 1.1754943508222875e-38) // denormal\\r\\n                writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\\r\\n            else {\\r\\n                var exponent = Math.floor(Math.log(val) / Math.LN2),\\r\\n                    mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\\r\\n                writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\\r\\n            }\\r\\n        }\\r\\n\\r\\n        exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\\r\\n        exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\\r\\n\\r\\n        function readFloat_ieee754(readUint, buf, pos) {\\r\\n            var uint = readUint(buf, pos),\\r\\n                sign = (uint >> 31) * 2 + 1,\\r\\n                exponent = uint >>> 23 & 255,\\r\\n                mantissa = uint & 8388607;\\r\\n            return exponent === 255\\r\\n                ? mantissa\\r\\n                ? NaN\\r\\n                : sign * Infinity\\r\\n                : exponent === 0 // denormal\\r\\n                ? sign * 1.401298464324817e-45 * mantissa\\r\\n                : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\\r\\n        }\\r\\n\\r\\n        exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\\r\\n        exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\\r\\n\\r\\n    })();\\r\\n\\r\\n    // double: typed array\\r\\n    if (typeof Float64Array !== \\\"undefined\\\") (function() {\\r\\n\\r\\n        var f64 = new Float64Array([-0]),\\r\\n            f8b = new Uint8Array(f64.buffer),\\r\\n            le  = f8b[7] === 128;\\r\\n\\r\\n        function writeDouble_f64_cpy(val, buf, pos) {\\r\\n            f64[0] = val;\\r\\n            buf[pos    ] = f8b[0];\\r\\n            buf[pos + 1] = f8b[1];\\r\\n            buf[pos + 2] = f8b[2];\\r\\n            buf[pos + 3] = f8b[3];\\r\\n            buf[pos + 4] = f8b[4];\\r\\n            buf[pos + 5] = f8b[5];\\r\\n            buf[pos + 6] = f8b[6];\\r\\n            buf[pos + 7] = f8b[7];\\r\\n        }\\r\\n\\r\\n        function writeDouble_f64_rev(val, buf, pos) {\\r\\n            f64[0] = val;\\r\\n            buf[pos    ] = f8b[7];\\r\\n            buf[pos + 1] = f8b[6];\\r\\n            buf[pos + 2] = f8b[5];\\r\\n            buf[pos + 3] = f8b[4];\\r\\n            buf[pos + 4] = f8b[3];\\r\\n            buf[pos + 5] = f8b[2];\\r\\n            buf[pos + 6] = f8b[1];\\r\\n            buf[pos + 7] = f8b[0];\\r\\n        }\\r\\n\\r\\n        /* istanbul ignore next */\\r\\n        exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\\r\\n        /* istanbul ignore next */\\r\\n        exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\\r\\n\\r\\n        function readDouble_f64_cpy(buf, pos) {\\r\\n            f8b[0] = buf[pos    ];\\r\\n            f8b[1] = buf[pos + 1];\\r\\n            f8b[2] = buf[pos + 2];\\r\\n            f8b[3] = buf[pos + 3];\\r\\n            f8b[4] = buf[pos + 4];\\r\\n            f8b[5] = buf[pos + 5];\\r\\n            f8b[6] = buf[pos + 6];\\r\\n            f8b[7] = buf[pos + 7];\\r\\n            return f64[0];\\r\\n        }\\r\\n\\r\\n        function readDouble_f64_rev(buf, pos) {\\r\\n            f8b[7] = buf[pos    ];\\r\\n            f8b[6] = buf[pos + 1];\\r\\n            f8b[5] = buf[pos + 2];\\r\\n            f8b[4] = buf[pos + 3];\\r\\n            f8b[3] = buf[pos + 4];\\r\\n            f8b[2] = buf[pos + 5];\\r\\n            f8b[1] = buf[pos + 6];\\r\\n            f8b[0] = buf[pos + 7];\\r\\n            return f64[0];\\r\\n        }\\r\\n\\r\\n        /* istanbul ignore next */\\r\\n        exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\\r\\n        /* istanbul ignore next */\\r\\n        exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\\r\\n\\r\\n    // double: ieee754\\r\\n    })(); else (function() {\\r\\n\\r\\n        function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\\r\\n            var sign = val < 0 ? 1 : 0;\\r\\n            if (sign)\\r\\n                val = -val;\\r\\n            if (val === 0) {\\r\\n                writeUint(0, buf, pos + off0);\\r\\n                writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\\r\\n            } else if (isNaN(val)) {\\r\\n                writeUint(0, buf, pos + off0);\\r\\n                writeUint(2146959360, buf, pos + off1);\\r\\n            } else if (val > 1.7976931348623157e+308) { // +-Infinity\\r\\n                writeUint(0, buf, pos + off0);\\r\\n                writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\\r\\n            } else {\\r\\n                var mantissa;\\r\\n                if (val < 2.2250738585072014e-308) { // denormal\\r\\n                    mantissa = val / 5e-324;\\r\\n                    writeUint(mantissa >>> 0, buf, pos + off0);\\r\\n                    writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\\r\\n                } else {\\r\\n                    var exponent = Math.floor(Math.log(val) / Math.LN2);\\r\\n                    if (exponent === 1024)\\r\\n                        exponent = 1023;\\r\\n                    mantissa = val * Math.pow(2, -exponent);\\r\\n                    writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\\r\\n                    writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n\\r\\n        exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\\r\\n        exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\\r\\n\\r\\n        function readDouble_ieee754(readUint, off0, off1, buf, pos) {\\r\\n            var lo = readUint(buf, pos + off0),\\r\\n                hi = readUint(buf, pos + off1);\\r\\n            var sign = (hi >> 31) * 2 + 1,\\r\\n                exponent = hi >>> 20 & 2047,\\r\\n                mantissa = 4294967296 * (hi & 1048575) + lo;\\r\\n            return exponent === 2047\\r\\n                ? mantissa\\r\\n                ? NaN\\r\\n                : sign * Infinity\\r\\n                : exponent === 0 // denormal\\r\\n                ? sign * 5e-324 * mantissa\\r\\n                : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\\r\\n        }\\r\\n\\r\\n        exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\\r\\n        exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\\r\\n\\r\\n    })();\\r\\n\\r\\n    return exports;\\r\\n}\\r\\n\\r\\n// uint helpers\\r\\n\\r\\nfunction writeUintLE(val, buf, pos) {\\r\\n    buf[pos    ] =  val        & 255;\\r\\n    buf[pos + 1] =  val >>> 8  & 255;\\r\\n    buf[pos + 2] =  val >>> 16 & 255;\\r\\n    buf[pos + 3] =  val >>> 24;\\r\\n}\\r\\n\\r\\nfunction writeUintBE(val, buf, pos) {\\r\\n    buf[pos    ] =  val >>> 24;\\r\\n    buf[pos + 1] =  val >>> 16 & 255;\\r\\n    buf[pos + 2] =  val >>> 8  & 255;\\r\\n    buf[pos + 3] =  val        & 255;\\r\\n}\\r\\n\\r\\nfunction readUintLE(buf, pos) {\\r\\n    return (buf[pos    ]\\r\\n          | buf[pos + 1] << 8\\r\\n          | buf[pos + 2] << 16\\r\\n          | buf[pos + 3] << 24) >>> 0;\\r\\n}\\r\\n\\r\\nfunction readUintBE(buf, pos) {\\r\\n    return (buf[pos    ] << 24\\r\\n          | buf[pos + 1] << 16\\r\\n          | buf[pos + 2] << 8\\r\\n          | buf[pos + 3]) >>> 0;\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/float/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/inquire/index.js\":\n/*!***************************************************!*\\\n  !*** ./node_modules/@protobufjs/inquire/index.js ***!\n  \\***************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\r\\nmodule.exports = inquire;\\r\\n\\r\\n/**\\r\\n * Requires a module only if available.\\r\\n * @memberof util\\r\\n * @param {string} moduleName Module to require\\r\\n * @returns {?Object} Required module if available and not empty, otherwise `null`\\r\\n */\\r\\nfunction inquire(moduleName) {\\r\\n    try {\\r\\n        var mod = eval(\\\"quire\\\".replace(/^/,\\\"re\\\"))(moduleName); // eslint-disable-line no-eval\\r\\n        if (mod && (mod.length || Object.keys(mod).length))\\r\\n            return mod;\\r\\n    } catch (e) {} // eslint-disable-line no-empty\\r\\n    return null;\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/inquire/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/pool/index.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/@protobufjs/pool/index.js ***!\n  \\************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\r\\nmodule.exports = pool;\\r\\n\\r\\n/**\\r\\n * An allocator as used by {@link util.pool}.\\r\\n * @typedef PoolAllocator\\r\\n * @type {function}\\r\\n * @param {number} size Buffer size\\r\\n * @returns {Uint8Array} Buffer\\r\\n */\\r\\n\\r\\n/**\\r\\n * A slicer as used by {@link util.pool}.\\r\\n * @typedef PoolSlicer\\r\\n * @type {function}\\r\\n * @param {number} start Start offset\\r\\n * @param {number} end End offset\\r\\n * @returns {Uint8Array} Buffer slice\\r\\n * @this {Uint8Array}\\r\\n */\\r\\n\\r\\n/**\\r\\n * A general purpose buffer pool.\\r\\n * @memberof util\\r\\n * @function\\r\\n * @param {PoolAllocator} alloc Allocator\\r\\n * @param {PoolSlicer} slice Slicer\\r\\n * @param {number} [size=8192] Slab size\\r\\n * @returns {PoolAllocator} Pooled allocator\\r\\n */\\r\\nfunction pool(alloc, slice, size) {\\r\\n    var SIZE   = size || 8192;\\r\\n    var MAX    = SIZE >>> 1;\\r\\n    var slab   = null;\\r\\n    var offset = SIZE;\\r\\n    return function pool_alloc(size) {\\r\\n        if (size < 1 || size > MAX)\\r\\n            return alloc(size);\\r\\n        if (offset + size > SIZE) {\\r\\n            slab = alloc(SIZE);\\r\\n            offset = 0;\\r\\n        }\\r\\n        var buf = slice.call(slab, offset, offset += size);\\r\\n        if (offset & 7) // align to 32 bit\\r\\n            offset = (offset | 7) + 1;\\r\\n        return buf;\\r\\n    };\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/pool/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@protobufjs/utf8/index.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/@protobufjs/utf8/index.js ***!\n  \\************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\r\\n\\r\\n/**\\r\\n * A minimal UTF8 implementation for number arrays.\\r\\n * @memberof util\\r\\n * @namespace\\r\\n */\\r\\nvar utf8 = exports;\\r\\n\\r\\n/**\\r\\n * Calculates the UTF8 byte length of a string.\\r\\n * @param {string} string String\\r\\n * @returns {number} Byte length\\r\\n */\\r\\nutf8.length = function utf8_length(string) {\\r\\n    var len = 0,\\r\\n        c = 0;\\r\\n    for (var i = 0; i < string.length; ++i) {\\r\\n        c = string.charCodeAt(i);\\r\\n        if (c < 128)\\r\\n            len += 1;\\r\\n        else if (c < 2048)\\r\\n            len += 2;\\r\\n        else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\\r\\n            ++i;\\r\\n            len += 4;\\r\\n        } else\\r\\n            len += 3;\\r\\n    }\\r\\n    return len;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Reads UTF8 bytes as a string.\\r\\n * @param {Uint8Array} buffer Source buffer\\r\\n * @param {number} start Source start\\r\\n * @param {number} end Source end\\r\\n * @returns {string} String read\\r\\n */\\r\\nutf8.read = function utf8_read(buffer, start, end) {\\r\\n    var len = end - start;\\r\\n    if (len < 1)\\r\\n        return \\\"\\\";\\r\\n    var parts = null,\\r\\n        chunk = [],\\r\\n        i = 0, // char offset\\r\\n        t;     // temporary\\r\\n    while (start < end) {\\r\\n        t = buffer[start++];\\r\\n        if (t < 128)\\r\\n            chunk[i++] = t;\\r\\n        else if (t > 191 && t < 224)\\r\\n            chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\\r\\n        else if (t > 239 && t < 365) {\\r\\n            t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\\r\\n            chunk[i++] = 0xD800 + (t >> 10);\\r\\n            chunk[i++] = 0xDC00 + (t & 1023);\\r\\n        } else\\r\\n            chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\\r\\n        if (i > 8191) {\\r\\n            (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\\r\\n            i = 0;\\r\\n        }\\r\\n    }\\r\\n    if (parts) {\\r\\n        if (i)\\r\\n            parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\\r\\n        return parts.join(\\\"\\\");\\r\\n    }\\r\\n    return String.fromCharCode.apply(String, chunk.slice(0, i));\\r\\n};\\r\\n\\r\\n/**\\r\\n * Writes a string as UTF8 bytes.\\r\\n * @param {string} string Source string\\r\\n * @param {Uint8Array} buffer Destination buffer\\r\\n * @param {number} offset Destination offset\\r\\n * @returns {number} Bytes written\\r\\n */\\r\\nutf8.write = function utf8_write(string, buffer, offset) {\\r\\n    var start = offset,\\r\\n        c1, // character 1\\r\\n        c2; // character 2\\r\\n    for (var i = 0; i < string.length; ++i) {\\r\\n        c1 = string.charCodeAt(i);\\r\\n        if (c1 < 128) {\\r\\n            buffer[offset++] = c1;\\r\\n        } else if (c1 < 2048) {\\r\\n            buffer[offset++] = c1 >> 6       | 192;\\r\\n            buffer[offset++] = c1       & 63 | 128;\\r\\n        } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\\r\\n            c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\\r\\n            ++i;\\r\\n            buffer[offset++] = c1 >> 18      | 240;\\r\\n            buffer[offset++] = c1 >> 12 & 63 | 128;\\r\\n            buffer[offset++] = c1 >> 6  & 63 | 128;\\r\\n            buffer[offset++] = c1       & 63 | 128;\\r\\n        } else {\\r\\n            buffer[offset++] = c1 >> 12      | 224;\\r\\n            buffer[offset++] = c1 >> 6  & 63 | 128;\\r\\n            buffer[offset++] = c1       & 63 | 128;\\r\\n        }\\r\\n    }\\r\\n    return offset - start;\\r\\n};\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@protobufjs/utf8/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/abort-controller/browser.js\":\n/*!**************************************************!*\\\n  !*** ./node_modules/abort-controller/browser.js ***!\n  \\**************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"/*globals self, window */\\n\\n\\n/*eslint-disable @mysticatea/prettier */\\nconst { AbortController, AbortSignal } =\\n    typeof self !== \\\"undefined\\\" ? self :\\n    typeof window !== \\\"undefined\\\" ? window :\\n    /* otherwise */ undefined\\n/*eslint-enable @mysticatea/prettier */\\n\\nmodule.exports = AbortController\\nmodule.exports.AbortSignal = AbortSignal\\nmodule.exports[\\\"default\\\"] = AbortController\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/abort-controller/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/activespeakerdetector/DefaultActiveSpeakerDetector.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/activespeakerdetector/DefaultActiveSpeakerDetector.js ***!\n  \\******************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nclass DefaultActiveSpeakerDetector {\\n    constructor(realtimeController, selfAttendeeId, hasBandwidthPriorityCallback, waitIntervalMs = 1000, updateIntervalMs = 200) {\\n        this.realtimeController = realtimeController;\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.hasBandwidthPriorityCallback = hasBandwidthPriorityCallback;\\n        this.waitIntervalMs = waitIntervalMs;\\n        this.updateIntervalMs = updateIntervalMs;\\n        this.speakerScores = {};\\n        this.speakerMuteState = {};\\n        this.detectorCallbackToHandler = new Map();\\n        this.detectorCallbackToScoresTimer = new Map();\\n        this.detectorCallbackToActivityTimer = new Map();\\n        this.hasBandwidthPriority = false;\\n        this.mostRecentUpdateTimestamp = {};\\n    }\\n    needUpdate(attendeeId) {\\n        if (!this.activeSpeakers) {\\n            return true;\\n        }\\n        return ((this.speakerScores[attendeeId] === 0 && this.activeSpeakers.includes(attendeeId)) ||\\n            (this.speakerScores[attendeeId] > 0 && !this.activeSpeakers.includes(attendeeId)));\\n    }\\n    updateActiveSpeakers(policy, callback, attendeeId) {\\n        if (!this.needUpdate(attendeeId)) {\\n            return;\\n        }\\n        const sortedSpeakers = [];\\n        const attendeeIds = Object.keys(this.speakerScores);\\n        for (let i = 0; i < attendeeIds.length; i++) {\\n            const attendeeId = attendeeIds[i];\\n            sortedSpeakers.push({ attendeeId: attendeeId, activeScore: this.speakerScores[attendeeId] });\\n        }\\n        const sortedAttendeeIds = sortedSpeakers\\n            .sort((s1, s2) => s2.activeScore - s1.activeScore)\\n            .filter(function (s) {\\n            return s.activeScore > 0;\\n        })\\n            .map(function (s) {\\n            return s.attendeeId;\\n        });\\n        this.activeSpeakers = sortedAttendeeIds;\\n        callback(sortedAttendeeIds);\\n        const selfIsActive = sortedAttendeeIds.length > 0 && sortedAttendeeIds[0] === this.selfAttendeeId;\\n        const hasBandwidthPriority = selfIsActive && policy.prioritizeVideoSendBandwidthForActiveSpeaker();\\n        const hasBandwidthPriorityDidChange = this.hasBandwidthPriority !== hasBandwidthPriority;\\n        if (hasBandwidthPriorityDidChange) {\\n            this.hasBandwidthPriority = hasBandwidthPriority;\\n            this.hasBandwidthPriorityCallback(hasBandwidthPriority);\\n        }\\n    }\\n    updateScore(policy, callback, attendeeId, volume, muted) {\\n        const activeScore = policy.calculateScore(attendeeId, volume, muted);\\n        if (this.speakerScores[attendeeId] !== activeScore) {\\n            this.speakerScores[attendeeId] = activeScore;\\n            this.mostRecentUpdateTimestamp[attendeeId] = Date.now();\\n            this.updateActiveSpeakers(policy, callback, attendeeId);\\n        }\\n    }\\n    subscribe(policy, callback, scoresCallback, scoresCallbackIntervalMs) {\\n        const handler = (attendeeId, present) => {\\n            if (!present) {\\n                this.speakerScores[attendeeId] = 0;\\n                this.mostRecentUpdateTimestamp[attendeeId] = Date.now();\\n                this.updateActiveSpeakers(policy, callback, attendeeId);\\n                return;\\n            }\\n            this.realtimeController.realtimeSubscribeToVolumeIndicator(attendeeId, (attendeeId, volume, muted, _signalStrength) => {\\n                this.mostRecentUpdateTimestamp[attendeeId] = Date.now();\\n                if (muted !== null) {\\n                    this.speakerMuteState[attendeeId] = muted;\\n                }\\n                this.updateScore(policy, callback, attendeeId, volume, muted);\\n            });\\n        };\\n        this.detectorCallbackToHandler.set(callback, handler);\\n        const activityTimer = new IntervalScheduler_1.default(this.updateIntervalMs);\\n        activityTimer.start(() => {\\n            for (const attendeeId in this.speakerScores) {\\n                if (Date.now() - this.mostRecentUpdateTimestamp[attendeeId] > this.waitIntervalMs) {\\n                    this.updateScore(policy, callback, attendeeId, 0, this.speakerMuteState[attendeeId]);\\n                }\\n            }\\n        });\\n        this.detectorCallbackToActivityTimer.set(callback, activityTimer);\\n        if (scoresCallback && scoresCallbackIntervalMs) {\\n            const scoresTimer = new IntervalScheduler_1.default(scoresCallbackIntervalMs);\\n            scoresTimer.start(() => {\\n                scoresCallback(this.speakerScores);\\n            });\\n            this.detectorCallbackToScoresTimer.set(callback, scoresTimer);\\n        }\\n        this.realtimeController.realtimeSubscribeToAttendeeIdPresence(handler);\\n    }\\n    unsubscribe(callback) {\\n        const handler = this.detectorCallbackToHandler.get(callback);\\n        this.detectorCallbackToHandler.delete(callback);\\n        if (handler) {\\n            this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(handler);\\n        }\\n        const activityTimer = this.detectorCallbackToActivityTimer.get(callback);\\n        if (activityTimer) {\\n            activityTimer.stop();\\n            this.detectorCallbackToActivityTimer.delete(callback);\\n        }\\n        const scoresTimer = this.detectorCallbackToScoresTimer.get(callback);\\n        if (scoresTimer) {\\n            scoresTimer.stop();\\n            this.detectorCallbackToHandler.delete(callback);\\n        }\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            for (const handler of this.detectorCallbackToHandler.values()) {\\n                this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(handler);\\n            }\\n            for (const activityTimer of this.detectorCallbackToActivityTimer.values()) {\\n                activityTimer.stop();\\n            }\\n            for (const scoresTimer of this.detectorCallbackToScoresTimer.values()) {\\n                scoresTimer.stop();\\n            }\\n            this.detectorCallbackToHandler.clear();\\n            this.detectorCallbackToActivityTimer.clear();\\n            this.detectorCallbackToScoresTimer.clear();\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultActiveSpeakerDetector;\\n//# sourceMappingURL=DefaultActiveSpeakerDetector.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/activespeakerdetector/DefaultActiveSpeakerDetector.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/activespeakerpolicy/DefaultActiveSpeakerPolicy.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/activespeakerpolicy/DefaultActiveSpeakerPolicy.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DefaultActiveSpeakerPolicy {\\n    /** Creates active speaker policy with speakerWeight, cutoffThreshold, silenceThreshold, and takeoverRate.\\n     *\\n     * @param speakerWeight\\n     * The number used to calculate new active speaker score for current attendee.\\n     * ```js\\n     * Formula:\\n     * updatedCurrentAttendeeScore = currentAttendeeExistingScore * speakerWeight + currentReceivedVolume * (1 - speakerWeight)\\n     * ```\\n     *\\n     * @param cutoffThreshold\\n     * The threshold number compared with updated active speaker score.\\n     * If the updated active speaker score is less than this threshold value,\\n     * the updated score is returned as 0, else the updated score is returned.\\n     *\\n     * @param silenceThreshold\\n     * The threshold number compared with current received volume.\\n     * While calculating the new active speaker score, if the current received\\n     * volume is less than this threshold value, the current received volume is considered as 0,\\n     * else 1.\\n     *\\n     * @param takeoverRate\\n     * The number used to calculate other attendee's active speaker score, other than the current attendee.\\n     * ```js\\n     * Formula:\\n     *  updatedOtherAttendeeActiveSpeakerScore = Math.max(\\n     *    existingOtherAttendeeActiveSpeakerScore - takeoverRate * currentReceivedVolume,\\n     *    0\\n     *  );\\n     * ```\\n     */\\n    constructor(speakerWeight = 0.9, cutoffThreshold = 0.01, silenceThreshold = 0.2, takeoverRate = 0.2) {\\n        this.speakerWeight = speakerWeight;\\n        this.cutoffThreshold = cutoffThreshold;\\n        this.silenceThreshold = silenceThreshold;\\n        this.takeoverRate = takeoverRate;\\n        /**\\n         * The map of attendeeIds to their active speaker score values\\n         */\\n        this.volumes = {};\\n    }\\n    calculateScore(attendeeId, volume, muted) {\\n        if (muted || volume === null) {\\n            volume = 0;\\n        }\\n        if (!this.volumes.hasOwnProperty(attendeeId)) {\\n            this.volumes[attendeeId] = 0;\\n        }\\n        if (volume > this.silenceThreshold) {\\n            volume = 1.0;\\n        }\\n        else {\\n            volume = 0.0;\\n        }\\n        const score = this.volumes[attendeeId] * this.speakerWeight + volume * (1 - this.speakerWeight);\\n        this.volumes[attendeeId] = score;\\n        for (const otherAttendeeId in this.volumes) {\\n            if (otherAttendeeId !== attendeeId) {\\n                this.volumes[otherAttendeeId] = Math.max(this.volumes[otherAttendeeId] - this.takeoverRate * volume, 0);\\n            }\\n        }\\n        if (score < this.cutoffThreshold) {\\n            return 0;\\n        }\\n        return score;\\n    }\\n    prioritizeVideoSendBandwidthForActiveSpeaker() {\\n        return true;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultActiveSpeakerPolicy;\\n//# sourceMappingURL=DefaultActiveSpeakerPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/activespeakerpolicy/DefaultActiveSpeakerPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/applicationmetadata/ApplicationMetadata.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/applicationmetadata/ApplicationMetadata.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n *\\n * [[ApplicationMetadata]] contains application metadata such as application name and version.\\n * Amazon Chime SDK for JavaScript allows builders to provide application metadata in\\n * the meeting session configuration. This field is optional. Amazon Chime uses application metadata to\\n * analyze meeting health trends or identify common failures to improve your meeting experience.\\n *\\n * Do not pass any Personal Identifiable Information (PII).\\n *\\n * ```js\\n * import { MeetingSessionConfiguration, ApplicationMetadata } from 'amazon-chime-sdk-js';\\n *\\n * const createMeetingResponse = // CreateMeeting API response.\\n * const createAttendeeResponse = // CreateAttendee API response.\\n * const meetingSessionConfiguration = new MeetingSessionConfiguration(\\n *  createMeetingResponse,\\n *  createAttendeeResponse\\n * );\\n *\\n * meetingSessionConfiguration.applicationMetadata = ApplicationMetadata.create({\\n *  appName: 'AppName',\\n *  appVersion: '1.0.0'\\n * });\\n *\\n * ```\\n */\\nclass ApplicationMetadata {\\n    constructor(appName, appVersion) {\\n        this.appName = appName;\\n        this.appVersion = appVersion;\\n    }\\n    /**\\n     *\\n     * @param appName Builder's application name.\\n     * The app name must satisfy following regular expression:\\n     * `/^[a-zA-Z0-9]+[a-zA-Z0-9_-]*[a-zA-Z0-9]+$/g`\\n     *\\n     * @param appVersion Builder's application version.\\n     * The app version must follow the [Semantic Versioning](https://semver.org/) format.\\n     *\\n     * @returns [[ApplicationMetadata]]\\n     */\\n    static create(appName, appVersion) {\\n        const APP_NAME_REGEX = /^[a-zA-Z0-9]+[a-zA-Z0-9_-]*[a-zA-Z0-9]+$/g;\\n        if (!appName || appName.length > 32) {\\n            throw new Error(`appName should be a valid string and 1 to 32 characters in length`);\\n        }\\n        if (!APP_NAME_REGEX.test(appName)) {\\n            throw new Error(`appName must satisfy ${APP_NAME_REGEX} regular expression`);\\n        }\\n        const APP_VERSION_REGEX = /^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\\\+([0-9a-zA-Z-]+(?:\\\\.[0-9a-zA-Z-]+)*))?$/gm;\\n        if (!appVersion || appVersion.length > 32) {\\n            throw new Error(`appVersion should be a valid string and 1 to 32 characters in length`);\\n        }\\n        if (!APP_VERSION_REGEX.test(appVersion)) {\\n            throw new Error(`appVersion must satisfy Semantic Versioning format`);\\n        }\\n        return new ApplicationMetadata(appName, appVersion);\\n    }\\n}\\nexports[\\\"default\\\"] = ApplicationMetadata;\\n//# sourceMappingURL=ApplicationMetadata.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/applicationmetadata/ApplicationMetadata.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/attendee/Attendee.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/attendee/Attendee.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[Attendee]] contains the information of an attendee.\\n */\\nclass Attendee {\\n}\\nexports[\\\"default\\\"] = Attendee;\\n//# sourceMappingURL=Attendee.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/attendee/Attendee.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js ***!\n  \\************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nclass DefaultAudioMixController {\\n    constructor(logger) {\\n        this.logger = logger;\\n        this.audioDevice = null;\\n        this.audioElement = null;\\n        this.audioStream = null;\\n        this.browserBehavior = new DefaultBrowserBehavior_1.default();\\n        this.observers = new Set();\\n    }\\n    bindAudioElement(element) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!element) {\\n                throw new Error(`Cannot bind audio element: ${element}`);\\n            }\\n            this.audioElement = element;\\n            this.audioElement.autoplay = true;\\n            return this.bindAudioMix();\\n        });\\n    }\\n    unbindAudioElement() {\\n        if (!this.audioElement) {\\n            return;\\n        }\\n        this.audioElement.srcObject = null;\\n        this.audioElement = null;\\n        this.forEachObserver((observer) => {\\n            if (this.audioStream) {\\n                observer.meetingAudioStreamBecameInactive(this.audioStream);\\n            }\\n        });\\n    }\\n    bindAudioStream(stream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!stream) {\\n                return;\\n            }\\n            this.audioStream = stream;\\n            try {\\n                yield this.bindAudioMix();\\n            }\\n            catch (error) {\\n                /* istanbul ignore else */\\n                if (this.logger) {\\n                    this.logger.warn(`Failed to bind audio stream: ${error}`);\\n                }\\n            }\\n        });\\n    }\\n    bindAudioDevice(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            /**\\n             * Throw error if browser doesn't even support setSinkId\\n             * Read more: https://caniuse.com/?search=setSinkId\\n             */\\n            if (device && !this.browserBehavior.supportsSetSinkId()) {\\n                throw new Error('Cannot select audio output device. This browser does not support setSinkId.');\\n            }\\n            // Always set device -- we might be setting it back to `null` to reselect\\n            // the default, and even in that case we need to call `bindAudioMix` in\\n            // order to update the sink ID to the empty string.\\n            this.audioDevice = device;\\n            return this.bindAudioMix();\\n        });\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observers) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                observerFunc(observer);\\n            });\\n        }\\n    }\\n    bindAudioMix() {\\n        var _a, _b;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.audioElement) {\\n                return;\\n            }\\n            const previousStream = this.audioElement.srcObject;\\n            if (this.audioStream) {\\n                this.audioElement.srcObject = this.audioStream;\\n            }\\n            if (previousStream !== this.audioStream) {\\n                this.forEachObserver((observer) => {\\n                    if (previousStream) {\\n                        observer.meetingAudioStreamBecameInactive(previousStream);\\n                    }\\n                    if (this.audioStream) {\\n                        observer.meetingAudioStreamBecameActive(this.audioStream);\\n                    }\\n                });\\n            }\\n            // In usual operation, the output device is undefined, and so is the element\\n            // sink ID. In this case, don't throw an error -- we're being called as a side\\n            // effect of just binding the audio element, not choosing an output device.\\n            const shouldSetSinkId = ((_a = this.audioDevice) === null || _a === void 0 ? void 0 : _a.deviceId) !== this.audioElement.sinkId;\\n            if (shouldSetSinkId &&\\n                typeof this.audioElement.sinkId === 'undefined') {\\n                throw new Error('Cannot select audio output device. This browser does not support setSinkId.');\\n            }\\n            const newSinkId = this.audioDevice ? this.audioDevice.deviceId : '';\\n            const oldSinkId = this.audioElement.sinkId;\\n            if (newSinkId === oldSinkId) {\\n                return;\\n            }\\n            // Take the existing stream and temporarily unbind it while we change\\n            // the sink ID.\\n            const existingAudioElement = this\\n                .audioElement;\\n            const existingStream = this.audioStream;\\n            if (this.browserBehavior.hasChromiumWebRTC()) {\\n                existingAudioElement.srcObject = null;\\n            }\\n            if (shouldSetSinkId) {\\n                try {\\n                    yield existingAudioElement.setSinkId(newSinkId);\\n                }\\n                catch (error) {\\n                    (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Failed to set sinkId for audio element: ${error}`);\\n                    throw error;\\n                }\\n            }\\n            if (this.browserBehavior.hasChromiumWebRTC()) {\\n                existingAudioElement.srcObject = existingStream;\\n            }\\n        });\\n    }\\n    getCurrentMeetingAudioStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.audioStream;\\n        });\\n    }\\n    addAudioMixObserver(observer) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.observers.add(observer);\\n        });\\n    }\\n    removeAudioMixObserver(observer) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.observers.delete(observer);\\n        });\\n    }\\n    audioOutputDidChange(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.info('Receive an audio output change event');\\n            return this.bindAudioDevice(device);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultAudioMixController;\\n//# sourceMappingURL=DefaultAudioMixController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audioprofile/AudioProfile.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audioprofile/AudioProfile.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * AudioProfile defines quality settings of the audio input\\n * device. Use the static methods to create presets optimized\\n * for fullband speech and fullband music with a mono channel.\\n */\\nclass AudioProfile {\\n    /**\\n     * Constructs an AudioProfile given an audio bitrate. If no\\n     * audio bitrate is supplied, then the default AudioProfile\\n     * is constructed. The default AudioProfile does not adjust\\n     * the browser's internal bitrate setting.\\n     */\\n    constructor(audioBitrateBps = null) {\\n        this.audioBitrateBps = audioBitrateBps;\\n    }\\n    /**\\n     * Creates an AudioProfile optimized for fullband speech (40 kbit/s mono).\\n     */\\n    static fullbandSpeechMono() {\\n        return new AudioProfile(40000);\\n    }\\n    /**\\n     * Creates an AudioProfile optimized for fullband music (64 kbit/s mono).\\n     */\\n    static fullbandMusicMono() {\\n        return new AudioProfile(64000);\\n    }\\n    /**\\n     * Creates an AudioProfile optimized for fullband stereo music (128 kbit/s stereo).\\n     */\\n    static fullbandMusicStereo() {\\n        return new AudioProfile(128000);\\n    }\\n    /**\\n     * Returns true if audio profile is set to stereo mode.\\n     */\\n    isStereo() {\\n        return this.audioBitrateBps === 128000;\\n    }\\n}\\nexports[\\\"default\\\"] = AudioProfile;\\n//# sourceMappingURL=AudioProfile.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audioprofile/AudioProfile.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/AudioVideoControllerState.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/AudioVideoControllerState.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[AudioVideoControllerState]] includes the compute resources shared by [[Task]].\\n */\\nclass AudioVideoControllerState {\\n    constructor() {\\n        this.logger = null;\\n        this.browserBehavior = null;\\n        this.signalingClient = null;\\n        this.meetingSessionConfiguration = null;\\n        this.peer = null;\\n        this.previousSdpOffer = null;\\n        this.sdpOfferInit = null;\\n        this.audioVideoController = null;\\n        this.realtimeController = null;\\n        this.videoTileController = null;\\n        this.mediaStreamBroker = null;\\n        this.audioMixController = null;\\n        this.activeAudioInput = undefined;\\n        this.activeVideoInput = undefined;\\n        this.transceiverController = null;\\n        this.indexFrame = null;\\n        this.iceCandidates = [];\\n        this.iceCandidateHandler = null;\\n        this.iceGatheringStateEventHandler = null;\\n        this.sdpAnswer = null;\\n        this.turnCredentials = null;\\n        this.reconnectController = null;\\n        this.removableObservers = [];\\n        this.audioProfile = null;\\n        this.videoStreamIndex = null;\\n        this.videoDownlinkBandwidthPolicy = null;\\n        this.videoUplinkBandwidthPolicy = null;\\n        this.lastKnownVideoAvailability = null;\\n        this.videoCaptureAndEncodeParameter = null;\\n        // An unordered list of IDs provided by the downlink policy that\\n        // we will eventually subscribe to.\\n        this.videosToReceive = null;\\n        // The last processed set of IDs provided by the policy, so that we can\\n        // compare what changes were additions, stream switches, or removals.\\n        this.lastVideosToReceive = null;\\n        // An ordered list corresponding to `videosToReceive` where the order\\n        // itself correspond to transceivers; 0 in this list corresponds to an inactive tranceiver.\\n        this.videoSubscriptions = null;\\n        // The video subscription limit is set by the backend and is subject to change in future.\\n        // This value is set in the `JoinAndReceiveIndexTask` when we process the `SdkJoinAckFrame`\\n        // and is used in the `ReceiveVideoStreamIndexTask` to limit the total number of streams\\n        // that we include in the `videosToReceive`.\\n        this.videoSubscriptionLimit = 25;\\n        // The previous SDP answer will be used as a dictionary to seed the compression library\\n        // during decompressing the compressed SDP answer.\\n        this.previousSdpAnswerAsString = '';\\n        // This flag indicates if the backend supports compression for the client.\\n        this.serverSupportsCompression = false;\\n        // Values set by `setVideoCodecSendPreferences`.\\n        this.videoSendCodecPreferences = [];\\n        // Intersection of `videoSendCodecPreferences` and the supported receive codecs of\\n        // all the other clients in the meeting.\\n        this.meetingSupportedVideoSendCodecPreferences = undefined;\\n        this.videosPaused = null;\\n        this.videoDuplexMode = null;\\n        this.volumeIndicatorAdapter = null;\\n        this.statsCollector = null;\\n        this.connectionMonitor = null;\\n        this.videoInputAttachedTimestampMs = 0;\\n        this.audioDeviceInformation = {};\\n        this.videoDeviceInformation = {};\\n        this.enableSimulcast = false;\\n        this.eventController = null;\\n        this.signalingOpenDurationMs = null;\\n        this.iceGatheringDurationMs = null;\\n        this.startAudioVideoTimestamp = null;\\n        this.attendeePresenceDurationMs = null;\\n        this.meetingStartDurationMs = null;\\n        this.poorConnectionCount = 0;\\n        this.maxVideoTileCount = 0;\\n        this.startTimeMs = null;\\n    }\\n}\\nexports[\\\"default\\\"] = AudioVideoControllerState;\\n//# sourceMappingURL=AudioVideoControllerState.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/AudioVideoControllerState.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js\":\n/*!****************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js ***!\n  \\****************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultActiveSpeakerDetector_1 = __webpack_require__(/*! ../activespeakerdetector/DefaultActiveSpeakerDetector */ \\\"./node_modules/amazon-chime-sdk-js/build/activespeakerdetector/DefaultActiveSpeakerDetector.js\\\");\\nconst DefaultAudioMixController_1 = __webpack_require__(/*! ../audiomixcontroller/DefaultAudioMixController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js\\\");\\nconst AudioProfile_1 = __webpack_require__(/*! ../audioprofile/AudioProfile */ \\\"./node_modules/amazon-chime-sdk-js/build/audioprofile/AudioProfile.js\\\");\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst ConnectionHealthData_1 = __webpack_require__(/*! ../connectionhealthpolicy/ConnectionHealthData */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthData.js\\\");\\nconst SignalingAndMetricsConnectionMonitor_1 = __webpack_require__(/*! ../connectionmonitor/SignalingAndMetricsConnectionMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionmonitor/SignalingAndMetricsConnectionMonitor.js\\\");\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst MeetingSessionVideoAvailability_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionVideoAvailability */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js\\\");\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst DefaultPingPong_1 = __webpack_require__(/*! ../pingpong/DefaultPingPong */ \\\"./node_modules/amazon-chime-sdk-js/build/pingpong/DefaultPingPong.js\\\");\\nconst DefaultRealtimeController_1 = __webpack_require__(/*! ../realtimecontroller/DefaultRealtimeController */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/DefaultRealtimeController.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst DefaultSessionStateController_1 = __webpack_require__(/*! ../sessionstatecontroller/DefaultSessionStateController */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/DefaultSessionStateController.js\\\");\\nconst SessionStateControllerAction_1 = __webpack_require__(/*! ../sessionstatecontroller/SessionStateControllerAction */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js\\\");\\nconst SessionStateControllerState_1 = __webpack_require__(/*! ../sessionstatecontroller/SessionStateControllerState */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js\\\");\\nconst SessionStateControllerTransitionResult_1 = __webpack_require__(/*! ../sessionstatecontroller/SessionStateControllerTransitionResult */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js\\\");\\nconst DefaultSignalingClient_1 = __webpack_require__(/*! ../signalingclient/DefaultSignalingClient */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/DefaultSignalingClient.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingClientVideoSubscriptionConfiguration_1 = __webpack_require__(/*! ../signalingclient/SignalingClientVideoSubscriptionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst StatsCollector_1 = __webpack_require__(/*! ../statscollector/StatsCollector */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/StatsCollector.js\\\");\\nconst AttachMediaInputTask_1 = __webpack_require__(/*! ../task/AttachMediaInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/AttachMediaInputTask.js\\\");\\nconst CleanRestartedSessionTask_1 = __webpack_require__(/*! ../task/CleanRestartedSessionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CleanRestartedSessionTask.js\\\");\\nconst CleanStoppedSessionTask_1 = __webpack_require__(/*! ../task/CleanStoppedSessionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CleanStoppedSessionTask.js\\\");\\nconst CreatePeerConnectionTask_1 = __webpack_require__(/*! ../task/CreatePeerConnectionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CreatePeerConnectionTask.js\\\");\\nconst CreateSDPTask_1 = __webpack_require__(/*! ../task/CreateSDPTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CreateSDPTask.js\\\");\\nconst FinishGatheringICECandidatesTask_1 = __webpack_require__(/*! ../task/FinishGatheringICECandidatesTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/FinishGatheringICECandidatesTask.js\\\");\\nconst JoinAndReceiveIndexTask_1 = __webpack_require__(/*! ../task/JoinAndReceiveIndexTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/JoinAndReceiveIndexTask.js\\\");\\nconst LeaveAndReceiveLeaveAckTask_1 = __webpack_require__(/*! ../task/LeaveAndReceiveLeaveAckTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/LeaveAndReceiveLeaveAckTask.js\\\");\\nconst ListenForVolumeIndicatorsTask_1 = __webpack_require__(/*! ../task/ListenForVolumeIndicatorsTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ListenForVolumeIndicatorsTask.js\\\");\\nconst MonitorTask_1 = __webpack_require__(/*! ../task/MonitorTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/MonitorTask.js\\\");\\nconst OpenSignalingConnectionTask_1 = __webpack_require__(/*! ../task/OpenSignalingConnectionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/OpenSignalingConnectionTask.js\\\");\\nconst ParallelGroupTask_1 = __webpack_require__(/*! ../task/ParallelGroupTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ParallelGroupTask.js\\\");\\nconst PromoteToPrimaryMeetingTask_1 = __webpack_require__(/*! ../task/PromoteToPrimaryMeetingTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/PromoteToPrimaryMeetingTask.js\\\");\\nconst ReceiveAudioInputTask_1 = __webpack_require__(/*! ../task/ReceiveAudioInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveAudioInputTask.js\\\");\\nconst ReceiveTURNCredentialsTask_1 = __webpack_require__(/*! ../task/ReceiveTURNCredentialsTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveTURNCredentialsTask.js\\\");\\nconst ReceiveVideoInputTask_1 = __webpack_require__(/*! ../task/ReceiveVideoInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoInputTask.js\\\");\\nconst ReceiveVideoStreamIndexTask_1 = __webpack_require__(/*! ../task/ReceiveVideoStreamIndexTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoStreamIndexTask.js\\\");\\nconst SendAndReceiveDataMessagesTask_1 = __webpack_require__(/*! ../task/SendAndReceiveDataMessagesTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SendAndReceiveDataMessagesTask.js\\\");\\nconst SerialGroupTask_1 = __webpack_require__(/*! ../task/SerialGroupTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SerialGroupTask.js\\\");\\nconst SetLocalDescriptionTask_1 = __webpack_require__(/*! ../task/SetLocalDescriptionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SetLocalDescriptionTask.js\\\");\\nconst SetRemoteDescriptionTask_1 = __webpack_require__(/*! ../task/SetRemoteDescriptionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SetRemoteDescriptionTask.js\\\");\\nconst SubscribeAndReceiveSubscribeAckTask_1 = __webpack_require__(/*! ../task/SubscribeAndReceiveSubscribeAckTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SubscribeAndReceiveSubscribeAckTask.js\\\");\\nconst TimeoutTask_1 = __webpack_require__(/*! ../task/TimeoutTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js\\\");\\nconst WaitForAttendeePresenceTask_1 = __webpack_require__(/*! ../task/WaitForAttendeePresenceTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/WaitForAttendeePresenceTask.js\\\");\\nconst DefaultTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/DefaultTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js\\\");\\nconst SimulcastContentShareTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/SimulcastContentShareTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js\\\");\\nconst SimulcastTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/SimulcastTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js\\\");\\nconst VideoOnlyTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/VideoOnlyTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/VideoOnlyTransceiverController.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst DefaultVideoCaptureAndEncodeParameter_1 = __webpack_require__(/*! ../videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter */ \\\"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\\\");\\nconst AllHighestVideoBandwidthPolicy_1 = __webpack_require__(/*! ../videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy.js\\\");\\nconst VideoAdaptiveProbePolicy_1 = __webpack_require__(/*! ../videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy.js\\\");\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ../videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\nconst DefaultVideoStreamIndex_1 = __webpack_require__(/*! ../videostreamindex/DefaultVideoStreamIndex */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js\\\");\\nconst SimulcastVideoStreamIndex_1 = __webpack_require__(/*! ../videostreamindex/SimulcastVideoStreamIndex */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/SimulcastVideoStreamIndex.js\\\");\\nconst DefaultVideoTileController_1 = __webpack_require__(/*! ../videotilecontroller/DefaultVideoTileController */ \\\"./node_modules/amazon-chime-sdk-js/build/videotilecontroller/DefaultVideoTileController.js\\\");\\nconst DefaultVideoTileFactory_1 = __webpack_require__(/*! ../videotilefactory/DefaultVideoTileFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/videotilefactory/DefaultVideoTileFactory.js\\\");\\nconst DefaultSimulcastUplinkPolicy_1 = __webpack_require__(/*! ../videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.js\\\");\\nconst NScaleVideoUplinkBandwidthPolicy_1 = __webpack_require__(/*! ../videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy.js\\\");\\nconst DefaultVolumeIndicatorAdapter_1 = __webpack_require__(/*! ../volumeindicatoradapter/DefaultVolumeIndicatorAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/volumeindicatoradapter/DefaultVolumeIndicatorAdapter.js\\\");\\nconst AudioVideoControllerState_1 = __webpack_require__(/*! ./AudioVideoControllerState */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/AudioVideoControllerState.js\\\");\\nclass DefaultAudioVideoController {\\n    constructor(configuration, logger, webSocketAdapter, mediaStreamBroker, reconnectController, eventController) {\\n        this._audioProfile = new AudioProfile_1.default();\\n        this.connectionHealthData = new ConnectionHealthData_1.default();\\n        this.observerQueue = new Set();\\n        this.meetingSessionContext = new AudioVideoControllerState_1.default();\\n        this.enableSimulcast = false;\\n        this.useUpdateTransceiverControllerForUplink = false;\\n        this.totalRetryCount = 0;\\n        this.startAudioVideoTimestamp = 0;\\n        this.mayNeedRenegotiationForSimulcastLayerChange = false;\\n        // Stored solely to trigger demotion callback on disconnection (expected behavior).\\n        //\\n        // We otherwise intentionally do not use this for any other behavior to avoid the complexity\\n        // of the added state.\\n        this.promotedToPrimaryMeeting = false;\\n        this.hasGetRTCPeerConnectionStatsDeprecationMessageBeenSent = false;\\n        // `connectWithPromises`, `connectWithTasks`, and `actionUpdateWithRenegotiation` all\\n        // contains a significant portion of asynchronous tasks, so we need to explicitly defer\\n        // any task operation which may be performed on the event queue that may modify\\n        // mutable state in `MeetingSessionContext`, as this mutable state needs to be consistent over the course of the update.\\n        //\\n        // Currently this includes\\n        // * `ReceiveVideoStreamIndexTask` which updates `videosToReceive` and `videoCaptureAndEncodeParameter`\\n        // * `MonitorTask` which updates `videosToReceive`\\n        this.receiveIndexTask = undefined;\\n        this.monitorTask = undefined;\\n        this.destroyed = false;\\n        /** @internal */\\n        this.usePromises = true;\\n        this._logger = logger;\\n        this.sessionStateController = new DefaultSessionStateController_1.default(this._logger);\\n        this._configuration = configuration;\\n        this._webSocketAdapter = webSocketAdapter;\\n        this._realtimeController = new DefaultRealtimeController_1.default(mediaStreamBroker);\\n        this._realtimeController.realtimeSetLocalAttendeeId(configuration.credentials.attendeeId, configuration.credentials.externalUserId);\\n        this._mediaStreamBroker = mediaStreamBroker;\\n        this._reconnectController = reconnectController;\\n        this._videoTileController = new DefaultVideoTileController_1.default(new DefaultVideoTileFactory_1.default(), this, this._logger);\\n        this._audioMixController = new DefaultAudioMixController_1.default(this._logger);\\n        this._mediaStreamBroker.addMediaStreamBrokerObserver(this._audioMixController);\\n        this.meetingSessionContext.logger = this._logger;\\n        this._eventController = eventController;\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.observerQueue.clear();\\n            this._mediaStreamBroker.removeMediaStreamBrokerObserver(this._audioMixController);\\n            this.destroyed = true;\\n        });\\n    }\\n    get configuration() {\\n        return this._configuration;\\n    }\\n    get realtimeController() {\\n        return this._realtimeController;\\n    }\\n    get activeSpeakerDetector() {\\n        // Lazy init.\\n        if (!this._activeSpeakerDetector) {\\n            this._activeSpeakerDetector = new DefaultActiveSpeakerDetector_1.default(this._realtimeController, this._configuration.credentials.attendeeId, this.handleHasBandwidthPriority.bind(this));\\n        }\\n        return this._activeSpeakerDetector;\\n    }\\n    get videoTileController() {\\n        return this._videoTileController;\\n    }\\n    get audioMixController() {\\n        return this._audioMixController;\\n    }\\n    get logger() {\\n        return this._logger;\\n    }\\n    get rtcPeerConnection() {\\n        return (this.meetingSessionContext && this.meetingSessionContext.peer) || null;\\n    }\\n    get mediaStreamBroker() {\\n        return this._mediaStreamBroker;\\n    }\\n    get eventController() {\\n        return this._eventController;\\n    }\\n    /**\\n     * This API will be deprecated in favor of `ClientMetricReport.getRTCStatsReport()`.\\n     *\\n     * It makes an additional call to the `getStats` API and therefore may cause slight performance degradation.\\n     *\\n     * Please subscribe to `metricsDidReceive(clientMetricReport: ClientMetricReport)` callback,\\n     * and get the raw `RTCStatsReport` via `clientMetricReport.getRTCStatsReport()`.\\n     */\\n    getRTCPeerConnectionStats(selector) {\\n        /* istanbul ignore else */\\n        if (!this.hasGetRTCPeerConnectionStatsDeprecationMessageBeenSent) {\\n            this.logger.warn('The `getRTCPeerConnectionStats()` is on its way to be deprecated. It makes an additional call to the `getStats` API and therefore may cause slight performance degradation. Please use the new API `clientMetricReport.getRTCStatsReport()` returned by `metricsDidReceive(clientMetricReport)` callback instead.');\\n            this.hasGetRTCPeerConnectionStatsDeprecationMessageBeenSent = true;\\n        }\\n        if (!this.rtcPeerConnection) {\\n            return null;\\n        }\\n        return this.rtcPeerConnection.getStats(selector);\\n    }\\n    setAudioProfile(audioProfile) {\\n        this._audioProfile = audioProfile;\\n    }\\n    addObserver(observer) {\\n        this.logger.info('adding meeting observer');\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.logger.info('removing meeting observer');\\n        this.observerQueue.delete(observer);\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                if (this.observerQueue.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    initSignalingClient() {\\n        this.connectionHealthData.reset();\\n        if (this.meetingSessionContext.signalingClient) {\\n            return;\\n        }\\n        this.meetingSessionContext = new AudioVideoControllerState_1.default();\\n        this.meetingSessionContext.logger = this.logger;\\n        this.meetingSessionContext.eventController = this.eventController;\\n        this.meetingSessionContext.browserBehavior = new DefaultBrowserBehavior_1.default();\\n        this.meetingSessionContext.videoSendCodecPreferences = this.videoSendCodecPreferences;\\n        this.meetingSessionContext.meetingSessionConfiguration = this.configuration;\\n        this.meetingSessionContext.signalingClient = new DefaultSignalingClient_1.default(this._webSocketAdapter, this.logger);\\n    }\\n    uninstallPreStartObserver() {\\n        var _a;\\n        (_a = this.meetingSessionContext.signalingClient) === null || _a === void 0 ? void 0 : _a.removeObserver(this.preStartObserver);\\n        this.preStartObserver = undefined;\\n    }\\n    prestart() {\\n        this.logger.info('Pre-connecting signaling connection.');\\n        return this.createOrReuseSignalingTask()\\n            .run()\\n            .then(() => {\\n            const handleClosed = () => __awaiter(this, void 0, void 0, function* () {\\n                this.logger.info('Early connection closed; discarding signaling task.');\\n                this.signalingTask = undefined;\\n                this.uninstallPreStartObserver();\\n            });\\n            this.preStartObserver = {\\n                handleSignalingClientEvent(event) {\\n                    if (event.type === SignalingClientEventType_1.default.WebSocketClosed) {\\n                        handleClosed();\\n                    }\\n                },\\n            };\\n            this.meetingSessionContext.signalingClient.registerObserver(this.preStartObserver);\\n        })\\n            .catch(e => {\\n            this.logger.error(`Signaling task pre-start failed: ${e}`);\\n            // Clean up just in case a subsequent attempt will succeed.\\n            this.signalingTask = undefined;\\n        });\\n    }\\n    start(options) {\\n        this.startReturningPromise(options)\\n            .then(() => {\\n            this.logger.info('start completed');\\n        })\\n            // Just-in-case error handling.\\n            .catch(\\n        /* istanbul ignore next */\\n        e => {\\n            this.logger.error(`start failed: ${e}`);\\n        });\\n    }\\n    // This is public (albeit marked internal) for tests only.\\n    /* @internal */\\n    startReturningPromise(options) {\\n        if ((options === null || options === void 0 ? void 0 : options.signalingOnly) === true) {\\n            return this.prestart();\\n        }\\n        // For side-effects: lazy getter.\\n        this.activeSpeakerDetector;\\n        return new Promise((resolve, reject) => {\\n            this.sessionStateController.perform(SessionStateControllerAction_1.default.Connect, () => {\\n                this.actionConnect(false).then(resolve).catch(reject);\\n            });\\n        });\\n    }\\n    // @ts-ignore\\n    connectWithPromises(needsToWaitForAttendeePresence) {\\n        const context = this.meetingSessionContext;\\n        // Syntactic sugar.\\n        const timeout = (timeoutMs, task) => {\\n            return new TimeoutTask_1.default(this.logger, task, timeoutMs);\\n        };\\n        // First layer.\\n        this.monitorTask = new MonitorTask_1.default(context, this.configuration.connectionHealthPolicyConfiguration, this.connectionHealthData);\\n        const monitor = this.monitorTask.once();\\n        // Second layer.\\n        const receiveAudioInput = new ReceiveAudioInputTask_1.default(context).once();\\n        this.receiveIndexTask = new ReceiveVideoStreamIndexTask_1.default(context);\\n        // See declaration (unpaused in actionFinishConnecting)\\n        this.monitorTask.pauseResubscribeCheck();\\n        this.receiveIndexTask.pauseIngestion();\\n        const signaling = new SerialGroupTask_1.default(this.logger, 'Signaling', [\\n            // If pre-connecting, this will be an existing task that has already been run.\\n            this.createOrReuseSignalingTask(),\\n            new ListenForVolumeIndicatorsTask_1.default(context),\\n            new SendAndReceiveDataMessagesTask_1.default(context),\\n            new JoinAndReceiveIndexTask_1.default(context),\\n            new ReceiveTURNCredentialsTask_1.default(context),\\n            this.receiveIndexTask,\\n        ]).once();\\n        // Third layer.\\n        const createPeerConnection = new CreatePeerConnectionTask_1.default(context).once(signaling);\\n        const attachMediaInput = new AttachMediaInputTask_1.default(context).once(createPeerConnection, receiveAudioInput);\\n        // Mostly serial section -- kept as promises to allow for finer-grained breakdown.\\n        const createSDP = new CreateSDPTask_1.default(context).once(attachMediaInput);\\n        const setLocalDescription = new SetLocalDescriptionTask_1.default(context).once(createSDP);\\n        const ice = new FinishGatheringICECandidatesTask_1.default(context).once(setLocalDescription);\\n        const subscribeAck = new SubscribeAndReceiveSubscribeAckTask_1.default(context).once(ice);\\n        // The ending is a delicate time: we need the connection as a whole to have a timeout,\\n        // and for the attendee presence timer to not start ticking until after the subscribe/ack.\\n        return new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoStart'), [\\n            monitor,\\n            timeout(this.configuration.connectionTimeoutMs, new SerialGroupTask_1.default(this.logger, 'Peer', [\\n                // The order of these two matters. If canceled, the first one that's still running\\n                // will contribute any special rejection, and we don't want that to be \\\"attendee not found\\\"!\\n                subscribeAck,\\n                needsToWaitForAttendeePresence\\n                    ? new TimeoutTask_1.default(this.logger, new ParallelGroupTask_1.default(this.logger, 'FinalizeConnection', [\\n                        new WaitForAttendeePresenceTask_1.default(context),\\n                        new SetRemoteDescriptionTask_1.default(context),\\n                    ]), this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs)\\n                    : /* istanbul ignore next */ new SetRemoteDescriptionTask_1.default(context),\\n            ])),\\n        ]);\\n    }\\n    connectWithTasks(needsToWaitForAttendeePresence) {\\n        this.receiveIndexTask = new ReceiveVideoStreamIndexTask_1.default(this.meetingSessionContext);\\n        this.monitorTask = new MonitorTask_1.default(this.meetingSessionContext, this.configuration.connectionHealthPolicyConfiguration, this.connectionHealthData);\\n        // See declaration (unpaused in actionFinishConnecting)\\n        this.receiveIndexTask.pauseIngestion();\\n        this.monitorTask.pauseResubscribeCheck();\\n        return new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoStart'), [\\n            this.monitorTask,\\n            new ReceiveAudioInputTask_1.default(this.meetingSessionContext),\\n            new TimeoutTask_1.default(this.logger, new SerialGroupTask_1.default(this.logger, 'Media', [\\n                new SerialGroupTask_1.default(this.logger, 'Signaling', [\\n                    new OpenSignalingConnectionTask_1.default(this.meetingSessionContext),\\n                    new ListenForVolumeIndicatorsTask_1.default(this.meetingSessionContext),\\n                    new SendAndReceiveDataMessagesTask_1.default(this.meetingSessionContext),\\n                    new JoinAndReceiveIndexTask_1.default(this.meetingSessionContext),\\n                    new ReceiveTURNCredentialsTask_1.default(this.meetingSessionContext),\\n                    this.receiveIndexTask,\\n                ]),\\n                new SerialGroupTask_1.default(this.logger, 'Peer', [\\n                    new CreatePeerConnectionTask_1.default(this.meetingSessionContext),\\n                    new AttachMediaInputTask_1.default(this.meetingSessionContext),\\n                    new CreateSDPTask_1.default(this.meetingSessionContext),\\n                    new SetLocalDescriptionTask_1.default(this.meetingSessionContext),\\n                    new FinishGatheringICECandidatesTask_1.default(this.meetingSessionContext),\\n                    new SubscribeAndReceiveSubscribeAckTask_1.default(this.meetingSessionContext),\\n                    needsToWaitForAttendeePresence\\n                        ? new TimeoutTask_1.default(this.logger, new ParallelGroupTask_1.default(this.logger, 'FinalizeConnection', [\\n                            new WaitForAttendeePresenceTask_1.default(this.meetingSessionContext),\\n                            new SetRemoteDescriptionTask_1.default(this.meetingSessionContext),\\n                        ]), this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs)\\n                        : /* istanbul ignore next */ new SetRemoteDescriptionTask_1.default(this.meetingSessionContext),\\n                ]),\\n            ]), this.configuration.connectionTimeoutMs),\\n        ]);\\n    }\\n    actionConnect(reconnecting) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.initSignalingClient();\\n            // We no longer need to watch for the early connection dropping; we're back where\\n            // we otherwise would have been had we not pre-started.\\n            this.uninstallPreStartObserver();\\n            this.meetingSessionContext.mediaStreamBroker = this._mediaStreamBroker;\\n            this.meetingSessionContext.realtimeController = this._realtimeController;\\n            this.meetingSessionContext.audioMixController = this._audioMixController;\\n            this.meetingSessionContext.audioVideoController = this;\\n            this.enableSimulcast =\\n                this.configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers &&\\n                    new DefaultBrowserBehavior_1.default().hasChromiumWebRTC();\\n            const useAudioConnection = !!this.configuration.urls.audioHostURL;\\n            if (!useAudioConnection) {\\n                this.logger.info(`Using video only transceiver controller`);\\n                this.meetingSessionContext.transceiverController = new VideoOnlyTransceiverController_1.default(this.logger, this.meetingSessionContext.browserBehavior);\\n            }\\n            else if (this.enableSimulcast) {\\n                this.logger.info(`Using transceiver controller with simulcast support`);\\n                if (new DefaultModality_1.default(this.configuration.credentials.attendeeId).hasModality(DefaultModality_1.default.MODALITY_CONTENT)) {\\n                    this.meetingSessionContext.transceiverController = new SimulcastContentShareTransceiverController_1.default(this.logger, this.meetingSessionContext.browserBehavior);\\n                }\\n                else {\\n                    this.meetingSessionContext.transceiverController = new SimulcastTransceiverController_1.default(this.logger, this.meetingSessionContext.browserBehavior);\\n                }\\n            }\\n            else {\\n                this.logger.info(`Using default transceiver controller`);\\n                this.meetingSessionContext.transceiverController = new DefaultTransceiverController_1.default(this.logger, this.meetingSessionContext.browserBehavior);\\n            }\\n            this.meetingSessionContext.volumeIndicatorAdapter = new DefaultVolumeIndicatorAdapter_1.default(this.logger, this._realtimeController, DefaultAudioVideoController.MIN_VOLUME_DECIBELS, DefaultAudioVideoController.MAX_VOLUME_DECIBELS, this.configuration.credentials.attendeeId);\\n            this.meetingSessionContext.videoTileController = this._videoTileController;\\n            this.meetingSessionContext.videoDownlinkBandwidthPolicy = this.configuration.videoDownlinkBandwidthPolicy;\\n            this.meetingSessionContext.videoUplinkBandwidthPolicy = this.configuration.videoUplinkBandwidthPolicy;\\n            this.meetingSessionContext.enableSimulcast = this.enableSimulcast;\\n            if (this.enableSimulcast) {\\n                let simulcastPolicy = this.meetingSessionContext\\n                    .videoUplinkBandwidthPolicy;\\n                if (!simulcastPolicy) {\\n                    simulcastPolicy = new DefaultSimulcastUplinkPolicy_1.default(this.configuration.credentials.attendeeId, this.meetingSessionContext.logger);\\n                    this.meetingSessionContext.videoUplinkBandwidthPolicy = simulcastPolicy;\\n                }\\n                simulcastPolicy.addObserver(this);\\n                if (!this.meetingSessionContext.videoDownlinkBandwidthPolicy) {\\n                    this.meetingSessionContext.videoDownlinkBandwidthPolicy = new VideoAdaptiveProbePolicy_1.default(this.meetingSessionContext.logger);\\n                }\\n                this.meetingSessionContext.videoStreamIndex = new SimulcastVideoStreamIndex_1.default(this.logger);\\n            }\\n            else {\\n                this.meetingSessionContext.enableSimulcast = false;\\n                this.meetingSessionContext.videoStreamIndex = new DefaultVideoStreamIndex_1.default(this.logger);\\n                if (!this.meetingSessionContext.videoUplinkBandwidthPolicy) {\\n                    this.meetingSessionContext.videoUplinkBandwidthPolicy = new NScaleVideoUplinkBandwidthPolicy_1.default(this.configuration.credentials.attendeeId, !this.meetingSessionContext.browserBehavior.disableResolutionScaleDown(), this.meetingSessionContext.logger, this.meetingSessionContext.browserBehavior);\\n                }\\n                if (!this.meetingSessionContext.videoDownlinkBandwidthPolicy) {\\n                    this.meetingSessionContext.videoDownlinkBandwidthPolicy = new AllHighestVideoBandwidthPolicy_1.default(this.configuration.credentials.attendeeId);\\n                }\\n                if (this.meetingSessionContext.videoUplinkBandwidthPolicy.setTransceiverController &&\\n                    this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController) {\\n                    this.useUpdateTransceiverControllerForUplink = true;\\n                    this.meetingSessionContext.videoUplinkBandwidthPolicy.setTransceiverController(this.meetingSessionContext.transceiverController);\\n                }\\n                this.meetingSessionContext.audioProfile = this._audioProfile;\\n            }\\n            if (this.meetingSessionContext.videoUplinkBandwidthPolicy && this.maxUplinkBandwidthKbps) {\\n                this.meetingSessionContext.videoUplinkBandwidthPolicy.setIdealMaxBandwidthKbps(this.maxUplinkBandwidthKbps);\\n            }\\n            if (this.meetingSessionContext.videoDownlinkBandwidthPolicy.bindToTileController) {\\n                this.meetingSessionContext.videoDownlinkBandwidthPolicy.bindToTileController(this._videoTileController);\\n            }\\n            this.meetingSessionContext.lastKnownVideoAvailability = new MeetingSessionVideoAvailability_1.default();\\n            this.meetingSessionContext.videoCaptureAndEncodeParameter = new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, false);\\n            this.meetingSessionContext.videosToReceive = new DefaultVideoStreamIdSet_1.default();\\n            this.meetingSessionContext.videosPaused = new DefaultVideoStreamIdSet_1.default();\\n            this.meetingSessionContext.statsCollector = new StatsCollector_1.default(this, this.logger);\\n            this.meetingSessionContext.connectionMonitor = new SignalingAndMetricsConnectionMonitor_1.default(this, this._realtimeController, this.connectionHealthData, new DefaultPingPong_1.default(this.meetingSessionContext.signalingClient, DefaultAudioVideoController.PING_PONG_INTERVAL_MS, this.logger), this.meetingSessionContext.statsCollector);\\n            this.meetingSessionContext.reconnectController = this._reconnectController;\\n            this.meetingSessionContext.videoDeviceInformation = {};\\n            if (!reconnecting) {\\n                this.totalRetryCount = 0;\\n                this._reconnectController.reset();\\n                this.startAudioVideoTimestamp = Date.now();\\n                this.forEachObserver(observer => {\\n                    Types_1.Maybe.of(observer.audioVideoDidStartConnecting).map(f => f.bind(observer)(false));\\n                });\\n                (_a = this.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('meetingStartRequested');\\n            }\\n            this.meetingSessionContext.startAudioVideoTimestamp = this.startAudioVideoTimestamp;\\n            if (this._reconnectController.hasStartedConnectionAttempt()) {\\n                // This does not reset the reconnect deadline, but declare it's not the first connection.\\n                this._reconnectController.startedConnectionAttempt(false);\\n            }\\n            else {\\n                this._reconnectController.startedConnectionAttempt(true);\\n            }\\n            // No attendee presence event will be triggered if there is no audio connection.\\n            // Waiting for attendee presence is explicitly executed\\n            // if `attendeePresenceTimeoutMs` is configured to larger than 0.\\n            const needsToWaitForAttendeePresence = useAudioConnection &&\\n                this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs > 0;\\n            this.logger.info('Needs to wait for attendee presence? ' + needsToWaitForAttendeePresence);\\n            let connect;\\n            if (this.usePromises) {\\n                connect = this.connectWithPromises(needsToWaitForAttendeePresence);\\n            }\\n            else {\\n                connect = this.connectWithTasks(needsToWaitForAttendeePresence);\\n            }\\n            // The rest.\\n            try {\\n                yield connect.run();\\n                this.connectionHealthData.setConnectionStartTime();\\n                this._mediaStreamBroker.addMediaStreamBrokerObserver(this);\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishConnecting, () => {\\n                    /* istanbul ignore else */\\n                    if (this.eventController) {\\n                        this.meetingSessionContext.meetingStartDurationMs =\\n                            Date.now() - this.startAudioVideoTimestamp;\\n                        this.eventController.publishEvent('meetingStartSucceeded', {\\n                            maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,\\n                            poorConnectionCount: this.meetingSessionContext.poorConnectionCount,\\n                            retryCount: this.totalRetryCount,\\n                            signalingOpenDurationMs: this.meetingSessionContext.signalingOpenDurationMs,\\n                            iceGatheringDurationMs: this.meetingSessionContext.iceGatheringDurationMs,\\n                            meetingStartDurationMs: this.meetingSessionContext.meetingStartDurationMs,\\n                        });\\n                    }\\n                    this.meetingSessionContext.startTimeMs = Date.now();\\n                    this.actionFinishConnecting();\\n                });\\n            }\\n            catch (error) {\\n                this.signalingTask = undefined;\\n                const status = new MeetingSessionStatus_1.default(this.getMeetingStatusCode(error) || MeetingSessionStatusCode_1.default.TaskFailed);\\n                this.logger.info(`Start failed: ${status} due to error ${error}.`);\\n                // I am not able to successfully reach this state in the test suite with mock\\n                // websockets -- it always ends up in 'Disconnecting' instead. As such, this\\n                // has to be marked for Istanbul.\\n                /* istanbul ignore if */\\n                if (this.sessionStateController.state() === SessionStateControllerState_1.default.NotConnected) {\\n                    // There's no point trying to 'disconnect', because we're not connected.\\n                    // The session state controller will bail.\\n                    this.logger.info('Start failed and not connected. Not cleaning up.');\\n                    return;\\n                }\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.Fail, () => __awaiter(this, void 0, void 0, function* () {\\n                    yield this.actionDisconnect(status, true, error);\\n                    if (!this.handleMeetingSessionStatus(status, error)) {\\n                        this.notifyStop(status, error);\\n                    }\\n                }));\\n            }\\n        });\\n    }\\n    createOrReuseSignalingTask() {\\n        if (!this.signalingTask) {\\n            this.initSignalingClient();\\n            this.signalingTask = new TimeoutTask_1.default(this.logger, new OpenSignalingConnectionTask_1.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs).once();\\n        }\\n        return this.signalingTask;\\n    }\\n    actionFinishConnecting() {\\n        this.signalingTask = undefined;\\n        this.meetingSessionContext.videoDuplexMode = SignalingProtocol_js_1.SdkStreamServiceType.RX;\\n        if (!this.meetingSessionContext.enableSimulcast) {\\n            if (this.useUpdateTransceiverControllerForUplink) {\\n                this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController();\\n            }\\n            else {\\n                this.enforceBandwidthLimitationForSender(this.meetingSessionContext.videoCaptureAndEncodeParameter.encodeBitrates()[0]);\\n            }\\n        }\\n        this.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.audioVideoDidStart).map(f => f.bind(observer)());\\n        });\\n        this._reconnectController.reset();\\n        // `receiveIndexTask` needs to be resumed first so it can set `remoteStreamDescriptions`\\n        this.receiveIndexTask.resumeIngestion();\\n        this.monitorTask.resumeResubscribeCheck();\\n    }\\n    /* @internal */\\n    stopReturningPromise() {\\n        var _a;\\n        // In order to avoid breaking backward compatibility, when only the\\n        // signaling connection is established we appear to not be connected.\\n        // We handle this by simply disconnecting the websocket directly.\\n        if (this.sessionStateController.state() === SessionStateControllerState_1.default.NotConnected) {\\n            // Unfortunately, this does not return a promise.\\n            (_a = this.meetingSessionContext.signalingClient) === null || _a === void 0 ? void 0 : _a.closeConnection();\\n            this.meetingSessionContext.signalingClient = null; // See comment in `actionDisconnect`\\n            this.cleanUpMediaStreamsAfterStop();\\n            return Promise.resolve();\\n        }\\n        /*\\n          Stops the current audio video meeting session.\\n          The stop method execution is deferred and executed after\\n          the current reconnection attempt completes.\\n          It disables any further reconnection attempts.\\n          Upon completion, AudioVideoObserver's `audioVideoDidStop`\\n          callback function is called with `MeetingSessionStatusCode.Left`.\\n        */\\n        return new Promise((resolve, reject) => {\\n            this.sessionStateController.perform(SessionStateControllerAction_1.default.Disconnect, () => {\\n                this._reconnectController.disableReconnect();\\n                this.logger.info('attendee left meeting, session will not be reconnected');\\n                this.actionDisconnect(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.Left), false, null)\\n                    .then(resolve)\\n                    .catch(reject);\\n            });\\n        });\\n    }\\n    stop() {\\n        this.stopReturningPromise();\\n    }\\n    actionDisconnect(status, reconnecting, error) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                yield new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoStop'), [\\n                    new TimeoutTask_1.default(this.logger, new LeaveAndReceiveLeaveAckTask_1.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs),\\n                ]).run();\\n            }\\n            catch (stopError) {\\n                this.logger.info('fail to stop');\\n            }\\n            try {\\n                const subtasks = [\\n                    new TimeoutTask_1.default(this.logger, new CleanStoppedSessionTask_1.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs),\\n                ];\\n                this.cleanUpMediaStreamsAfterStop();\\n                yield new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoClean'), subtasks).run();\\n            }\\n            catch (cleanError) {\\n                /* istanbul ignore next */\\n                this.logger.info('fail to clean');\\n            }\\n            this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishDisconnecting, () => {\\n                if (!reconnecting) {\\n                    // Do a hard reset of the signaling client in case this controller is reused;\\n                    // this will also cause `this.meetingSessionContext` to be reset if reused.\\n                    this.meetingSessionContext.signalingClient = null;\\n                    this.notifyStop(status, error);\\n                }\\n            });\\n        });\\n    }\\n    update(options = { needsRenegotiation: true }) {\\n        let needsRenegotiation = options.needsRenegotiation;\\n        // Check in case this function has been called before peer connection is set up\\n        // since that is necessary to try to update remote videos without the full resubscribe path\\n        needsRenegotiation || (needsRenegotiation = this.meetingSessionContext.peer === undefined);\\n        // If updating local or remote video without negotiation fails, fall back to renegotiation\\n        needsRenegotiation || (needsRenegotiation = !this.updateRemoteVideosFromLastVideosToReceive());\\n        needsRenegotiation || (needsRenegotiation = !this.updateLocalVideoFromPolicy());\\n        // `MeetingSessionContext.lastVideosToReceive` needs to be updated regardless\\n        this.meetingSessionContext.lastVideosToReceive = this.meetingSessionContext.videosToReceive;\\n        if (!needsRenegotiation) {\\n            this.logger.info('Update request does not require resubscribe');\\n            // Call `actionFinishUpdating` to apply the new encoding parameters that may have been set in `updateLocalVideoFromPolicy`.\\n            this.actionFinishUpdating();\\n            return true; // Skip the subscribe!\\n        }\\n        this.logger.info('Update request requires resubscribe');\\n        const result = this.sessionStateController.perform(SessionStateControllerAction_1.default.Update, () => {\\n            this.actionUpdateWithRenegotiation(true);\\n        });\\n        return (result === SessionStateControllerTransitionResult_1.default.Transitioned ||\\n            result === SessionStateControllerTransitionResult_1.default.DeferredTransition);\\n    }\\n    // This function will try to use the diff between `this.meetingSessionContext.lastVideosToReceive`\\n    // and `this.meetingSessionContext.videosToReceive` to determine if the changes can be accomplished\\n    // through `SignalingClient.remoteVideoUpdate` rather then the full subscribe.\\n    //\\n    // It requires the caller to manage `this.meetingSessionContext.lastVideosToReceive`\\n    // and `this.meetingSessionContext.videosToReceive` so that `this.meetingSessionContext.lastVideosToReceive`\\n    // contains the stream IDs from either last time a subscribe was set, or last time this function was set.\\n    //\\n    // It will return true if succesful, if false the caller must fall back to a full renegotiation\\n    updateRemoteVideosFromLastVideosToReceive() {\\n        var _a, _b;\\n        const context = this.meetingSessionContext;\\n        if (((_a = context.videosToReceive) === null || _a === void 0 ? void 0 : _a.empty()) || ((_b = context.lastVideosToReceive) === null || _b === void 0 ? void 0 : _b.empty())) {\\n            return false;\\n        }\\n        // Check existence of all required dependencies and requisite functions\\n        if (!context.transceiverController ||\\n            !context.transceiverController.getMidForStreamId ||\\n            !context.transceiverController.setStreamIdForMid ||\\n            !context.videosToReceive.forEach ||\\n            !context.signalingClient.remoteVideoUpdate ||\\n            !context.videoStreamIndex.overrideStreamIdMappings) {\\n            return false;\\n        }\\n        let added = [];\\n        const simulcastStreamUpdates = new Map();\\n        let removed = [];\\n        if (context.lastVideosToReceive === null) {\\n            added = context.videosToReceive.array();\\n        }\\n        else {\\n            const index = context.videoStreamIndex;\\n            context.videosToReceive.forEach((currentId) => {\\n                if (context.lastVideosToReceive.contain(currentId)) {\\n                    return;\\n                }\\n                // Check if group ID exists in previous set (i.e. simulcast stream switch)\\n                let foundUpdatedPreviousStreamId = false;\\n                context.lastVideosToReceive.forEach((previousId) => {\\n                    if (foundUpdatedPreviousStreamId) {\\n                        return; // Short circuit since we have already found it\\n                    }\\n                    if (index.StreamIdsInSameGroup(previousId, currentId)) {\\n                        simulcastStreamUpdates.set(previousId, currentId);\\n                        foundUpdatedPreviousStreamId = true;\\n                    }\\n                });\\n                if (!foundUpdatedPreviousStreamId) {\\n                    // Otherwise this must be a new stream\\n                    added.push(currentId);\\n                }\\n            });\\n            removed = context.lastVideosToReceive.array().filter(idFromPrevious => {\\n                const stillReceiving = context.videosToReceive.contain(idFromPrevious);\\n                const isUpdated = simulcastStreamUpdates.has(idFromPrevious);\\n                return !stillReceiving && !isUpdated;\\n            });\\n        }\\n        this.logger.info(`Request to update remote videos with added: ${added}, updated: ${[\\n            ...simulcastStreamUpdates.entries(),\\n        ]}, removed: ${removed}`);\\n        const updatedVideoSubscriptionConfigurations = [];\\n        for (const [previousId, currentId] of simulcastStreamUpdates.entries()) {\\n            const updatedConfig = new SignalingClientVideoSubscriptionConfiguration_1.default();\\n            updatedConfig.streamId = currentId;\\n            updatedConfig.attendeeId = context.videoStreamIndex.attendeeIdForStreamId(currentId);\\n            updatedConfig.mid = context.transceiverController.getMidForStreamId(previousId);\\n            if (updatedConfig.mid === undefined) {\\n                this.logger.info(`No MID found for stream ID ${previousId}, cannot update stream without renegotiation`);\\n                return false;\\n            }\\n            updatedVideoSubscriptionConfigurations.push(updatedConfig);\\n            // We need to override some other components dependent on the subscribe paths for certain functionality\\n            context.transceiverController.setStreamIdForMid(updatedConfig.mid, currentId);\\n            context.videoStreamIndex.overrideStreamIdMappings(previousId, currentId);\\n            if (context.videoTileController.haveVideoTileForAttendeeId(updatedConfig.attendeeId)) {\\n                const tile = context.videoTileController.getVideoTileForAttendeeId(updatedConfig.attendeeId);\\n                if (!tile.setStreamId) {\\n                    // Required function\\n                    return false;\\n                }\\n                tile.setStreamId(currentId);\\n            }\\n        }\\n        if (updatedVideoSubscriptionConfigurations.length !== 0) {\\n            context.signalingClient.remoteVideoUpdate(updatedVideoSubscriptionConfigurations, []);\\n        }\\n        // Only simulcast stream switches (i.e. not add/remove/source switches) are possible currently\\n        if (added.length !== 0 || removed.length !== 0) {\\n            return false;\\n        }\\n        // `updateRemoteVideosFromLastVideosToReceive` does not actually send a subscribe but it uses\\n        // `subscribeFrameSent` to cache the previous index so that we are able to do switches (not add/removes)\\n        // for simulcast stream layer changes. See `subscribeFrameSent` for more details.\\n        context.videoStreamIndex.subscribeFrameSent();\\n        return true;\\n    }\\n    updateLocalVideoFromPolicy() {\\n        // Try updating parameters without renegotiation\\n        if (this.meetingSessionContext.enableSimulcast) {\\n            // The following may result in `this.mayNeedRenegotiationForSimulcastLayerChange` being switched on\\n            const encodingParam = this.meetingSessionContext.videoUplinkBandwidthPolicy.chooseEncodingParameters();\\n            if (this.mayNeedRenegotiationForSimulcastLayerChange &&\\n                !this.negotiatedBitrateLayersAllocationRtpHeaderExtension()) {\\n                this.logger.info('Needs regenotiation for local video simulcast layer change');\\n                this.mayNeedRenegotiationForSimulcastLayerChange = false;\\n                return false;\\n            }\\n            this.meetingSessionContext.transceiverController.setEncodingParameters(encodingParam);\\n        }\\n        else {\\n            this.meetingSessionContext.videoCaptureAndEncodeParameter = this.meetingSessionContext.videoUplinkBandwidthPolicy.chooseCaptureAndEncodeParameters();\\n            // Bitrate will be set in `actionFinishUpdating`. This should never need a resubscribe.\\n        }\\n        this.logger.info('Updated local video from policy without renegotiation');\\n        return true;\\n    }\\n    negotiatedBitrateLayersAllocationRtpHeaderExtension() {\\n        if (!this.meetingSessionContext.transceiverController.localVideoTransceiver()) {\\n            return false;\\n        }\\n        const parameters = this.meetingSessionContext.transceiverController\\n            .localVideoTransceiver()\\n            .sender.getParameters();\\n        if (!parameters || !parameters.headerExtensions) {\\n            return false;\\n        }\\n        return parameters.headerExtensions.some(extension => extension.uri === 'http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00');\\n    }\\n    restartLocalVideo(callback) {\\n        const restartVideo = () => __awaiter(this, void 0, void 0, function* () {\\n            if (this._videoTileController.hasStartedLocalVideoTile()) {\\n                this.logger.info('stopping local video tile prior to local video restart');\\n                this._videoTileController.stopLocalVideoTile();\\n                this.logger.info('preparing local video restart update');\\n                yield this.actionUpdateWithRenegotiation(false);\\n                this.logger.info('starting local video tile for local video restart');\\n                this._videoTileController.startLocalVideoTile();\\n            }\\n            this.logger.info('finalizing local video restart update');\\n            yield this.actionUpdateWithRenegotiation(true);\\n            callback();\\n        });\\n        const result = this.sessionStateController.perform(SessionStateControllerAction_1.default.Update, () => {\\n            restartVideo();\\n        });\\n        return (result === SessionStateControllerTransitionResult_1.default.Transitioned ||\\n            result === SessionStateControllerTransitionResult_1.default.DeferredTransition);\\n    }\\n    replaceLocalVideo(videoStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!videoStream || videoStream.getVideoTracks().length < 1) {\\n                throw new Error('could not acquire video track');\\n            }\\n            if (!this.meetingSessionContext || !this.meetingSessionContext.peer) {\\n                throw new Error('no active meeting and peer connection');\\n            }\\n            // if there is a local tile, a video tile update event should be fired.\\n            const localTile = this.meetingSessionContext.videoTileController.getLocalVideoTile();\\n            if (localTile) {\\n                const state = localTile.state();\\n                const settings = videoStream.getVideoTracks()[0].getSettings();\\n                // so tile update wil be fired.\\n                localTile.bindVideoStream(state.boundAttendeeId, true, videoStream, settings.width, settings.height, state.streamId, state.boundExternalUserId);\\n            }\\n            yield this.meetingSessionContext.transceiverController.setVideoInput(videoStream.getVideoTracks()[0]);\\n            // Update the active video input on subscription context to match what we just changed\\n            // so that subsequent meeting actions can reuse and destroy it.\\n            this.meetingSessionContext.activeVideoInput = videoStream;\\n            this.logger.info('Local video input is updated');\\n        });\\n    }\\n    replaceLocalAudio(audioStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!audioStream || audioStream.getAudioTracks().length < 1) {\\n                throw new Error('could not acquire audio track');\\n            }\\n            if (!this.meetingSessionContext || !this.meetingSessionContext.peer) {\\n                throw new Error('no active meeting and peer connection');\\n            }\\n            this.connectionHealthData.reset();\\n            this.connectionHealthData.setConnectionStartTime();\\n            const replaceTrackSuccess = yield this.meetingSessionContext.transceiverController.replaceAudioTrack(audioStream.getAudioTracks()[0]);\\n            if (!replaceTrackSuccess) {\\n                throw new Error('Failed to replace audio track');\\n            }\\n            this.meetingSessionContext.activeAudioInput = audioStream;\\n            this.logger.info('Local audio input is updated');\\n        });\\n    }\\n    actionUpdateWithRenegotiation(notify) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // See declaration (unpaused in actionFinishUpdating)\\n            // The operations in `update` do not need this protection because they are synchronous.\\n            this.monitorTask.pauseResubscribeCheck();\\n            this.receiveIndexTask.pauseIngestion();\\n            // TODO: do not block other updates while waiting for video input\\n            try {\\n                yield new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoUpdate'), [\\n                    new ReceiveVideoInputTask_1.default(this.meetingSessionContext),\\n                    new TimeoutTask_1.default(this.logger, new SerialGroupTask_1.default(this.logger, 'UpdateSession', [\\n                        new AttachMediaInputTask_1.default(this.meetingSessionContext),\\n                        new CreateSDPTask_1.default(this.meetingSessionContext),\\n                        new SetLocalDescriptionTask_1.default(this.meetingSessionContext),\\n                        new FinishGatheringICECandidatesTask_1.default(this.meetingSessionContext),\\n                        new SubscribeAndReceiveSubscribeAckTask_1.default(this.meetingSessionContext),\\n                        new SetRemoteDescriptionTask_1.default(this.meetingSessionContext),\\n                    ]), this.configuration.connectionTimeoutMs),\\n                ]).run();\\n                if (notify) {\\n                    this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishUpdating, () => {\\n                        this.actionFinishUpdating();\\n                    });\\n                }\\n            }\\n            catch (error) {\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishUpdating, () => {\\n                    const status = new MeetingSessionStatus_1.default(this.getMeetingStatusCode(error) || MeetingSessionStatusCode_1.default.TaskFailed);\\n                    if (status.statusCode() !== MeetingSessionStatusCode_1.default.IncompatibleSDP) {\\n                        this.logger.info('failed to update audio-video session');\\n                    }\\n                    this.handleMeetingSessionStatus(status, error);\\n                });\\n            }\\n        });\\n    }\\n    notifyStop(status, error) {\\n        var _a;\\n        this.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.audioVideoDidStop).map(f => f.bind(observer)(status));\\n        });\\n        if (this.promotedToPrimaryMeeting && error) {\\n            this.forEachObserver(observer => {\\n                this.promotedToPrimaryMeeting = false;\\n                Types_1.Maybe.of(observer.audioVideoWasDemotedFromPrimaryMeeting).map(f => f.bind(observer)(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.SignalingInternalServerError)));\\n            });\\n        }\\n        /* istanbul ignore else */\\n        if (this.eventController) {\\n            const { signalingOpenDurationMs, poorConnectionCount, startTimeMs, iceGatheringDurationMs, attendeePresenceDurationMs, meetingStartDurationMs, } = this.meetingSessionContext;\\n            const attributes = {\\n                maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,\\n                meetingDurationMs: startTimeMs === null ? 0 : Math.round(Date.now() - startTimeMs),\\n                meetingStatus: MeetingSessionStatusCode_1.default[status.statusCode()],\\n                signalingOpenDurationMs,\\n                iceGatheringDurationMs,\\n                attendeePresenceDurationMs,\\n                poorConnectionCount,\\n                meetingStartDurationMs,\\n                retryCount: this.totalRetryCount,\\n            };\\n            /* istanbul ignore next: toString is optional */\\n            const meetingErrorMessage = (error && error.message) || ((_a = status.toString) === null || _a === void 0 ? void 0 : _a.call(status)) || '';\\n            if (attributes.meetingDurationMs === 0) {\\n                attributes.meetingErrorMessage = meetingErrorMessage;\\n                delete attributes.meetingDurationMs;\\n                delete attributes.attendeePresenceDurationMs;\\n                delete attributes.meetingStartDurationMs;\\n                this.eventController.publishEvent('meetingStartFailed', attributes);\\n            }\\n            else if (status.isFailure() || status.isAudioConnectionFailure()) {\\n                attributes.meetingErrorMessage = meetingErrorMessage;\\n                this.eventController.publishEvent('meetingFailed', attributes);\\n            }\\n            else {\\n                this.eventController.publishEvent('meetingEnded', attributes);\\n            }\\n        }\\n    }\\n    actionFinishUpdating() {\\n        // we do not update parameter for simulcast since they are updated in AttachMediaInputTask\\n        if (!this.meetingSessionContext.enableSimulcast) {\\n            if (this.useUpdateTransceiverControllerForUplink) {\\n                this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController();\\n            }\\n            else {\\n                const maxBitrateKbps = this.meetingSessionContext.videoCaptureAndEncodeParameter.encodeBitrates()[0];\\n                this.enforceBandwidthLimitationForSender(maxBitrateKbps);\\n            }\\n        }\\n        this.monitorTask.resumeResubscribeCheck();\\n        this.receiveIndexTask.resumeIngestion();\\n        this.logger.info('updated audio-video session');\\n    }\\n    reconnect(status, error) {\\n        const willRetry = this._reconnectController.retryWithBackoff(() => __awaiter(this, void 0, void 0, function* () {\\n            if (this.sessionStateController.state() === SessionStateControllerState_1.default.NotConnected) {\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.Connect, () => {\\n                    this.actionConnect(true);\\n                });\\n            }\\n            else {\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.Reconnect, () => {\\n                    this.actionReconnect(status);\\n                });\\n            }\\n            this.totalRetryCount += 1;\\n        }), () => {\\n            this.logger.info('canceled retry');\\n        });\\n        if (!willRetry) {\\n            this.sessionStateController.perform(SessionStateControllerAction_1.default.Fail, () => {\\n                this.actionDisconnect(status, false, error);\\n            });\\n        }\\n        return willRetry;\\n    }\\n    actionReconnect(status) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._reconnectController.hasStartedConnectionAttempt()) {\\n                this._reconnectController.startedConnectionAttempt(false);\\n                this.forEachObserver(observer => {\\n                    Types_1.Maybe.of(observer.audioVideoDidStartConnecting).map(f => f.bind(observer)(true));\\n                });\\n            }\\n            this.meetingSessionContext.volumeIndicatorAdapter.onReconnect();\\n            this.connectionHealthData.reset();\\n            try {\\n                yield new SerialGroupTask_1.default(this.logger, this.wrapTaskName('AudioVideoReconnect'), [\\n                    new TimeoutTask_1.default(this.logger, new SerialGroupTask_1.default(this.logger, 'Media', [\\n                        new CleanRestartedSessionTask_1.default(this.meetingSessionContext),\\n                        new SerialGroupTask_1.default(this.logger, 'Signaling', [\\n                            new OpenSignalingConnectionTask_1.default(this.meetingSessionContext),\\n                            new JoinAndReceiveIndexTask_1.default(this.meetingSessionContext),\\n                            new ReceiveTURNCredentialsTask_1.default(this.meetingSessionContext),\\n                        ]),\\n                        new CreatePeerConnectionTask_1.default(this.meetingSessionContext),\\n                    ]), this.configuration.connectionTimeoutMs),\\n                    // TODO: Do we need ReceiveVideoInputTask in the reconnect operation?\\n                    new ReceiveVideoInputTask_1.default(this.meetingSessionContext),\\n                    new TimeoutTask_1.default(this.logger, new SerialGroupTask_1.default(this.logger, 'UpdateSession', [\\n                        new AttachMediaInputTask_1.default(this.meetingSessionContext),\\n                        new CreateSDPTask_1.default(this.meetingSessionContext),\\n                        new SetLocalDescriptionTask_1.default(this.meetingSessionContext),\\n                        new FinishGatheringICECandidatesTask_1.default(this.meetingSessionContext),\\n                        new SubscribeAndReceiveSubscribeAckTask_1.default(this.meetingSessionContext),\\n                        new SetRemoteDescriptionTask_1.default(this.meetingSessionContext),\\n                    ]), this.configuration.connectionTimeoutMs),\\n                ]).run();\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishConnecting, () => {\\n                    /* istanbul ignore else */\\n                    if (this.eventController) {\\n                        const { signalingOpenDurationMs, poorConnectionCount, startTimeMs, iceGatheringDurationMs, attendeePresenceDurationMs, meetingStartDurationMs, } = this.meetingSessionContext;\\n                        const attributes = {\\n                            maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,\\n                            meetingDurationMs: Math.round(Date.now() - startTimeMs),\\n                            meetingStatus: MeetingSessionStatusCode_1.default[status.statusCode()],\\n                            signalingOpenDurationMs,\\n                            iceGatheringDurationMs,\\n                            attendeePresenceDurationMs,\\n                            poorConnectionCount,\\n                            meetingStartDurationMs,\\n                            retryCount: this.totalRetryCount,\\n                        };\\n                        this.eventController.publishEvent('meetingReconnected', attributes);\\n                    }\\n                    this.actionFinishConnecting();\\n                });\\n            }\\n            catch (error) {\\n                // To perform the \\\"Reconnect\\\" action again, the session should be in the \\\"Connected\\\" state.\\n                this.sessionStateController.perform(SessionStateControllerAction_1.default.FinishConnecting, () => {\\n                    this.logger.info('failed to reconnect audio-video session');\\n                    const status = new MeetingSessionStatus_1.default(this.getMeetingStatusCode(error) || MeetingSessionStatusCode_1.default.TaskFailed);\\n                    this.handleMeetingSessionStatus(status, error);\\n                });\\n            }\\n            this.connectionHealthData.setConnectionStartTime();\\n        });\\n    }\\n    wrapTaskName(taskName) {\\n        return `${taskName}/${this.configuration.meetingId}/${this.configuration.credentials.attendeeId}`;\\n    }\\n    cleanUpMediaStreamsAfterStop() {\\n        this._mediaStreamBroker.removeMediaStreamBrokerObserver(this);\\n        this.meetingSessionContext.activeAudioInput = undefined;\\n        this.meetingSessionContext.activeVideoInput = undefined;\\n    }\\n    // Extract the meeting status from `Error.message`, relying on specific phrasing\\n    // 'the meeting status code ${CODE}`.\\n    //\\n    // e.g. reject(new Error(\\n    //        `canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode.MeetingEnded}`));\\n    getMeetingStatusCode(error) {\\n        const matched = /the meeting status code: (\\\\d+)/.exec(error && error.message);\\n        if (matched && matched.length > 1) {\\n            return Number.parseInt(matched[1], 10);\\n        }\\n        return null;\\n    }\\n    enforceBandwidthLimitationForSender(maxBitrateKbps) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            yield this.meetingSessionContext.transceiverController.setVideoSendingBitrateKbps(maxBitrateKbps);\\n        });\\n    }\\n    handleMeetingSessionStatus(status, error) {\\n        this.logger.info(`handling status: ${MeetingSessionStatusCode_1.default[status.statusCode()]}`);\\n        if (!status.isTerminal()) {\\n            if (this.meetingSessionContext.statsCollector) {\\n                this.meetingSessionContext.statsCollector.logMeetingSessionStatus(status);\\n            }\\n        }\\n        if (status.statusCode() === MeetingSessionStatusCode_1.default.IncompatibleSDP) {\\n            this.restartLocalVideo(() => {\\n                this.logger.info('handled incompatible SDP by attempting to restart video');\\n            });\\n            return true;\\n        }\\n        if (status.statusCode() === MeetingSessionStatusCode_1.default.VideoCallSwitchToViewOnly) {\\n            this._videoTileController.removeLocalVideoTile();\\n            this.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.videoSendDidBecomeUnavailable).map(f => f.bind(observer)());\\n            });\\n            return false;\\n        }\\n        if (status.statusCode() === MeetingSessionStatusCode_1.default.AudioVideoWasRemovedFromPrimaryMeeting) {\\n            this.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.audioVideoWasDemotedFromPrimaryMeeting).map(f => f.bind(observer)(status));\\n            });\\n            return false;\\n        }\\n        if (status.isTerminal()) {\\n            this.logger.error('session will not be reconnected');\\n            if (this.meetingSessionContext.reconnectController) {\\n                this.meetingSessionContext.reconnectController.disableReconnect();\\n            }\\n        }\\n        if (status.isFailure() || status.isTerminal()) {\\n            if (this.meetingSessionContext.reconnectController) {\\n                const willRetry = this.reconnect(status, error);\\n                if (willRetry) {\\n                    this.logger.warn(`will retry due to status code ${MeetingSessionStatusCode_1.default[status.statusCode()]}${error ? ` and error: ${error.message}` : ``}`);\\n                }\\n                else {\\n                    this.logger.error(`failed with status code ${MeetingSessionStatusCode_1.default[status.statusCode()]}${error ? ` and error: ${error.message}` : ``}`);\\n                }\\n                return willRetry;\\n            }\\n        }\\n        return false;\\n    }\\n    setVideoMaxBandwidthKbps(maxBandwidthKbps) {\\n        if (maxBandwidthKbps <= 0) {\\n            throw new Error('Max bandwidth kbps has to be greater than 0');\\n        }\\n        if (this.meetingSessionContext && this.meetingSessionContext.videoUplinkBandwidthPolicy) {\\n            this.logger.info(`video send has ideal max bandwidth ${maxBandwidthKbps} kbps`);\\n            this.meetingSessionContext.videoUplinkBandwidthPolicy.setIdealMaxBandwidthKbps(maxBandwidthKbps);\\n        }\\n        this.maxUplinkBandwidthKbps = maxBandwidthKbps;\\n    }\\n    handleHasBandwidthPriority(hasBandwidthPriority) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.meetingSessionContext &&\\n                this.meetingSessionContext.videoUplinkBandwidthPolicy &&\\n                !this.meetingSessionContext.enableSimulcast) {\\n                if (this.useUpdateTransceiverControllerForUplink) {\\n                    this.meetingSessionContext.videoUplinkBandwidthPolicy.setHasBandwidthPriority(hasBandwidthPriority);\\n                    yield this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController();\\n                    return;\\n                }\\n                const oldMaxBandwidth = this.meetingSessionContext.videoUplinkBandwidthPolicy.maxBandwidthKbps();\\n                this.meetingSessionContext.videoUplinkBandwidthPolicy.setHasBandwidthPriority(hasBandwidthPriority);\\n                const newMaxBandwidth = this.meetingSessionContext.videoUplinkBandwidthPolicy.maxBandwidthKbps();\\n                if (oldMaxBandwidth !== newMaxBandwidth) {\\n                    this.logger.info(`video send bandwidth priority ${hasBandwidthPriority} max has changed from ${oldMaxBandwidth} kbps to ${newMaxBandwidth} kbps`);\\n                    yield this.enforceBandwidthLimitationForSender(newMaxBandwidth);\\n                }\\n            }\\n        });\\n    }\\n    pauseReceivingStream(streamId) {\\n        if (!!this.meetingSessionContext && this.meetingSessionContext.signalingClient) {\\n            this.meetingSessionContext.signalingClient.pause([streamId]);\\n        }\\n    }\\n    resumeReceivingStream(streamId) {\\n        if (!!this.meetingSessionContext && this.meetingSessionContext.signalingClient) {\\n            this.meetingSessionContext.signalingClient.resume([streamId]);\\n        }\\n    }\\n    setVideoCodecSendPreferences(preferences) {\\n        this.videoSendCodecPreferences = preferences; // In case we haven't called `initSignalingClient` yet\\n        this.meetingSessionContext.videoSendCodecPreferences = preferences;\\n        this.update({ needsRenegotiation: true });\\n    }\\n    getRemoteVideoSources() {\\n        const { videoStreamIndex } = this.meetingSessionContext;\\n        if (!videoStreamIndex) {\\n            this.logger.info('meeting has not started');\\n            return [];\\n        }\\n        const selfAttendeeId = this.configuration.credentials.attendeeId;\\n        return videoStreamIndex.allVideoSendingSourcesExcludingSelf(selfAttendeeId);\\n    }\\n    encodingSimulcastLayersDidChange(simulcastLayers) {\\n        this.mayNeedRenegotiationForSimulcastLayerChange = true;\\n        this.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.encodingSimulcastLayersDidChange).map(f => f.bind(observer)(simulcastLayers));\\n        });\\n    }\\n    promoteToPrimaryMeeting(credentials) {\\n        return this.actionPromoteToPrimaryMeeting(credentials);\\n    }\\n    actionPromoteToPrimaryMeeting(credentials) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let resultingStatus = new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.SignalingRequestFailed);\\n            yield new SerialGroupTask_1.default(this.logger, this.wrapTaskName('PromoteToPrimaryMeeting'), [\\n                new TimeoutTask_1.default(this.logger, new PromoteToPrimaryMeetingTask_1.default(this.meetingSessionContext, credentials, (status) => {\\n                    resultingStatus = status;\\n                }), this.configuration.connectionTimeoutMs),\\n            ]).run();\\n            this.promotedToPrimaryMeeting = resultingStatus.statusCode() === MeetingSessionStatusCode_1.default.OK;\\n            return resultingStatus;\\n        });\\n    }\\n    demoteFromPrimaryMeeting() {\\n        this.meetingSessionContext.signalingClient.demoteFromPrimaryMeeting();\\n        this.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.audioVideoWasDemotedFromPrimaryMeeting).map(f => f.bind(observer)(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.OK)));\\n        });\\n    }\\n    videoInputDidChange(videoStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.info('Receive a video input change event');\\n            // No active meeting, there is nothing to do\\n            if (!this.meetingSessionContext || !this.meetingSessionContext.peer) {\\n                this.logger.info('Skip updating video input because there is no active meeting and peer connection');\\n                return;\\n            }\\n            if (this._videoTileController.hasStartedLocalVideoTile()) {\\n                if (videoStream) {\\n                    yield this.replaceLocalVideo(videoStream);\\n                }\\n                else {\\n                    this._videoTileController.stopLocalVideoTile();\\n                }\\n            }\\n        });\\n    }\\n    audioInputDidChange(audioStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.info('Receive an audio input change event');\\n            // No active meeting, there is nothing to do\\n            if (!this.meetingSessionContext || !this.meetingSessionContext.peer) {\\n                this.logger.info('Skip updating audio input because there is no active meeting and peer connection');\\n                return;\\n            }\\n            if (!audioStream) {\\n                // If audio input stream stopped, try to get empty audio device from media stream broker\\n                try {\\n                    audioStream = yield this.mediaStreamBroker.acquireAudioInputStream();\\n                }\\n                catch (error) {\\n                    this.logger.error('Could not acquire audio track from mediaStreamBroker');\\n                    return;\\n                }\\n            }\\n            yield this.replaceLocalAudio(audioStream);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultAudioVideoController;\\nDefaultAudioVideoController.MIN_VOLUME_DECIBELS = -42;\\nDefaultAudioVideoController.MAX_VOLUME_DECIBELS = -14;\\nDefaultAudioVideoController.PING_PONG_INTERVAL_MS = 10000;\\n//# sourceMappingURL=DefaultAudioVideoController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/NoOpAudioVideoController.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/NoOpAudioVideoController.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ../backoff/FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nconst DefaultEventController_1 = __webpack_require__(/*! ../eventcontroller/DefaultEventController */ \\\"./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js\\\");\\nconst NoOpDebugLogger_1 = __webpack_require__(/*! ../logger/NoOpDebugLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/NoOpDebugLogger.js\\\");\\nconst NoOpMediaStreamBroker_1 = __webpack_require__(/*! ../mediastreambroker/NoOpMediaStreamBroker */ \\\"./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js\\\");\\nconst MeetingSessionConfiguration_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js\\\");\\nconst MeetingSessionCredentials_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js\\\");\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst MeetingSessionURLs_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionURLs */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js\\\");\\nconst DefaultReconnectController_1 = __webpack_require__(/*! ../reconnectcontroller/DefaultReconnectController */ \\\"./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js\\\");\\nconst DefaultWebSocketAdapter_1 = __webpack_require__(/*! ../websocketadapter/DefaultWebSocketAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js\\\");\\nconst DefaultAudioVideoController_1 = __webpack_require__(/*! ./DefaultAudioVideoController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js\\\");\\nclass NoOpAudioVideoController extends DefaultAudioVideoController_1.default {\\n    constructor(configuration) {\\n        const emptyConfiguration = new MeetingSessionConfiguration_1.default();\\n        emptyConfiguration.meetingId = '';\\n        emptyConfiguration.externalMeetingId = '';\\n        emptyConfiguration.credentials = new MeetingSessionCredentials_1.default();\\n        emptyConfiguration.credentials.attendeeId = '';\\n        emptyConfiguration.credentials.joinToken = '';\\n        emptyConfiguration.urls = new MeetingSessionURLs_1.default();\\n        emptyConfiguration.urls.turnControlURL = '';\\n        emptyConfiguration.urls.audioHostURL = '';\\n        emptyConfiguration.urls.signalingURL = 'wss://localhost/';\\n        const noOpLogger = new NoOpDebugLogger_1.default();\\n        super(configuration ? configuration : emptyConfiguration, noOpLogger, new DefaultWebSocketAdapter_1.default(new NoOpDebugLogger_1.default()), new NoOpMediaStreamBroker_1.default(), new DefaultReconnectController_1.default(0, new FullJitterBackoff_1.default(0, 0, 0)), new DefaultEventController_1.default(configuration ? configuration : emptyConfiguration, noOpLogger));\\n    }\\n    setAudioProfile(_audioProfile) { }\\n    start() { }\\n    stop() { }\\n    promoteToPrimaryMeeting(_) {\\n        return Promise.resolve(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.OK));\\n    }\\n    demoteFromPrimaryMeeting() { }\\n}\\nexports[\\\"default\\\"] = NoOpAudioVideoController;\\n//# sourceMappingURL=NoOpAudioVideoController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/NoOpAudioVideoController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/audiovideofacade/DefaultAudioVideoFacade.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/audiovideofacade/DefaultAudioVideoFacade.js ***!\n  \\********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst VideoTransformDevice_1 = __webpack_require__(/*! ../devicecontroller/VideoTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js\\\");\\nclass DefaultAudioVideoFacade {\\n    constructor(audioVideoController, videoTileController, realtimeController, audioMixController, deviceController, contentShareController) {\\n        this.audioVideoController = audioVideoController;\\n        this.videoTileController = videoTileController;\\n        this.realtimeController = realtimeController;\\n        this.audioMixController = audioMixController;\\n        this.deviceController = deviceController;\\n        this.contentShareController = contentShareController;\\n    }\\n    addObserver(observer) {\\n        this.audioVideoController.addObserver(observer);\\n        this.trace('addObserver');\\n    }\\n    removeObserver(observer) {\\n        this.audioVideoController.removeObserver(observer);\\n        this.trace('removeObserver');\\n    }\\n    setAudioProfile(audioProfile) {\\n        this.trace('setAudioProfile', audioProfile);\\n        this.audioVideoController.setAudioProfile(audioProfile);\\n    }\\n    start(options) {\\n        this.audioVideoController.start(options);\\n        this.trace('start');\\n    }\\n    stop() {\\n        this.audioVideoController.stop();\\n        this.trace('stop');\\n    }\\n    /**\\n     * This API will be deprecated in favor of `ClientMetricReport.getRTCStatsReport()`.\\n     *\\n     * It makes an additional call to the `getStats` API and therefore may cause slight performance degradation.\\n     *\\n     * Please subscribe to `metricsDidReceive(clientMetricReport: ClientMetricReport)` callback,\\n     * and get the raw `RTCStatsReport` via `clientMetricReport.getRTCStatsReport()`.\\n     */\\n    getRTCPeerConnectionStats(selector) {\\n        this.trace('getRTCPeerConnectionStats', selector ? selector.id : null);\\n        return this.audioVideoController.getRTCPeerConnectionStats(selector);\\n    }\\n    bindAudioElement(element) {\\n        const result = this.audioMixController.bindAudioElement(element);\\n        this.trace('bindAudioElement', element.id, result);\\n        return result;\\n    }\\n    unbindAudioElement() {\\n        this.audioMixController.unbindAudioElement();\\n        this.trace('unbindAudioElement');\\n    }\\n    getCurrentMeetingAudioStream() {\\n        this.trace('getCurrentConferenceStream');\\n        return this.audioMixController.getCurrentMeetingAudioStream();\\n    }\\n    addAudioMixObserver(observer) {\\n        this.trace('addAudioMixObserver');\\n        this.audioMixController.addAudioMixObserver(observer);\\n    }\\n    removeAudioMixObserver(observer) {\\n        this.trace('removeAudioMixObserver');\\n        this.audioMixController.removeAudioMixObserver(observer);\\n    }\\n    bindVideoElement(tileId, videoElement) {\\n        this.videoTileController.bindVideoElement(tileId, videoElement);\\n        this.trace('bindVideoElement', { tileId: tileId, videoElementId: videoElement.id });\\n    }\\n    unbindVideoElement(tileId, cleanUpVideoElement = true) {\\n        this.videoTileController.unbindVideoElement(tileId, cleanUpVideoElement);\\n        this.trace('unbindVideoElement', { tileId: tileId, cleanUpVideoElement: cleanUpVideoElement });\\n    }\\n    startLocalVideoTile() {\\n        const result = this.videoTileController.startLocalVideoTile();\\n        this.trace('startLocalVideoTile', null, result);\\n        return result;\\n    }\\n    stopLocalVideoTile() {\\n        this.videoTileController.stopLocalVideoTile();\\n        this.trace('stopLocalVideoTile');\\n    }\\n    hasStartedLocalVideoTile() {\\n        const result = this.videoTileController.hasStartedLocalVideoTile();\\n        this.trace('hasStartedLocalVideoTile', null, result);\\n        return result;\\n    }\\n    removeLocalVideoTile() {\\n        this.videoTileController.removeLocalVideoTile();\\n        this.trace('removeLocalVideoTile');\\n    }\\n    getLocalVideoTile() {\\n        const result = this.videoTileController.getLocalVideoTile();\\n        this.trace('getLocalVideoTile');\\n        return result;\\n    }\\n    pauseVideoTile(tileId) {\\n        this.videoTileController.pauseVideoTile(tileId);\\n        this.trace('pauseVideoTile', tileId);\\n    }\\n    unpauseVideoTile(tileId) {\\n        this.videoTileController.unpauseVideoTile(tileId);\\n        this.trace('unpauseVideoTile', tileId);\\n    }\\n    getVideoTile(tileId) {\\n        const result = this.videoTileController.getVideoTile(tileId);\\n        this.trace('getVideoTile', tileId);\\n        return result;\\n    }\\n    getAllRemoteVideoTiles() {\\n        const result = this.videoTileController.getAllRemoteVideoTiles();\\n        this.trace('getAllRemoteVideoTiles');\\n        return result;\\n    }\\n    getAllVideoTiles() {\\n        const result = this.videoTileController.getAllVideoTiles();\\n        this.trace('getAllVideoTiles');\\n        return result;\\n    }\\n    addVideoTile() {\\n        const result = this.videoTileController.addVideoTile();\\n        this.trace('addVideoTile', null, result.state());\\n        return result;\\n    }\\n    removeVideoTile(tileId) {\\n        this.videoTileController.removeVideoTile(tileId);\\n        this.trace('removeVideoTile', tileId);\\n    }\\n    removeVideoTilesByAttendeeId(attendeeId) {\\n        const result = this.videoTileController.removeVideoTilesByAttendeeId(attendeeId);\\n        this.trace('removeVideoTilesByAttendeeId', attendeeId, result);\\n        return result;\\n    }\\n    removeAllVideoTiles() {\\n        this.videoTileController.removeAllVideoTiles();\\n        this.trace('removeAllVideoTiles');\\n    }\\n    captureVideoTile(tileId) {\\n        const result = this.videoTileController.captureVideoTile(tileId);\\n        this.trace('captureVideoTile', tileId);\\n        return result;\\n    }\\n    realtimeSubscribeToAttendeeIdPresence(callback) {\\n        this.realtimeController.realtimeSubscribeToAttendeeIdPresence(callback);\\n        this.trace('realtimeSubscribeToAttendeeIdPresence');\\n    }\\n    realtimeUnsubscribeToAttendeeIdPresence(callback) {\\n        this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(callback);\\n        this.trace('realtimeUnsubscribeToAttendeeIdPresence');\\n    }\\n    realtimeSetCanUnmuteLocalAudio(canUnmute) {\\n        this.realtimeController.realtimeSetCanUnmuteLocalAudio(canUnmute);\\n        this.trace('realtimeSetCanUnmuteLocalAudio', canUnmute);\\n    }\\n    realtimeSubscribeToSetCanUnmuteLocalAudio(callback) {\\n        this.realtimeController.realtimeSubscribeToSetCanUnmuteLocalAudio(callback);\\n        this.trace('realtimeSubscribeToSetCanUnmuteLocalAudio');\\n    }\\n    realtimeUnsubscribeToSetCanUnmuteLocalAudio(callback) {\\n        this.realtimeController.realtimeUnsubscribeToSetCanUnmuteLocalAudio(callback);\\n        this.trace('realtimeUnsubscribeToSetCanUnmuteLocalAudio');\\n    }\\n    realtimeCanUnmuteLocalAudio() {\\n        const result = this.realtimeController.realtimeCanUnmuteLocalAudio();\\n        this.trace('realtimeCanUnmuteLocalAudio', null, result);\\n        return result;\\n    }\\n    realtimeMuteLocalAudio() {\\n        this.realtimeController.realtimeMuteLocalAudio();\\n        this.trace('realtimeMuteLocalAudio');\\n    }\\n    realtimeUnmuteLocalAudio() {\\n        const result = this.realtimeController.realtimeUnmuteLocalAudio();\\n        this.trace('realtimeUnmuteLocalAudio');\\n        return result;\\n    }\\n    realtimeSubscribeToMuteAndUnmuteLocalAudio(callback) {\\n        this.realtimeController.realtimeSubscribeToMuteAndUnmuteLocalAudio(callback);\\n        this.trace('realtimeSubscribeToMuteAndUnmuteLocalAudio');\\n    }\\n    realtimeUnsubscribeToMuteAndUnmuteLocalAudio(callback) {\\n        this.realtimeController.realtimeUnsubscribeToMuteAndUnmuteLocalAudio(callback);\\n        this.trace('realtimeUnsubscribeToMuteAndUnmuteLocalAudio');\\n    }\\n    realtimeIsLocalAudioMuted() {\\n        const result = this.realtimeController.realtimeIsLocalAudioMuted();\\n        this.trace('realtimeIsLocalAudioMuted');\\n        return result;\\n    }\\n    realtimeSubscribeToVolumeIndicator(attendeeId, callback) {\\n        this.realtimeController.realtimeSubscribeToVolumeIndicator(attendeeId, callback);\\n        this.trace('realtimeSubscribeToVolumeIndicator', attendeeId);\\n    }\\n    realtimeUnsubscribeFromVolumeIndicator(attendeeId, callback) {\\n        this.realtimeController.realtimeUnsubscribeFromVolumeIndicator(attendeeId, callback);\\n        this.trace('realtimeUnsubscribeFromVolumeIndicator', attendeeId, callback);\\n    }\\n    realtimeSubscribeToLocalSignalStrengthChange(callback) {\\n        this.realtimeController.realtimeSubscribeToLocalSignalStrengthChange(callback);\\n        this.trace('realtimeSubscribeToLocalSignalStrengthChange');\\n    }\\n    realtimeUnsubscribeToLocalSignalStrengthChange(callback) {\\n        this.realtimeController.realtimeUnsubscribeToLocalSignalStrengthChange(callback);\\n        this.trace('realtimeUnsubscribeToLocalSignalStrengthChange');\\n    }\\n    realtimeSendDataMessage(topic, // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    data, lifetimeMs) {\\n        this.realtimeController.realtimeSendDataMessage(topic, data, lifetimeMs);\\n        this.trace('realtimeSendDataMessage');\\n    }\\n    realtimeSubscribeToReceiveDataMessage(topic, callback) {\\n        this.realtimeController.realtimeSubscribeToReceiveDataMessage(topic, callback);\\n        this.trace('realtimeSubscribeToReceiveDataMessage');\\n    }\\n    realtimeUnsubscribeFromReceiveDataMessage(topic) {\\n        this.realtimeController.realtimeUnsubscribeFromReceiveDataMessage(topic);\\n        this.trace('realtimeUnsubscribeFromReceiveDataMessage');\\n    }\\n    realtimeSubscribeToFatalError(callback) {\\n        this.realtimeController.realtimeSubscribeToFatalError(callback);\\n        this.trace('realtimeSubscribeToFatalError');\\n    }\\n    realtimeUnsubscribeToFatalError(callback) {\\n        this.realtimeController.realtimeUnsubscribeToFatalError(callback);\\n        this.trace('realtimeUnsubscribeToFatalError');\\n    }\\n    subscribeToActiveSpeakerDetector(policy, callback, scoresCallback, scoresCallbackIntervalMs) {\\n        this.audioVideoController.activeSpeakerDetector.subscribe(policy, callback, scoresCallback, scoresCallbackIntervalMs);\\n        this.trace('subscribeToActiveSpeakerDetector');\\n    }\\n    unsubscribeFromActiveSpeakerDetector(callback) {\\n        this.audioVideoController.activeSpeakerDetector.unsubscribe(callback);\\n        this.trace('unsubscribeFromActiveSpeakerDetector');\\n    }\\n    listAudioInputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.deviceController.listAudioInputDevices(forceUpdate);\\n            this.trace('listAudioInputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    listVideoInputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.deviceController.listVideoInputDevices(forceUpdate);\\n            this.trace('listVideoInputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    listAudioOutputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.deviceController.listAudioOutputDevices(forceUpdate);\\n            this.trace('listAudioOutputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    startAudioInput(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.trace('startAudioInput', device);\\n            return this.deviceController.startAudioInput(device);\\n        });\\n    }\\n    stopAudioInput() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.trace('stopAudioInput');\\n            return this.deviceController.stopAudioInput();\\n        });\\n    }\\n    startVideoInput(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (VideoTransformDevice_1.isVideoTransformDevice(device)) {\\n                // Don't stringify the device to avoid failures when cyclic object references are present.\\n                this.trace('startVideoInput with transform device');\\n            }\\n            else {\\n                this.trace('startVideoInput', device);\\n            }\\n            return this.deviceController.startVideoInput(device);\\n        });\\n    }\\n    stopVideoInput() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.trace('stopVideoInput');\\n            return this.deviceController.stopVideoInput();\\n        });\\n    }\\n    chooseAudioOutput(deviceId) {\\n        const result = this.deviceController.chooseAudioOutput(deviceId);\\n        this.trace('chooseAudioOutput', deviceId);\\n        return result;\\n    }\\n    addDeviceChangeObserver(observer) {\\n        this.deviceController.addDeviceChangeObserver(observer);\\n        this.trace('addDeviceChangeObserver');\\n    }\\n    removeDeviceChangeObserver(observer) {\\n        this.deviceController.removeDeviceChangeObserver(observer);\\n        this.trace('removeDeviceChangeObserver');\\n    }\\n    createAnalyserNodeForAudioInput() {\\n        const result = this.deviceController.createAnalyserNodeForAudioInput();\\n        this.trace('createAnalyserNodeForAudioInput');\\n        return result;\\n    }\\n    startVideoPreviewForVideoInput(element) {\\n        this.deviceController.startVideoPreviewForVideoInput(element);\\n        this.trace('startVideoPreviewForVideoInput', element.id);\\n    }\\n    stopVideoPreviewForVideoInput(element) {\\n        this.deviceController.stopVideoPreviewForVideoInput(element);\\n        this.trace('stopVideoPreviewForVideoInput', element.id);\\n    }\\n    setDeviceLabelTrigger(trigger) {\\n        this.deviceController.setDeviceLabelTrigger(trigger);\\n        this.trace('setDeviceLabelTrigger');\\n    }\\n    mixIntoAudioInput(stream) {\\n        const result = this.deviceController.mixIntoAudioInput(stream);\\n        this.trace('mixIntoAudioInput', stream.id);\\n        return result;\\n    }\\n    chooseVideoInputQuality(width, height, frameRate) {\\n        this.deviceController.chooseVideoInputQuality(width, height, frameRate);\\n        this.trace('chooseVideoInputQuality', {\\n            width: width,\\n            height: height,\\n            frameRate: frameRate,\\n        });\\n    }\\n    setVideoMaxBandwidthKbps(maxBandwidthKbps) {\\n        this.audioVideoController.setVideoMaxBandwidthKbps(maxBandwidthKbps);\\n        this.trace('setVideoMaxBandwidthKbps', maxBandwidthKbps);\\n    }\\n    setVideoCodecSendPreferences(preferences) {\\n        this.audioVideoController.setVideoCodecSendPreferences(preferences);\\n        this.trace('setVideoCodecSendPreferences', preferences);\\n    }\\n    getVideoInputQualitySettings() {\\n        const result = this.deviceController.getVideoInputQualitySettings();\\n        this.trace('getVideoInputQualitySettings');\\n        return result;\\n    }\\n    setContentAudioProfile(audioProfile) {\\n        this.trace('setContentAudioProfile', audioProfile);\\n        this.contentShareController.setContentAudioProfile(audioProfile);\\n    }\\n    enableSimulcastForContentShare(enable, encodingParams) {\\n        this.trace('enableSimulcastForContentShare');\\n        this.contentShareController.enableSimulcastForContentShare(enable, encodingParams);\\n    }\\n    startContentShare(stream) {\\n        const result = this.contentShareController.startContentShare(stream);\\n        this.trace('startContentShare');\\n        return result;\\n    }\\n    startContentShareFromScreenCapture(sourceId, frameRate) {\\n        const result = this.contentShareController.startContentShareFromScreenCapture(sourceId, frameRate);\\n        this.trace('startContentShareFromScreenCapture');\\n        return result;\\n    }\\n    pauseContentShare() {\\n        this.contentShareController.pauseContentShare();\\n        this.trace('pauseContentShare');\\n    }\\n    unpauseContentShare() {\\n        this.contentShareController.unpauseContentShare();\\n        this.trace('unpauseContentShare');\\n    }\\n    stopContentShare() {\\n        this.contentShareController.stopContentShare();\\n        this.trace('stopContentShare');\\n    }\\n    addContentShareObserver(observer) {\\n        this.contentShareController.addContentShareObserver(observer);\\n        this.trace('addContentShareObserver');\\n    }\\n    removeContentShareObserver(observer) {\\n        this.contentShareController.removeContentShareObserver(observer);\\n        this.trace('removeContentShareObserver');\\n    }\\n    setContentShareVideoCodecPreferences(preferences) {\\n        this.contentShareController.setContentShareVideoCodecPreferences(preferences);\\n        this.trace('setContentShareVideoCodecPreferences');\\n    }\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    trace(name, input, output) {\\n        const meetingId = this.audioVideoController.configuration.meetingId;\\n        const attendeeId = this.audioVideoController.configuration.credentials.attendeeId;\\n        let s = `API/DefaultAudioVideoFacade/${meetingId}/${attendeeId}/${name}`;\\n        if (typeof input !== 'undefined') {\\n            s += ` ${JSON.stringify(input)}`;\\n        }\\n        if (typeof output !== 'undefined') {\\n            s += ` -> ${JSON.stringify(output)}`;\\n        }\\n        this.audioVideoController.logger.info(s);\\n    }\\n    getRemoteVideoSources() {\\n        const result = this.audioVideoController.getRemoteVideoSources();\\n        this.trace('getRemoteVideoSources', null, result);\\n        return result;\\n    }\\n    get transcriptionController() {\\n        return this.realtimeController.transcriptionController;\\n    }\\n    promoteToPrimaryMeeting(credentials) {\\n        this.audioVideoController.removeObserver(this); // Avoid adding multiple times\\n        this.audioVideoController.addObserver(this); // See note in `audioVideoWasDemotedFromPrimaryMeeting`\\n        const result = this.audioVideoController.promoteToPrimaryMeeting(credentials);\\n        this.trace('promoteToPrimaryMeeting', null, result); // Don't trace credentials\\n        return result;\\n    }\\n    demoteFromPrimaryMeeting() {\\n        this.trace('demoteFromPrimaryMeeting');\\n        this.audioVideoController.demoteFromPrimaryMeeting();\\n    }\\n    audioVideoWasDemotedFromPrimaryMeeting(_) {\\n        // `DefaultContentShareController` currently does not respond to the connection ending\\n        // so `contentShareDidStop` will not be called even if backend cleans up the connection.\\n        // Thus we try to pre-emptively clean up on client side.\\n        this.contentShareController.stopContentShare();\\n        this.audioVideoController.removeObserver(this);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultAudioVideoFacade;\\n//# sourceMappingURL=DefaultAudioVideoFacade.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/audiovideofacade/DefaultAudioVideoFacade.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorBuiltIn.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorBuiltIn.js ***!\n  \\**********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundBlurProcessorProvided_1 = __webpack_require__(/*! ./BackgroundBlurProcessorProvided */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorProvided.js\\\");\\nconst BackgroundBlurStrength_1 = __webpack_require__(/*! ./BackgroundBlurStrength */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js\\\");\\n/**\\n * The [[BackgroundBlurProcessorBuiltIn]] uses the browser's built-in capability to apply blurring to\\n * the background image as apposed to [[BackgroundBlurProcessorProvided]] that uses WASM and\\n * TensorFlow Lite to apply the blur.\\n */\\n/** @internal */\\nclass BackgroundBlurProcessorBuiltIn extends BackgroundBlurProcessorProvided_1.default {\\n    /**\\n     * A constructor that will apply default values if spec and strength are not provided.\\n     * If no spec is provided the selfie segmentation model is used with default paths to CDN for the\\n     * worker and wasm files used to process each frame.\\n     * @param spec The spec defines the assets that will be used for adding background blur to a frame.\\n     * @param options How much blur to apply to a frame.\\n     */\\n    constructor(spec, options) {\\n        super(spec, options);\\n        this.blurCanvas = document.createElement('canvas');\\n        this.blurCanvasCtx = this.blurCanvas.getContext('2d');\\n        this.blurCanvas.width = this.spec.model.input.width;\\n        this.blurCanvas.height = this.spec.model.input.height;\\n        this.logger.info('BackgroundBlur processor using builtin blur');\\n    }\\n    drawImageWithMask(inputCanvas, mask) {\\n        // Mask will not be set until the worker has completed handling the predict event. Until the first frame is processed,\\n        // the whole frame will be blurred.\\n        const blurredImage = this.blurredImage;\\n        const { canvasCtx, targetCanvas } = this;\\n        const { width, height } = targetCanvas;\\n        if (!mask || !blurredImage) {\\n            canvasCtx.clearRect(0, 0, width, height);\\n            return;\\n        }\\n        const scaledCtx = this.scaledCanvas.getContext('2d');\\n        scaledCtx.putImageData(mask, 0, 0);\\n        this.blurCanvasCtx.putImageData(this.blurredImage, 0, 0);\\n        // draw the mask\\n        canvasCtx.save();\\n        canvasCtx.clearRect(0, 0, width, height);\\n        canvasCtx.drawImage(this.scaledCanvas, 0, 0, width, height);\\n        // Only overwrite existing pixels.\\n        canvasCtx.globalCompositeOperation = 'source-in';\\n        // draw image over mask...\\n        canvasCtx.drawImage(inputCanvas, 0, 0, width, height);\\n        // draw under person\\n        canvasCtx.globalCompositeOperation = 'destination-over';\\n        canvasCtx.drawImage(this.blurCanvas, 0, 0, width, height);\\n        canvasCtx.restore();\\n    }\\n    setBlurStrength(blurStrength) {\\n        super.setBlurStrength(blurStrength);\\n        if (this.worker) {\\n            // live update\\n            this.modelInitialized = false;\\n            this.worker.postMessage({ msg: 'destroy' });\\n            const model = this.spec.model;\\n            this.worker.postMessage({\\n                msg: 'loadModel',\\n                payload: {\\n                    modelUrl: model.path,\\n                    inputHeight: model.input.height,\\n                    inputWidth: model.input.width,\\n                    inputChannels: 4,\\n                    modelRangeMin: model.input.range[0],\\n                    modelRangeMax: model.input.range[1],\\n                    blurPixels: this.blurAmount,\\n                },\\n            });\\n        }\\n    }\\n    setBlurPixels() {\\n        // the blurred image is sized down to 144, regardless of what the canvas size is, so\\n        // we use the default blur strengths (540p)\\n        this.blurAmount = BackgroundBlurStrength_1.BlurStrengthMapper.getBlurAmount(this._blurStrength, { height: 540 });\\n        this.logger.info(`background blur amount set to ${this.blurAmount}`);\\n    }\\n    handleInitialize(msg) {\\n        this.logger.info(`received initialize message: ${this.stringify(msg)}`);\\n        if (!msg.payload) {\\n            this.logger.error('failed to initialize module');\\n            this.initWorkerPromise.reject(new Error('failed to initialize the module'));\\n            return;\\n        }\\n        const model = this.spec.model;\\n        this.worker.postMessage({\\n            msg: 'loadModel',\\n            payload: {\\n                modelUrl: model.path,\\n                inputHeight: model.input.height,\\n                inputWidth: model.input.width,\\n                inputChannels: 4,\\n                modelRangeMin: model.input.range[0],\\n                modelRangeMax: model.input.range[1],\\n                blurPixels: this.blurAmount,\\n            },\\n        });\\n        this.initWorkerPromise.resolve({});\\n    }\\n    handlePredict(msg) {\\n        this.blurredImage = msg.payload.blurOutput;\\n        super.handlePredict(msg);\\n    }\\n    destroy() {\\n        const _super = Object.create(null, {\\n            destroy: { get: () => super.destroy }\\n        });\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            _super.destroy.call(this);\\n            (_a = this.blurCanvas) === null || _a === void 0 ? void 0 : _a.remove();\\n            this.blurCanvas = undefined;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundBlurProcessorBuiltIn;\\n//# sourceMappingURL=BackgroundBlurProcessorBuiltIn.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorBuiltIn.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorProvided.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorProvided.js ***!\n  \\***********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterProcessor_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterProcessor.js\\\");\\nconst BackgroundBlurStrength_1 = __webpack_require__(/*! ./BackgroundBlurStrength */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js\\\");\\nconst BackgroundBlurVideoFrameProcessorDelegate_1 = __webpack_require__(/*! ./BackgroundBlurVideoFrameProcessorDelegate */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessorDelegate.js\\\");\\n/**\\n * [[BackgroundBlurProcessorProvided]] implements [[BackgroundBlurProcessor]].\\n * It's a background blur processor and input is passed into a worker that will apply a segmentation\\n * to separate the foreground from the background. Then the background will have a blur applied.\\n *\\n * The [[BackgroundBlurProcessorProvided]] uses WASM and TensorFlow Lite to apply the blurring of the\\n * background image as apposed to [[BackgroundBlurProcessorBuiltIn]] that uses the browser's built-in\\n * capability to apply the blur.\\n */\\n/** @internal */\\nclass BackgroundBlurProcessorProvided extends BackgroundFilterProcessor_1.default {\\n    /**\\n     * A constructor that will apply default values if spec and strength are not provided.\\n     * If no spec is provided the selfie segmentation model is used with default paths to CDN for the\\n     * worker and wasm files used to process each frame.\\n     * @param spec The spec defines the assets that will be used for adding background blur to a frame\\n     * @param options How much blur to apply to a frame\\n     */\\n    constructor(spec, options) {\\n        super('background blur', spec, options, new BackgroundBlurVideoFrameProcessorDelegate_1.default());\\n        this.blurAmount = 0;\\n        this.setBlurStrength(options.blurStrength);\\n        this.logger.info('BackgroundBlur processor successfully created');\\n        this.logger.info(`BackgroundBlur spec: ${this.stringify(this.spec)}`);\\n        this.logger.info(`BackgroundBlur options: ${this.stringify(options)}`);\\n    }\\n    validateOptions(options) {\\n        super.validateOptions(options);\\n        if (!options.blurStrength) {\\n            throw new Error('processor has null options - blurStrength');\\n        }\\n    }\\n    initOnFirstExecution() {\\n        this.setBlurPixels();\\n    }\\n    drawImageWithMask(inputCanvas, mask) {\\n        // Mask will not be set until the worker has completed handling the predict event. Until the first frame is processed,\\n        // the whole frame will be blurred.\\n        if (!mask) {\\n            mask = new ImageData(this.spec.model.input.width, this.spec.model.input.height);\\n        }\\n        const scaledCtx = this.scaledCanvas.getContext('2d');\\n        scaledCtx.putImageData(mask, 0, 0);\\n        const { canvasCtx, targetCanvas } = this;\\n        const { width, height } = targetCanvas;\\n        // draw the mask\\n        canvasCtx.save();\\n        canvasCtx.clearRect(0, 0, width, height);\\n        canvasCtx.drawImage(this.scaledCanvas, 0, 0, width, height);\\n        // Only overwrite existing pixels.\\n        canvasCtx.globalCompositeOperation = 'source-in';\\n        // draw image over mask...\\n        canvasCtx.drawImage(inputCanvas, 0, 0, width, height);\\n        // draw under person\\n        canvasCtx.globalCompositeOperation = 'destination-over';\\n        canvasCtx.filter = `blur(${this.blurAmount}px)`;\\n        canvasCtx.drawImage(inputCanvas, 0, 0, targetCanvas.width, targetCanvas.height);\\n        canvasCtx.restore();\\n    }\\n    setBlurStrength(blurStrength) {\\n        this._blurStrength = blurStrength;\\n        this.logger.info(`blur strength set to ${this._blurStrength}`);\\n        this.setBlurPixels();\\n    }\\n    /**\\n     * Calculate the blur amount based on the blur strength passed in and height of the image being blurred.\\n     */\\n    setBlurPixels() {\\n        this.blurAmount = BackgroundBlurStrength_1.BlurStrengthMapper.getBlurAmount(this._blurStrength, {\\n            height: this.sourceHeight,\\n        });\\n        this.logger.info(`background blur amount set to ${this.blurAmount}`);\\n    }\\n    addObserver(observer) {\\n        this.delegate.addObserver(observer);\\n    }\\n    removeObserver(observer) {\\n        this.delegate.removeObserver(observer);\\n    }\\n    static isSupported() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const canvas = document.createElement('canvas');\\n            const supportsBlurFilter = canvas.getContext('2d').filter !== undefined;\\n            canvas.remove();\\n            return supportsBlurFilter;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundBlurProcessorProvided;\\n//# sourceMappingURL=BackgroundBlurProcessorProvided.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorProvided.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.BlurStrengthMapper = void 0;\\n/**\\n * The numbers below indicate the amount of blur to apply. Larger numbers will produce\\n * more blur.\\n */\\nconst BlurStrength = {\\n    LOW: 7,\\n    MEDIUM: 15,\\n    HIGH: 30,\\n};\\n/** @internal */\\nclass BlurStrengthMapper {\\n    static getBlurAmount(bstrength, options) {\\n        if (bstrength <= 0) {\\n            throw new Error(`invalid value for blur strength: ${bstrength}`);\\n        }\\n        return Math.round((bstrength * options.height) / this.BLUR_STRENGTH_DIVISOR);\\n    }\\n}\\nexports.BlurStrengthMapper = BlurStrengthMapper;\\nBlurStrengthMapper.BLUR_STRENGTH_DIVISOR = 540; // use 540P as baseline blur strength\\nexports[\\\"default\\\"] = BlurStrength;\\n//# sourceMappingURL=BackgroundBlurStrength.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessor.js\":\n/*!*************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessor.js ***!\n  \\*************************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterVideoFrameProcessor_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js\\\");\\nconst ConsoleLogger_1 = __webpack_require__(/*! ../logger/ConsoleLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js\\\");\\nconst LogLevel_1 = __webpack_require__(/*! ../logger/LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nconst NoOpVideoFrameProcessor_1 = __webpack_require__(/*! ../videoframeprocessor/NoOpVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js\\\");\\nconst BackgroundBlurProcessorBuiltIn_1 = __webpack_require__(/*! ./BackgroundBlurProcessorBuiltIn */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorBuiltIn.js\\\");\\nconst BackgroundBlurProcessorProvided_1 = __webpack_require__(/*! ./BackgroundBlurProcessorProvided */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurProcessorProvided.js\\\");\\nconst BackgroundBlurStrength_1 = __webpack_require__(/*! ./BackgroundBlurStrength */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js\\\");\\n/**\\n * No-op implementation of the blur processor. An instance of this class will be returned when a user attempts\\n * to create a blur processor when it is not supported.\\n */\\n/** @internal */\\nclass NoOpBackgroundBlurProcessor extends NoOpVideoFrameProcessor_1.default {\\n    /**\\n     * no-op\\n     */\\n    setBlurStrength() { }\\n    /**\\n     * no-op\\n     * @returns\\n     */\\n    loadAssets() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return;\\n        });\\n    }\\n    /**\\n     * no-op\\n     */\\n    addObserver() { }\\n    /**\\n     * no-op\\n     */\\n    removeObserver() { }\\n}\\n/**\\n * [[BackgroundBlurVideoFrameProcessor]]\\n * Creates a background blur processor which identifies the foreground person and blurs the background.\\n */\\nclass BackgroundBlurVideoFrameProcessor extends BackgroundFilterVideoFrameProcessor_1.default {\\n    /**\\n     * A factory method that will call the private constructor to instantiate the processor and asynchronously\\n     * initialize the worker, wasm, and ML models. Upon completion of the initialization the promise will either\\n     * be resolved or rejected.\\n     * @param spec The spec defines the assets that will be used for adding background blur to a frame\\n     * @param blurStrength How much blur to apply to a frame\\n     * @returns\\n     */\\n    static create(spec, options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            spec = BackgroundBlurVideoFrameProcessor.resolveSpec(spec);\\n            options = BackgroundBlurVideoFrameProcessor.resolveOptions(options);\\n            const { logger } = options;\\n            const supported = yield BackgroundBlurVideoFrameProcessor.isSupported(spec, options);\\n            // if blur is not supported do not initialize. The processor will become a no op if not supported.\\n            logger.info(`processor is ${supported ? '' : 'not'} supported`);\\n            if (!supported) {\\n                logger.warn('Using no-op processor because background blur is not supported');\\n                return new NoOpBackgroundBlurProcessor();\\n            }\\n            let processor;\\n            if (yield BackgroundBlurProcessorProvided_1.default.isSupported()) {\\n                logger.info('Using browser-provided background blur');\\n                processor = new BackgroundBlurProcessorProvided_1.default(spec, options);\\n            }\\n            else {\\n                logger.info('Using built-in background blur');\\n                processor = new BackgroundBlurProcessorBuiltIn_1.default(spec, options);\\n            }\\n            yield processor.loadAssets();\\n            return processor;\\n        });\\n    }\\n    /**\\n     * Based on the options that are passed in set defaults for options\\n     * @param options  the options that are passed in\\n     * @returns An updated set of options with defaults set\\n     */\\n    static resolveOptions(options = {}) {\\n        let processorOptions = Object.assign({}, options);\\n        if (!processorOptions.blurStrength) {\\n            processorOptions.blurStrength = BackgroundBlurStrength_1.default.MEDIUM;\\n        }\\n        if (!processorOptions.logger) {\\n            processorOptions.logger = new ConsoleLogger_1.default('BackgroundBlurProcessor', LogLevel_1.default.INFO);\\n        }\\n        processorOptions = super.resolveOptions(processorOptions);\\n        return processorOptions;\\n    }\\n    /**\\n     * This method will detect the environment in which it is being used and determine if background\\n     * blur can be used.\\n     * @param spec The {@link BackgroundBlurSpec} spec that will be used to initialize assets\\n     * @param options options such as logger\\n     * @returns a boolean promise that will resolve to true if supported and false if not\\n     */\\n    static isSupported(spec, options) {\\n        spec = BackgroundBlurVideoFrameProcessor.resolveSpec(spec);\\n        options = BackgroundBlurVideoFrameProcessor.resolveOptions(options);\\n        return super.isSupported(spec, options);\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundBlurVideoFrameProcessor;\\n//# sourceMappingURL=BackgroundBlurVideoFrameProcessor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessorDelegate.js\":\n/*!*********************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessorDelegate.js ***!\n  \\*********************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterVideoFrameProcessorDelegate_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate.js\\\");\\n/**\\n * This class adds the functionality to allow for a set of unique observers to be added to the\\n * video frame processor.\\n */\\n/** @internal */\\nclass BackgroundBlurVideoFrameProcessorDelegate extends BackgroundFilterVideoFrameProcessorDelegate_1.default {\\n}\\nexports[\\\"default\\\"] = BackgroundBlurVideoFrameProcessorDelegate;\\n//# sourceMappingURL=BackgroundBlurVideoFrameProcessorDelegate.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessorDelegate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/ModelSpecBuilder.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/ModelSpecBuilder.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * A builder class to instantiate a model spec.\\n */\\nclass ModelSpecBuilder {\\n    constructor() {\\n        this.path = null;\\n        this.input = null;\\n        this.output = null;\\n    }\\n    static builder() {\\n        return new ModelSpecBuilder();\\n    }\\n    /**\\n     * Set up the builder to use the default model implementation.\\n     *\\n     * Members of this interface can change without a major version bump to accommodate new browser\\n     * bugs and capabilities. If you extend this type, you might need to rework your code for new minor\\n     * versions of this library.\\n     * @returns a reference to the current builder.\\n     */\\n    withDefaultModel() {\\n        return this.withSelfieSegmentationDefaults();\\n    }\\n    /**\\n     * Set up the builder to use the defaults for selfie segmentation model.\\n     * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.withSelfieSegmentationDefaults().build()).\\n     */\\n    withSelfieSegmentationDefaults() {\\n        const SELFIE_MODEL_INPUT_SHAPE = {\\n            height: 144,\\n            width: 256,\\n            range: [0, 1],\\n            channels: 3,\\n        };\\n        const SELFIE_MODEL_OUTPUT_SHAPE = {\\n            height: 144,\\n            width: 256,\\n            range: [0, 1],\\n            channels: 1,\\n        };\\n        const DEFAULT_SELFIE_MODEL_PATH = 'https://static.sdkassets.chime.aws/bgblur/models/selfie_segmentation_landscape.tflite';\\n        this.path = DEFAULT_SELFIE_MODEL_PATH;\\n        this.input = SELFIE_MODEL_INPUT_SHAPE;\\n        this.output = SELFIE_MODEL_OUTPUT_SHAPE;\\n        return this;\\n    }\\n    /**\\n     * A method to override the path to the segmentation model.\\n     * @param path A function that returns the path to the segmentation model.\\n     * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withPath(\\\"some path\\\").build()).\\n     */\\n    withPath(path) {\\n        this.path = path;\\n        return this;\\n    }\\n    /**\\n     * A method to override the input shape to the segmentation model.\\n     * @param input An object that defines input shape of the segmentation model.\\n     * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withInput({}).build()).\\n     */\\n    withInput(input) {\\n        this.input = input;\\n        return this;\\n    }\\n    /**\\n     * A method to override the output shape to the segmentation model.\\n     * @param input An object that defines input shape of the segmentation model.\\n     * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withOutput({}).build()).\\n     */\\n    withOutput(output) {\\n        this.output = output;\\n        return this;\\n    }\\n    /**\\n     * Validate that inputs to the model spec are valid.\\n     */\\n    validate() {\\n        if (!this.path) {\\n            throw new Error('model spec path is not set');\\n        }\\n        if (!this.input) {\\n            throw new Error('model spec input is not set');\\n        }\\n        if (!this.output) {\\n            throw new Error('model spec output is not set');\\n        }\\n    }\\n    /**\\n     * A method that returns an instantiated object that implements the ModelSpec interface with values set for\\n     * the use of the selfie segmentation model.\\n     * @returns an object that implements the ModelSpec interface.\\n     */\\n    build() {\\n        this.validate();\\n        return {\\n            path: this.path,\\n            input: this.input,\\n            output: this.output,\\n        };\\n    }\\n}\\nexports[\\\"default\\\"] = ModelSpecBuilder;\\n//# sourceMappingURL=ModelSpecBuilder.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/ModelSpecBuilder.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterFrameCounter.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterFrameCounter.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst FILTER_DURATION_FACTOR = 0.8;\\n/**\\n * The frame counter tracks frame rates of video and segmentation.\\n */\\n/** @internal */\\nclass BackgroundFilterFrameCounter {\\n    constructor(delegate, reportingPeriodMillis, filterCPUUtilization, logger) {\\n        this.delegate = delegate;\\n        this.reportingPeriodMillis = reportingPeriodMillis;\\n        this.filterCPUUtilization = filterCPUUtilization;\\n        this.logger = logger;\\n        this._processingFilter = true;\\n        this.lastReportedEventTimestamp = 0;\\n        this.lastFilterCompleteTimestamp = 0;\\n        this.filterTotalMillis = 0;\\n        this.filterCount = 0;\\n        this.framerate = 0;\\n        this.filterDurationNotifyMillis = 0;\\n        this.setSegmentationDuration();\\n    }\\n    /**\\n     * Report events once per period.\\n     */\\n    reportEvent(timestamp) {\\n        const timeDiff = timestamp - this.lastReportedEventTimestamp;\\n        if (timeDiff >= this.reportingPeriodMillis) {\\n            const currentFilterCount = this.filterCount;\\n            const currentFilterTotalMillis = this.filterTotalMillis;\\n            this.filterCount = 0;\\n            this.filterTotalMillis = 0;\\n            this.lastReportedEventTimestamp = timestamp;\\n            // Do not send notification unless a valid framerate or segment count is set.\\n            if (this.framerate === 0 || currentFilterCount === 0) {\\n                return;\\n            }\\n            const avgFilterDurationMillis = Math.round(currentFilterTotalMillis / currentFilterCount);\\n            const framesDropped = Math.round(this.framerate * (timeDiff / 1000)) - currentFilterCount;\\n            const cpuUtilization = Math.round((100 * currentFilterTotalMillis) / timeDiff);\\n            if (avgFilterDurationMillis >= this.filterDurationNotifyMillis) {\\n                this.delegate.filterFrameDurationHigh({\\n                    framesDropped,\\n                    avgFilterDurationMillis,\\n                    framerate: this.framerate,\\n                    periodMillis: timeDiff,\\n                });\\n            }\\n            if (cpuUtilization >= this.filterCPUUtilization) {\\n                this.delegate.filterCPUUtilizationHigh({\\n                    cpuUtilization,\\n                    filterMillis: currentFilterTotalMillis,\\n                    periodMillis: timeDiff,\\n                });\\n            }\\n        }\\n    }\\n    setSegmentationDuration() {\\n        // allow filtering to take up to 80% of the expected frame duration\\n        this.filterDurationNotifyMillis = Math.round((1000 / this.framerate) * FILTER_DURATION_FACTOR);\\n    }\\n    frameReceived(framerate) {\\n        if (framerate !== this.framerate) {\\n            this.framerate = framerate;\\n            this.logger.info(`frame counter setting frame rate to ${this.framerate}`);\\n            this.setSegmentationDuration();\\n        }\\n        const timestamp = Date.now();\\n        this.reportEvent(timestamp);\\n    }\\n    filterSubmitted() {\\n        this._processingFilter = true;\\n        this.lastFilterCompleteTimestamp = Date.now();\\n    }\\n    filterComplete() {\\n        this.filterTotalMillis += Date.now() - this.lastFilterCompleteTimestamp;\\n        this._processingFilter = false;\\n        this.filterCount++;\\n    }\\n    get processingSegment() {\\n        return this._processingFilter;\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundFilterFrameCounter;\\n//# sourceMappingURL=BackgroundFilterFrameCounter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterFrameCounter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterProcessor.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterProcessor.js ***!\n  \\**********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.BackgroundFilterMonitor = void 0;\\nconst loader_1 = __webpack_require__(/*! ../../libs/voicefocus/loader */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\\\");\\nconst CanvasVideoFrameBuffer_1 = __webpack_require__(/*! ../videoframeprocessor/CanvasVideoFrameBuffer */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js\\\");\\nconst BackgroundFilterFrameCounter_1 = __webpack_require__(/*! ./BackgroundFilterFrameCounter */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterFrameCounter.js\\\");\\n/** @internal */\\nclass DeferredObservable {\\n    constructor() {\\n        /** Access the last-resolved value of next()\\n         */\\n        this.value = undefined;\\n        this.resolve = null;\\n    }\\n    /** Create a promise that resolves once next() is called\\n     */\\n    whenNext() {\\n        /* istanbul ignore else */\\n        if (!this.promise) {\\n            // externally-resolvable promise\\n            this.promise = new Promise(resolve => (this.resolve = resolve));\\n        }\\n        return this.promise;\\n    }\\n    /** Update the value and resolve\\n     */\\n    next(value) {\\n        // store the value, for sync access\\n        this.value = value;\\n        // resolve the promise so anyone awaiting whenNext resolves\\n        this.resolve(value);\\n        // delete the promise so future whenNext calls get a new promise\\n        delete this.promise;\\n    }\\n}\\n/**\\n * The [[BackgroundFilterProcessor]] uses WASM and TensorFlow Lite to apply changes to the\\n * background image.\\n */\\n/** @internal */\\nclass BackgroundFilterProcessor {\\n    constructor(filterType, spec, options, delegate) {\\n        this.targetCanvas = document.createElement('canvas');\\n        this.canvasCtx = this.targetCanvas.getContext('2d');\\n        this.canvasVideoFrameBuffer = new CanvasVideoFrameBuffer_1.default(this.targetCanvas);\\n        this.mask$ = new DeferredObservable();\\n        this.sourceWidth = 0;\\n        this.sourceHeight = 0;\\n        this.frameNumber = 0;\\n        this.videoFramesPerFilterUpdate = 1;\\n        this.initWorkerPromise = BackgroundFilterProcessor.createWorkerPromise();\\n        this.loadModelPromise = BackgroundFilterProcessor.createWorkerPromise();\\n        this.modelInitialized = false;\\n        this.destroyed = false;\\n        this.filterType = filterType;\\n        this.validateSpec(spec);\\n        this.validateOptions(options);\\n        this.spec = spec;\\n        this.logger = options.logger;\\n        this.delegate = delegate;\\n        this.initCPUMonitor(options);\\n    }\\n    static createWorkerPromise() {\\n        const resolver = { resolve: null, reject: null, promise: null };\\n        resolver.promise = new Promise((resolve, reject) => {\\n            resolver.resolve = resolve;\\n            resolver.reject = reject;\\n        });\\n        return resolver;\\n    }\\n    /** Check if the input spec are not null\\n     */\\n    validateSpec(spec) {\\n        if (!spec) {\\n            throw new Error('processor has null spec');\\n        }\\n        if (!spec.model) {\\n            throw new Error('processor spec has null model');\\n        }\\n        if (!spec.paths) {\\n            throw new Error('processor spec has null paths');\\n        }\\n    }\\n    validateOptions(options) {\\n        if (!options) {\\n            throw new Error('processor has null options');\\n        }\\n        if (!options.logger) {\\n            throw new Error('processor has null options - logger');\\n        }\\n        if (!options.reportingPeriodMillis) {\\n            throw new Error('processor has null options - reportingPeriodMillis');\\n        }\\n        if (!options.filterCPUUtilization) {\\n            throw new Error('processor has null options - filterCPUUtilization');\\n        }\\n    }\\n    initCPUMonitor(options) {\\n        const CPU_MONITORING_PERIOD_MILLIS = 5000;\\n        const MAX_SEGMENTATION_SKIP_RATE = 10;\\n        const MIN_SEGMENTATION_SKIP_RATE = 1;\\n        this.videoFramesPerFilterUpdate = 1;\\n        this.frameCounter = new BackgroundFilterFrameCounter_1.default(this.delegate, options.reportingPeriodMillis, options.filterCPUUtilization, this.logger);\\n        this.cpuMonitor = new BackgroundFilterMonitor(CPU_MONITORING_PERIOD_MILLIS, {\\n            reduceCPUUtilization: () => {\\n                this.updateVideoFramesPerFilterUpdate(Math.min(this.videoFramesPerFilterUpdate + 1, MAX_SEGMENTATION_SKIP_RATE));\\n            },\\n            increaseCPUUtilization: () => {\\n                this.updateVideoFramesPerFilterUpdate(Math.max(this.videoFramesPerFilterUpdate - 1, MIN_SEGMENTATION_SKIP_RATE));\\n            },\\n        });\\n        this.delegate.addObserver(this.cpuMonitor);\\n    }\\n    /** Converts a value to a JSON string\\n     */\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    stringify(value) {\\n        return JSON.stringify(value, null, 2);\\n    }\\n    /**\\n     * Sends a message to worker and resolves promise in response to worker's initialize event\\n     */\\n    handleInitialize(msg) {\\n        this.logger.info(`received initialize message: ${this.stringify(msg)}`);\\n        if (!msg.payload) {\\n            this.logger.error('failed to initialize module');\\n            this.initWorkerPromise.reject(new Error('failed to initialize the module'));\\n            return;\\n        }\\n        const model = this.spec.model;\\n        this.worker.postMessage({\\n            msg: 'loadModel',\\n            payload: {\\n                modelUrl: model.path,\\n                inputHeight: model.input.height,\\n                inputWidth: model.input.width,\\n                inputChannels: 4,\\n                modelRangeMin: model.input.range[0],\\n                modelRangeMax: model.input.range[1],\\n                blurPixels: 0,\\n            },\\n        });\\n        this.initWorkerPromise.resolve({});\\n    }\\n    /**\\n     * Resolves promise in response to worker's loadModel event\\n     */\\n    handleLoadModel(msg) {\\n        this.logger.info(`received load model message: ${this.stringify(msg)}`);\\n        if (msg.payload !== 2) {\\n            this.logger.error('failed to load model! status: ' + msg.payload);\\n            /** Rejects model promise\\n             */\\n            this.loadModelPromise.reject(new Error('failed to load model! status: ' + msg.payload));\\n            return;\\n        }\\n        this.modelInitialized = true;\\n        this.loadModelPromise.resolve({});\\n    }\\n    /** Updates the payload output value in response to worker's predict event\\n     */\\n    handlePredict(msg) {\\n        this.mask$.next(msg.payload.output);\\n    }\\n    /**\\n     * This method will handle the asynchronous messaging between the main JS thread\\n     * and the worker thread.\\n     * @param evt An event that was sent from the worker to the JS thread.\\n     * @returns\\n     */\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    handleWorkerEvent(evt) {\\n        const msg = evt.data;\\n        switch (msg.msg) {\\n            case 'initialize':\\n                this.handleInitialize(msg);\\n                break;\\n            case 'loadModel':\\n                this.handleLoadModel(msg);\\n                break;\\n            case 'predict':\\n                this.handlePredict(msg);\\n                break;\\n            default:\\n                this.logger.info(`unexpected event msg: ${this.stringify(msg)}`);\\n                break;\\n        }\\n    }\\n    /**\\n     * This method initializes all of the resource necessary to processs background filter. It returns\\n     * a promise and resolves or rejects the promise once the initialization is complete.\\n     * @returns\\n     * @throws An error will be thrown\\n     */\\n    loadAssets() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.info('start initializing the processor');\\n            try {\\n                this.worker = yield loader_1.loadWorker(this.spec.paths.worker, 'BackgroundFilterWorker', {}, null);\\n                this.worker.addEventListener('message', ev => this.handleWorkerEvent(ev));\\n                this.worker.postMessage({\\n                    msg: 'initialize',\\n                    payload: {\\n                        wasmPath: this.spec.paths.wasm,\\n                        simdPath: this.spec.paths.simd,\\n                    },\\n                });\\n                yield this.initWorkerPromise.promise;\\n                this.logger.info(`successfully initialized the ${this.filterType} worker`);\\n                yield this.loadModelPromise.promise;\\n                this.logger.info(`successfully loaded ${this.filterType} worker segmentation model`);\\n            }\\n            catch (error) {\\n                throw new Error(`could not initialize the ${this.filterType} video frame processor due to '${error.message}'`);\\n            }\\n            this.logger.info(`successfully initialized the ${this.filterType} processor`);\\n        });\\n    }\\n    /**\\n     * Processes the VideoFrameBuffer by applying a segmentation mask and replacing the background.\\n     * @param buffers object that contains the canvas element that will be used to obtain the image data to process\\n     * @returns the updated buffer that contains the image with the background replaced.\\n     */\\n    process(buffers) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.destroyed) {\\n                return buffers;\\n            }\\n            this.frameCounter.frameReceived(buffers[0].framerate);\\n            this.cpuMonitor.frameReceived();\\n            const inputCanvas = buffers[0].asCanvasElement();\\n            if (!inputCanvas) {\\n                return buffers;\\n            }\\n            if (!this.modelInitialized) {\\n                // return existing buffer, if any\\n                buffers[0] = this.canvasVideoFrameBuffer;\\n                return buffers;\\n            }\\n            const frameWidth = inputCanvas.width;\\n            const frameHeight = inputCanvas.height;\\n            if (frameWidth === 0 || frameHeight === 0) {\\n                return buffers;\\n            }\\n            // on first execution of process the source width will be zero\\n            if (this.sourceWidth === 0) {\\n                this.sourceWidth = frameWidth;\\n                this.sourceHeight = frameHeight;\\n                // update target canvas size to match the frame size\\n                this.targetCanvas.width = this.sourceWidth;\\n                this.targetCanvas.height = this.sourceHeight;\\n                this.logger.info(`${this.filterType} source width: ${this.sourceWidth}`);\\n                this.logger.info(`${this.filterType} source height: ${this.sourceHeight}`);\\n                this.initOnFirstExecution();\\n            }\\n            if (this.sourceWidth !== frameWidth || this.sourceHeight !== frameHeight) {\\n                this.sourceWidth = frameWidth;\\n                this.sourceHeight = frameHeight;\\n                // update target canvas size to match the frame size\\n                this.targetCanvas.width = this.sourceWidth;\\n                this.targetCanvas.height = this.sourceHeight;\\n            }\\n            try {\\n                this.frameCounter.filterSubmitted();\\n                let mask = this.mask$.value;\\n                const hscale = this.spec.model.input.width / inputCanvas.width;\\n                const vscale = this.spec.model.input.height / inputCanvas.height;\\n                if (this.scaledCanvas === undefined) {\\n                    this.scaledCanvas = document.createElement('canvas');\\n                    this.scaledCanvas.width = this.spec.model.input.width;\\n                    this.scaledCanvas.height = this.spec.model.input.height;\\n                }\\n                const scaledCtx = this.scaledCanvas.getContext('2d');\\n                scaledCtx.save();\\n                scaledCtx.scale(hscale, vscale);\\n                scaledCtx.drawImage(inputCanvas, 0, 0);\\n                scaledCtx.restore();\\n                const imageData = scaledCtx.getImageData(0, 0, this.scaledCanvas.width, this.scaledCanvas.height);\\n                // update the filter mask based on the filter update rate\\n                if (this.frameNumber % this.videoFramesPerFilterUpdate === 0) {\\n                    // process frame...\\n                    const maskPromise = this.mask$.whenNext();\\n                    this.worker.postMessage({ msg: 'predict', payload: imageData }, [imageData.data.buffer]);\\n                    mask = yield maskPromise;\\n                }\\n                // It's possible that while waiting for the predict to complete the processor was destroyed.\\n                // adding a destroyed check here to ensure the implementation of drawImageWithMask does not throw\\n                // an error due to destroyed processor.\\n                if (!this.destroyed) {\\n                    this.drawImageWithMask(inputCanvas, mask);\\n                }\\n            }\\n            catch (error) {\\n                this.logger.error(`could not process ${this.filterType} frame buffer due to ${error}`);\\n                return buffers;\\n            }\\n            finally {\\n                this.frameCounter.filterComplete();\\n                this.frameNumber++;\\n            }\\n            buffers[0] = this.canvasVideoFrameBuffer;\\n            return buffers;\\n        });\\n    }\\n    updateVideoFramesPerFilterUpdate(newRate) {\\n        if (newRate !== this.videoFramesPerFilterUpdate) {\\n            this.videoFramesPerFilterUpdate = newRate;\\n            this.logger.info(`Adjusting filter rate to compensate for CPU utilization. ` +\\n                `Filter rate is ${this.videoFramesPerFilterUpdate} video frames per filter.`);\\n        }\\n    }\\n    /**\\n     * Clean up processor resources\\n     */\\n    destroy() {\\n        var _a, _b, _c, _d;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.destroyed = true;\\n            this.delegate.removeObserver(this.cpuMonitor);\\n            this.canvasVideoFrameBuffer.destroy();\\n            (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage({ msg: 'destroy' });\\n            (_b = this.worker) === null || _b === void 0 ? void 0 : _b.postMessage({ msg: 'stop' });\\n            (_c = this.targetCanvas) === null || _c === void 0 ? void 0 : _c.remove();\\n            this.targetCanvas = undefined;\\n            (_d = this.scaledCanvas) === null || _d === void 0 ? void 0 : _d.remove();\\n            this.scaledCanvas = undefined;\\n            this.logger.info(`${this.filterType} frame process destroyed`);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundFilterProcessor;\\n/** @internal */\\nclass BackgroundFilterMonitor {\\n    constructor(monitoringPeriodMillis, observer) {\\n        this.monitoringPeriodMillis = monitoringPeriodMillis;\\n        this.observer = observer;\\n        this.lastCPUChangeTimestamp = 0;\\n    }\\n    filterCPUUtilizationHigh() {\\n        const timestamp = Date.now();\\n        // Allow some time to pass before we check CPU utilization.\\n        if (timestamp - this.lastCPUChangeTimestamp >= this.monitoringPeriodMillis) {\\n            this.lastCPUChangeTimestamp = timestamp;\\n            this.observer.reduceCPUUtilization();\\n        }\\n    }\\n    frameReceived() {\\n        const timestamp = Date.now();\\n        // If a enough time has passed, reset the processor and continue to monitor\\n        if (timestamp - this.lastCPUChangeTimestamp >= this.monitoringPeriodMillis * 2) {\\n            this.lastCPUChangeTimestamp = timestamp;\\n            this.observer.increaseCPUUtilization();\\n        }\\n    }\\n}\\nexports.BackgroundFilterMonitor = BackgroundFilterMonitor;\\n//# sourceMappingURL=BackgroundFilterProcessor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterProcessor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js ***!\n  \\********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst loader_1 = __webpack_require__(/*! ../../libs/voicefocus/loader */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\\\");\\nconst support_1 = __webpack_require__(/*! ../../libs/voicefocus/support */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst ModelSpecBuilder_1 = __webpack_require__(/*! ../backgroundblurprocessor/ModelSpecBuilder */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/ModelSpecBuilder.js\\\");\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\n/** @internal */\\nconst CREATE_DEFAULT_MODEL_SPEC = () => ModelSpecBuilder_1.default.builder().withSelfieSegmentationDefaults().build();\\n/** @internal */\\nconst DEFAULT_CDN = 'https://static.sdkassets.chime.aws';\\n/** @internal */\\nconst DEFAULT_PATHS = {\\n    worker: `${DEFAULT_CDN}/bgblur/workers/worker.js`,\\n    wasm: `${DEFAULT_CDN}/bgblur/wasm/_cwt-wasm.wasm`,\\n    simd: `${DEFAULT_CDN}/bgblur/wasm/_cwt-wasm-simd.wasm`,\\n};\\nclass BackgroundFilterVideoFrameProcessor {\\n    /**\\n     * Based on the SDK version, return an asset group.\\n     *\\n     * @returns the default asset spec, based on the SDK version.\\n     */\\n    static defaultAssetSpec() {\\n        const version = Versioning_1.default.sdkVersionSemVer;\\n        return {\\n            assetGroup: `sdk-${version.major}.${version.minor}`,\\n        };\\n    }\\n    /**\\n     * Set the given parameters to the url. Existing parameters in the url are preserved.\\n     * If duplicate parameters exist, they are overwritten, so it's safe to call this method multiple\\n     * times on the same url.\\n     *\\n     * @param url the initial url, can include query parameters\\n     * @param queryParams the query parameters to set\\n     * @returns a new url with the given query parameters.\\n     */\\n    static createUrlWithParams(url, queryParams) {\\n        const u = new URL(url);\\n        const keys = Object.keys(queryParams);\\n        for (const key of keys) {\\n            if (queryParams[key] !== undefined) {\\n                u.searchParams.set(key, queryParams[key]);\\n            }\\n        }\\n        return u.toString();\\n    }\\n    /**\\n     * Based on the spec that is passed in set defaults for spec\\n     * @param spec the spec that was passed in\\n     * @returns An updated spec with defaults set\\n     */\\n    static resolveSpec(spec) {\\n        const { paths = DEFAULT_PATHS, model = CREATE_DEFAULT_MODEL_SPEC(), assetGroup = this.defaultAssetSpec().assetGroup, revisionID = this.defaultAssetSpec().revisionID, } = spec || {};\\n        const params = {\\n            assetGroup,\\n            revisionID,\\n            sdk: encodeURIComponent(Versioning_1.default.sdkVersion),\\n            ua: encodeURIComponent(Versioning_1.default.sdkUserAgentLowResolution),\\n        };\\n        paths.worker = this.createUrlWithParams(paths.worker, params);\\n        paths.wasm = this.createUrlWithParams(paths.wasm, params);\\n        paths.simd = this.createUrlWithParams(paths.simd, params);\\n        model.path = this.createUrlWithParams(model.path, params);\\n        return {\\n            paths,\\n            model,\\n            assetGroup,\\n            revisionID,\\n        };\\n    }\\n    /**\\n     * Based on the options that are passed in set defaults for options\\n     * @param options  the options that are passed in\\n     * @returns An updated set of options with defaults set\\n     */\\n    static resolveOptions(options) {\\n        if (!options.reportingPeriodMillis) {\\n            options.reportingPeriodMillis = 1000;\\n        }\\n        const DEFAULT_FILTER_CPU_UTILIZATION = 30;\\n        if (!options.filterCPUUtilization) {\\n            options.filterCPUUtilization = DEFAULT_FILTER_CPU_UTILIZATION;\\n        }\\n        else if (options.filterCPUUtilization < 0 || options.filterCPUUtilization > 100) {\\n            options.logger.warn(`filterCPUUtilization must be set to a range between 0 and 100 percent. Falling back to default of ${DEFAULT_FILTER_CPU_UTILIZATION} percent`);\\n            options.filterCPUUtilization = DEFAULT_FILTER_CPU_UTILIZATION;\\n        }\\n        return options;\\n    }\\n    /**\\n     * This method will detect the environment in which it is being used and determine if background\\n     * blur/replacement can be used.\\n     * @param spec The {@link BackgroundBlurSpec} spec that will be used to initialize assets\\n     * @param options options such as logger\\n     * @returns a boolean promise that will resolve to true if supported and false if not\\n     */\\n    static isSupported(spec, options) {\\n        const { logger } = options;\\n        // could not figure out how to remove globalThis to test failure case\\n        /* istanbul ignore next */\\n        if (typeof globalThis === 'undefined') {\\n            logger.info('Browser does not have globalThis.');\\n            return Promise.resolve(false);\\n        }\\n        const browser = new DefaultBrowserBehavior_1.default();\\n        if (!browser.supportsBackgroundFilter()) {\\n            logger.info('Browser is not supported.');\\n            return Promise.resolve(false);\\n        }\\n        if (!support_1.supportsWASM(globalThis, logger)) {\\n            logger.info('Browser does not support WASM.');\\n            return Promise.resolve(false);\\n        }\\n        return this.supportsBackgroundFilter(globalThis, spec, logger);\\n    }\\n    static supportsBackgroundFilter(\\n    /* istanbul ignore next */\\n    scope = globalThis, spec, logger) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!support_1.supportsWorker(scope, logger)) {\\n                logger.info('Browser does not support web workers.');\\n                return false;\\n            }\\n            // Use the actual worker path -- it's only 20KB, and it'll get the cache warm.\\n            const workerURL = spec.paths.worker;\\n            try {\\n                const worker = yield loader_1.loadWorker(workerURL, 'BackgroundFilterWorker', {}, null);\\n                try {\\n                    worker.terminate();\\n                }\\n                catch (e) {\\n                    logger.info(`Failed to terminate worker. ${e.message}`);\\n                }\\n                return true;\\n            }\\n            catch (e) {\\n                logger.info(`Failed to fetch and instantiate test worker ${e.message}`);\\n                return false;\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundFilterVideoFrameProcessor;\\n//# sourceMappingURL=BackgroundFilterVideoFrameProcessor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate.js\":\n/*!****************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate.js ***!\n  \\****************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * This class adds the functionality to allow for a set of unique observers to be added to the\\n * video frame processor.\\n */\\n/** @internal */\\nclass BackgroundFilterVideoFrameProcessorDelegate {\\n    constructor() {\\n        this.observers = new Set();\\n    }\\n    /**\\n     * Add an observer to the unique set. If a duplicate observer cannot be added.\\n     * @param observer An implementation of the observer interface.\\n     */\\n    addObserver(observer) {\\n        this.observers.add(observer);\\n    }\\n    /**\\n     * Remove the observer from the set of observers.\\n     * @param observer An implementation of the observer interface.\\n     */\\n    removeObserver(observer) {\\n        this.observers.delete(observer);\\n    }\\n    /**\\n     * Call the observer method with the event information. See [[BackgroundFilterVideoFrameProcessorObserver]]\\n     * for detailed info on this event.\\n     * @param event\\n     */\\n    filterFrameDurationHigh(event) {\\n        var _a;\\n        for (const observer of this.observers) {\\n            (_a = observer.filterFrameDurationHigh) === null || _a === void 0 ? void 0 : _a.call(observer, event);\\n        }\\n    }\\n    filterCPUUtilizationHigh(event) {\\n        var _a;\\n        for (const observer of this.observers) {\\n            (_a = observer.filterCPUUtilizationHigh) === null || _a === void 0 ? void 0 : _a.call(observer, event);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundFilterVideoFrameProcessorDelegate;\\n//# sourceMappingURL=BackgroundFilterVideoFrameProcessorDelegate.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementFilter.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementFilter.js ***!\n  \\**************************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterProcessor_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterProcessor.js\\\");\\nconst BackgroundReplacementVideoFrameProcessorDelegate_1 = __webpack_require__(/*! ./BackgroundReplacementVideoFrameProcessorDelegate */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessorDelegate.js\\\");\\n/**\\n * [[BackgroundReplacementFilter]] implements [[BackgroundReplacementProcessor]].\\n * It's a background replacement processor and input is passed into a worker that will apply a segmentation\\n * to separate the foreground from the background. Then the background will have a replacement applied.\\n *\\n * The [[BackgroundReplacementProcessorProvided]] uses WASM and TensorFlow Lite to apply replacement of the\\n * background image.\\n */\\n/** @internal */\\nclass BackgroundReplacementFilter extends BackgroundFilterProcessor_1.default {\\n    /**\\n     * A constructor that will apply default values if spec and strength are not provided.\\n     * If no spec is provided the selfie segmentation model is used with default paths to CDN for the\\n     * worker and wasm files used to process each frame.\\n     * @param spec The spec defines the assets that will be used for adding background filter to a frame\\n     * @param options The background replacement image path\\n     */\\n    constructor(spec, options) {\\n        super('background replacement', spec, options, new BackgroundReplacementVideoFrameProcessorDelegate_1.default());\\n        this.replacementBlob = options.imageBlob;\\n        this.logger.info('BackgroundReplacement processor successfully created');\\n        this.logger.info(`BackgroundReplacement spec: ${this.stringify(this.spec)}`);\\n        this.logger.info(`BackgroundReplacement options: ${this.stringify(options)}`);\\n    }\\n    setImageBlob(blob) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.replacementBlob = blob;\\n            this.replacementImage = yield BackgroundReplacementFilter.loadImage(this.createReplacementObjectUrl());\\n        });\\n    }\\n    initOnFirstExecution() { }\\n    drawImageWithMask(inputCanvas, mask) {\\n        // Mask will not be set until the worker has completed handling the predict event. Until the first frame is processed,\\n        // the whole frame will be replaced.\\n        if (!mask) {\\n            mask = new ImageData(this.spec.model.input.width, this.spec.model.input.height);\\n        }\\n        const scaledCtx = this.scaledCanvas.getContext('2d');\\n        scaledCtx.putImageData(mask, 0, 0);\\n        const { canvasCtx, targetCanvas } = this;\\n        const { width, height } = targetCanvas;\\n        // draw the mask\\n        canvasCtx.save();\\n        canvasCtx.clearRect(0, 0, width, height);\\n        canvasCtx.drawImage(this.scaledCanvas, 0, 0, width, height);\\n        // Only overwrite existing pixels.\\n        canvasCtx.globalCompositeOperation = 'source-in';\\n        // draw image over mask...\\n        canvasCtx.drawImage(inputCanvas, 0, 0, width, height);\\n        // draw under person\\n        canvasCtx.globalCompositeOperation = 'destination-over';\\n        canvasCtx.drawImage(this.replacementImage, 0, 0, targetCanvas.width, targetCanvas.height);\\n        canvasCtx.restore();\\n    }\\n    /* istanbul ignore next */\\n    static loadImageExecutor(resolve, \\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    reject, imageUrl) {\\n        const image = new Image();\\n        image.crossOrigin = 'Anonymous';\\n        image.addEventListener('load', () => {\\n            resolve(image);\\n        }, false);\\n        image.addEventListener('error', error => {\\n            reject(new Error(`Could not load replacement image ${image.src}: ${error.message}`));\\n        }, false);\\n        image.src = imageUrl;\\n    }\\n    /** @internal */\\n    static loadImage(imageUrl) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return new Promise((resolve, reject) => this.loadImageExecutor(resolve, reject, imageUrl));\\n        });\\n    }\\n    revokeReplacementObjectUrl() {\\n        if (this.replacementObjectUrl) {\\n            URL.revokeObjectURL(this.replacementObjectUrl);\\n        }\\n    }\\n    createReplacementObjectUrl() {\\n        this.revokeReplacementObjectUrl();\\n        this.replacementObjectUrl = URL.createObjectURL(this.replacementBlob);\\n        return this.replacementObjectUrl;\\n    }\\n    /**\\n     * This method initializes all of the resource necessary to process background replacement. It returns\\n     * a promise and resolves or rejects the promise once the initialization is complete.\\n     * @returns\\n     * @throws An error will be thrown\\n     */\\n    loadAssets() {\\n        const _super = Object.create(null, {\\n            loadAssets: { get: () => super.loadAssets }\\n        });\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.replacementImage = yield BackgroundReplacementFilter.loadImage(this.createReplacementObjectUrl());\\n            _super.loadAssets.call(this);\\n            return;\\n        });\\n    }\\n    addObserver(observer) {\\n        this.delegate.addObserver(observer);\\n    }\\n    removeObserver(observer) {\\n        this.delegate.removeObserver(observer);\\n    }\\n    destroy() {\\n        const _super = Object.create(null, {\\n            destroy: { get: () => super.destroy }\\n        });\\n        return __awaiter(this, void 0, void 0, function* () {\\n            _super.destroy.call(this);\\n            this.revokeReplacementObjectUrl();\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundReplacementFilter;\\n//# sourceMappingURL=BackgroundReplacementFilter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementFilter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessor.js\":\n/*!***************************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessor.js ***!\n  \\***************************************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterVideoFrameProcessor_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js\\\");\\nconst ConsoleLogger_1 = __webpack_require__(/*! ../logger/ConsoleLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js\\\");\\nconst LogLevel_1 = __webpack_require__(/*! ../logger/LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nconst NoOpVideoFrameProcessor_1 = __webpack_require__(/*! ../videoframeprocessor/NoOpVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js\\\");\\nconst BackgroundReplacementFilter_1 = __webpack_require__(/*! ./BackgroundReplacementFilter */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementFilter.js\\\");\\n/**\\n * No-op implementation of the background replacement processor. An instance of this class will be returned when a user attempts\\n * to create a background replacement processor when it is not supported.\\n */\\n/** @internal */\\nclass NoOpBackgroundReplacementProcessor extends NoOpVideoFrameProcessor_1.default {\\n    /**\\n     * no-op\\n     * @returns\\n     */\\n    loadAssets() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return;\\n        });\\n    }\\n    /**\\n     * no-op\\n     */\\n    addObserver() { }\\n    /**\\n     * no-op\\n     */\\n    removeObserver() { }\\n    /**\\n     * no-op\\n     */\\n    setImageBlob() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return;\\n        });\\n    }\\n}\\n/**\\n * [[BackgroundReplacementVideoFrameProcessor]]\\n * Creates a background replacement processor which identifies the foreground person and replaces the background.\\n */\\nclass BackgroundReplacementVideoFrameProcessor extends BackgroundFilterVideoFrameProcessor_1.default {\\n    /**\\n     * A factory method that will call the private constructor to instantiate the processor and asynchronously\\n     * initialize the worker, wasm, and ML models. Upon completion of the initialization the promise will either\\n     * be resolved or rejected.\\n     * @param spec The spec defines the assets that will be used for adding background filter to a frame\\n     * @param imagePath The background replacement image path\\n     */\\n    static create(spec, options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            spec = this.resolveSpec(spec);\\n            options = this.resolveOptions(options);\\n            yield this.resolveOptionsAsync(options);\\n            const { logger } = options;\\n            const supported = yield BackgroundReplacementVideoFrameProcessor.isSupported(spec, options);\\n            // if background replacement is not supported do not initialize. The processor will become a no op if not supported.\\n            if (!supported) {\\n                logger.warn('Using no-op processor because background replacement is not supported');\\n                return new NoOpBackgroundReplacementProcessor();\\n            }\\n            logger.info('Using background replacement filter');\\n            const processor = new BackgroundReplacementFilter_1.default(spec, options);\\n            yield processor.loadAssets();\\n            return processor;\\n        });\\n    }\\n    /**\\n     * Based on the options that are passed in set defaults for options\\n     * @param options  the options that are passed in\\n     * @returns An updated set of options with defaults set\\n     */\\n    static resolveOptions(options = {}) {\\n        const processorOptions = Object.assign({}, options);\\n        if (!processorOptions.logger) {\\n            processorOptions.logger = new ConsoleLogger_1.default('BackgroundReplacementProcessor', LogLevel_1.default.INFO);\\n        }\\n        return super.resolveOptions(processorOptions);\\n    }\\n    static resolveOptionsAsync(options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!options.imageBlob) {\\n                const canvas = document.createElement('canvas');\\n                canvas.width = 100;\\n                canvas.height = 100;\\n                const ctx = canvas.getContext('2d');\\n                ctx.fillStyle = 'blue';\\n                ctx.fillRect(0, 0, 100, 100);\\n                const blob = yield new Promise(resolve => {\\n                    canvas.toBlob(resolve);\\n                });\\n                options.imageBlob = blob;\\n            }\\n            return;\\n        });\\n    }\\n    /**\\n     * This method will detect the environment in which it is being used and determine if background\\n     * replacement can be used.\\n     * @param spec The {@link BackgroundFilterSpec} spec that will be used to initialize assets\\n     * @param options options such as logger and imagePath\\n     * @returns a boolean promise that will resolve to true if supported and false if not\\n     */\\n    static isSupported(spec, options) {\\n        const _super = Object.create(null, {\\n            isSupported: { get: () => super.isSupported }\\n        });\\n        return __awaiter(this, void 0, void 0, function* () {\\n            spec = this.resolveSpec(spec);\\n            options = this.resolveOptions(options);\\n            yield this.resolveOptionsAsync(options);\\n            const imageBlob = options.imageBlob;\\n            const imageUrl = URL.createObjectURL(imageBlob);\\n            try {\\n                yield BackgroundReplacementFilter_1.default.loadImage(imageUrl);\\n            }\\n            catch (e) {\\n                options.logger.info(`Failed to fetch load replacement image ${e.message}`);\\n                return false;\\n            }\\n            finally {\\n                URL.revokeObjectURL(imageUrl);\\n            }\\n            return _super.isSupported.call(this, spec, options);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = BackgroundReplacementVideoFrameProcessor;\\n//# sourceMappingURL=BackgroundReplacementVideoFrameProcessor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessorDelegate.js\":\n/*!***********************************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessorDelegate.js ***!\n  \\***********************************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BackgroundFilterVideoFrameProcessorDelegate_1 = __webpack_require__(/*! ../backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessorDelegate.js\\\");\\n/**\\n * This class adds the functionality to allow for a set of unique observers to be added to the\\n * video frame processor.\\n */\\n/** @internal */\\nclass BackgroundReplacementVideoFrameProcessorDelegate extends BackgroundFilterVideoFrameProcessorDelegate_1.default {\\n}\\nexports[\\\"default\\\"] = BackgroundReplacementVideoFrameProcessorDelegate;\\n//# sourceMappingURL=BackgroundReplacementVideoFrameProcessorDelegate.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessorDelegate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * Implements the [Full Jitter algorithm](\\n * https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)\\n * and also allows for specifying a fixed wait added to the full jitter backoff\\n * (which can be zero).\\n */\\nclass FullJitterBackoff {\\n    constructor(fixedWaitMs, shortBackoffMs, longBackoffMs) {\\n        this.fixedWaitMs = fixedWaitMs;\\n        this.shortBackoffMs = shortBackoffMs;\\n        this.longBackoffMs = longBackoffMs;\\n        this.currentRetry = 0;\\n        if (this.fixedWaitMs < 0) {\\n            this.fixedWaitMs = 0;\\n        }\\n        if (this.shortBackoffMs < 0) {\\n            this.shortBackoffMs = 0;\\n        }\\n        if (this.longBackoffMs < 0) {\\n            this.longBackoffMs = 0;\\n        }\\n        this.reset();\\n    }\\n    reset() {\\n        this.currentRetry = 0;\\n    }\\n    nextBackoffAmountMs() {\\n        const fullJitterMs = Math.random() *\\n            Math.min(this.longBackoffMs, this.shortBackoffMs * Math.pow(2.0, this.currentRetry)) +\\n            this.fixedWaitMs;\\n        this.currentRetry += 1;\\n        return fullJitterMs;\\n    }\\n}\\nexports[\\\"default\\\"] = FullJitterBackoff;\\n//# sourceMappingURL=FullJitterBackoff.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoffFactory.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoffFactory.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ./FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nconst FullJitterLimitedBackoff_1 = __webpack_require__(/*! ./FullJitterLimitedBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterLimitedBackoff.js\\\");\\nclass FullJitterBackoffFactory {\\n    constructor(fixedWaitMs, shortBackoffMs, longBackoffMs) {\\n        this.fixedWaitMs = fixedWaitMs;\\n        this.shortBackoffMs = shortBackoffMs;\\n        this.longBackoffMs = longBackoffMs;\\n    }\\n    create() {\\n        return new FullJitterBackoff_1.default(this.fixedWaitMs, this.shortBackoffMs, this.longBackoffMs);\\n    }\\n    createWithLimit(limit) {\\n        return new FullJitterLimitedBackoff_1.default(this.fixedWaitMs, this.shortBackoffMs, this.longBackoffMs, limit);\\n    }\\n}\\nexports[\\\"default\\\"] = FullJitterBackoffFactory;\\n//# sourceMappingURL=FullJitterBackoffFactory.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoffFactory.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterLimitedBackoff.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterLimitedBackoff.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ./FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nclass FullJitterLimitedBackoff extends FullJitterBackoff_1.default {\\n    constructor(fixedWaitMs, shortBackoffMs, longBackoffMs, limit) {\\n        super(fixedWaitMs, shortBackoffMs, longBackoffMs);\\n        this.limit = limit;\\n        this.attempts = 0;\\n    }\\n    nextBackoffAmountMs() {\\n        this.attempts++;\\n        if (this.attempts > this.limit) {\\n            throw new Error('retry limit exceeded');\\n        }\\n        return super.nextBackoffAmountMs();\\n    }\\n}\\nexports[\\\"default\\\"] = FullJitterLimitedBackoff;\\n//# sourceMappingURL=FullJitterLimitedBackoff.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterLimitedBackoff.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js ***!\n  \\******************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst detect_browser_1 = __webpack_require__(/*! detect-browser */ \\\"./node_modules/detect-browser/es/index.js\\\");\\nconst ua_parser_js_1 = __webpack_require__(/*! ua-parser-js */ \\\"./node_modules/ua-parser-js/src/ua-parser.js\\\");\\nclass DefaultBrowserBehavior {\\n    constructor() {\\n        this.browser = detect_browser_1.detect();\\n        this.uaParserResult = navigator && navigator.userAgent ? new ua_parser_js_1.UAParser(navigator.userAgent).getResult() : null;\\n        this.browserSupport = {\\n            chrome: 78,\\n            'edge-chromium': 79,\\n            electron: 7,\\n            firefox: 75,\\n            ios: 13,\\n            safari: 13,\\n            opera: 66,\\n            samsung: 12,\\n            crios: 86,\\n            fxios: 23,\\n            'ios-webview': 605,\\n            'chromium-webview': 92,\\n        };\\n        this.browserName = {\\n            chrome: 'Google Chrome',\\n            'edge-chromium': 'Microsoft Edge',\\n            electron: 'Electron',\\n            firefox: 'Mozilla Firefox',\\n            ios: 'Safari iOS',\\n            safari: 'Safari',\\n            opera: 'Opera',\\n            samsung: 'Samsung Internet',\\n            crios: 'Chrome iOS',\\n            fxios: 'Firefox iOS',\\n            'ios-webview': 'WKWebView iOS',\\n            'chromium-webview': 'Chrome WebView',\\n        };\\n        this.chromeLike = [\\n            'chrome',\\n            'edge-chromium',\\n            'chromium-webview',\\n            'opera',\\n            'samsung',\\n        ];\\n        this.webkitBrowsers = ['crios', 'fxios', 'safari', 'ios', 'ios-webview'];\\n    }\\n    version() {\\n        return this.browser.version;\\n    }\\n    majorVersion() {\\n        return parseInt(this.version().split('.')[0]);\\n    }\\n    osMajorVersion() {\\n        return parseInt(this.uaParserResult.os.version.split('.')[0]);\\n    }\\n    name() {\\n        return this.browser.name;\\n    }\\n    hasChromiumWebRTC() {\\n        for (const browser of this.chromeLike) {\\n            if (browser === this.browser.name) {\\n                return true;\\n            }\\n        }\\n        return false;\\n    }\\n    hasWebKitWebRTC() {\\n        for (const browser of this.webkitBrowsers) {\\n            if (browser === this.browser.name) {\\n                return true;\\n            }\\n        }\\n        return false;\\n    }\\n    hasFirefoxWebRTC() {\\n        return this.isFirefox();\\n    }\\n    requiresPlaybackLatencyHintForAudioContext() {\\n        return navigator.userAgent.indexOf('Windows') !== -1;\\n    }\\n    supportsCanvasCapturedStreamPlayback() {\\n        return ((!this.isIOSSafari() && !this.isIOSChrome() && !this.isIOSFirefox()) ||\\n            this.osMajorVersion() >= DefaultBrowserBehavior.MIN_IOS_SUPPORT_CANVAS_STREAM_PLAYBACK);\\n    }\\n    supportsBackgroundFilter() {\\n        // disable Safari 15\\n        // see: https://github.com/aws/amazon-chime-sdk-js/issues/1059\\n        if (this.name() === 'safari' && this.majorVersion() === 15) {\\n            return false;\\n        }\\n        if (!this.supportsCanvasCapturedStreamPlayback()) {\\n            return false;\\n        }\\n        return true;\\n    }\\n    supportsVideoLayersAllocationRtpHeaderExtension() {\\n        return this.hasChromiumWebRTC();\\n    }\\n    requiresResolutionAlignment(width, height) {\\n        if (this.isAndroid() && this.isPixel3()) {\\n            return [Math.ceil(width / 64) * 64, Math.ceil(height / 64) * 64];\\n        }\\n        return [width, height];\\n    }\\n    requiresCheckForSdpConnectionAttributes() {\\n        return !this.isIOSSafari() && !this.isIOSChrome() && !this.isIOSFirefox();\\n    }\\n    requiresIceCandidateGatheringTimeoutWorkaround() {\\n        return this.hasChromiumWebRTC();\\n    }\\n    requiresBundlePolicy() {\\n        return 'max-bundle';\\n    }\\n    requiresNoExactMediaStreamConstraints() {\\n        return this.isSamsungInternet();\\n    }\\n    requiresGroupIdMediaStreamConstraints() {\\n        return this.isSamsungInternet();\\n    }\\n    getDisplayMediaAudioCaptureSupport() {\\n        return this.isChrome() || this.isEdge();\\n    }\\n    // There's a issue in Chormium WebView that causes enumerate devices to return empty labels, this is a check for this issue.\\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=669492\\n    doesNotSupportMediaDeviceLabels() {\\n        return this.browser.name === 'chromium-webview';\\n    }\\n    isSupported() {\\n        if (!this.browserSupport[this.browser.name] ||\\n            this.majorVersion() < this.browserSupport[this.browser.name]) {\\n            return false;\\n        }\\n        if (this.browser.name === 'firefox' && this.isAndroid()) {\\n            return false;\\n        }\\n        return true;\\n    }\\n    isSimulcastSupported() {\\n        return this.hasChromiumWebRTC();\\n    }\\n    supportDownlinkBandwidthEstimation() {\\n        return !this.isFirefox();\\n    }\\n    supportString() {\\n        if (this.isAndroid()) {\\n            return `${this.browserName['chrome']} ${this.browserSupport['chrome']}+, ${this.browserName['samsung']} ${this.browserSupport['samsung']}+`;\\n        }\\n        const s = [];\\n        for (const k in this.browserSupport) {\\n            s.push(`${this.browserName[k]} ${this.browserSupport[k]}+`);\\n        }\\n        return s.join(', ');\\n    }\\n    supportedVideoCodecs() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const pc = new RTCPeerConnection();\\n            pc.addTransceiver('video', { direction: 'inactive', streams: [] });\\n            return (yield pc.createOffer({ offerToReceiveVideo: true })).sdp\\n                .split('\\\\r\\\\n')\\n                .filter(x => {\\n                return x.includes('a=rtpmap:');\\n            })\\n                .map(x => {\\n                return x.replace(/.* /, '').replace(/\\\\/.*/, '');\\n            })\\n                .filter((v, i, a) => {\\n                return a.indexOf(v) === i;\\n            })\\n                .filter(x => {\\n                return x !== 'rtx' && x !== 'red' && x !== 'ulpfec';\\n            });\\n        });\\n    }\\n    supportsSetSinkId() {\\n        return 'setSinkId' in HTMLAudioElement.prototype;\\n    }\\n    disableResolutionScaleDown() {\\n        return this.isAndroid();\\n    }\\n    disable480pResolutionScaleDown() {\\n        return /( Chrome\\\\/98\\\\.)/i.test(navigator.userAgent) && this.browser.os.startsWith('Windows');\\n    }\\n    requiresDisablingH264Encoding() {\\n        return ((this.isIOSSafari() || this.isIOSChrome() || this.isIOSFirefox()) &&\\n            (this.version() === '15.1.0' || /( OS 15_1)/i.test(navigator.userAgent)));\\n    }\\n    // In Safari, a hidden video element can show a black screen.\\n    // See https://bugs.webkit.org/show_bug.cgi?id=241152 for more information.\\n    requiresVideoPlayWorkaround() {\\n        return this.isSafari();\\n    }\\n    // These helpers should be kept private to encourage\\n    // feature detection instead of browser detection.\\n    isIOSSafari() {\\n        return (this.browser.name === 'ios' ||\\n            this.browser.name === 'ios-webview' ||\\n            (this.browser.name === 'safari' &&\\n                /( Mac )/i.test(navigator.userAgent) &&\\n                navigator.maxTouchPoints > 1) //Ipad\\n        );\\n    }\\n    isSafari() {\\n        return this.browser.name === 'safari' || this.isIOSSafari();\\n    }\\n    isFirefox() {\\n        return this.browser.name === 'firefox';\\n    }\\n    isIOSFirefox() {\\n        return this.browser.name === 'fxios';\\n    }\\n    isIOSChrome() {\\n        return this.browser.name === 'crios';\\n    }\\n    isChrome() {\\n        return this.browser.name === 'chrome';\\n    }\\n    isEdge() {\\n        return this.browser.name === 'edge-chromium';\\n    }\\n    isSamsungInternet() {\\n        return this.browser.name === 'samsung';\\n    }\\n    isAndroid() {\\n        return /(android)/i.test(navigator.userAgent);\\n    }\\n    isPixel3() {\\n        return /( pixel 3)/i.test(navigator.userAgent);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultBrowserBehavior;\\nDefaultBrowserBehavior.MIN_IOS_SUPPORT_CANVAS_STREAM_PLAYBACK = 16;\\n//# sourceMappingURL=DefaultBrowserBehavior.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReport.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReport.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst ClientMetricReportDirection_1 = __webpack_require__(/*! ./ClientMetricReportDirection */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\\\");\\nconst ClientMetricReportMediaType_1 = __webpack_require__(/*! ./ClientMetricReportMediaType */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\\\");\\nconst GlobalMetricReport_1 = __webpack_require__(/*! ./GlobalMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/GlobalMetricReport.js\\\");\\n/**\\n * [[ClientMetricReport]] gets the media metrics used by ConnectionMonitor to\\n * update connection health data.\\n */\\nclass ClientMetricReport {\\n    constructor(logger, videoStreamIndex, selfAttendeeId) {\\n        this.logger = logger;\\n        this.videoStreamIndex = videoStreamIndex;\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.globalMetricReport = new GlobalMetricReport_1.default();\\n        this.streamMetricReports = {};\\n        this.rtcStatsReport = {};\\n        this.currentTimestampMs = 0;\\n        this.previousTimestampMs = 0;\\n        this.currentSsrcs = {};\\n        /**\\n         *  Metric transform functions\\n         */\\n        this.identityValue = (metricName, ssrc) => {\\n            const metricReport = ssrc ? this.streamMetricReports[ssrc] : this.globalMetricReport;\\n            return Number(metricReport.currentMetrics[metricName]);\\n        };\\n        this.decoderLossPercent = (metricName, ssrc) => {\\n            const metricReport = this.streamMetricReports[ssrc];\\n            const concealedSamples = metricReport.currentMetrics['concealedSamples'] -\\n                (metricReport.previousMetrics['concealedSamples'] || 0);\\n            const totalSamplesReceived = metricReport.currentMetrics['totalSamplesReceived'] -\\n                (metricReport.previousMetrics['totalSamplesReceived'] || 0);\\n            if (totalSamplesReceived <= 0) {\\n                return 0;\\n            }\\n            const decoderAbnormal = totalSamplesReceived - concealedSamples;\\n            if (decoderAbnormal <= 0) {\\n                return 0;\\n            }\\n            return (concealedSamples / totalSamplesReceived) * 100;\\n        };\\n        this.packetLossPercent = (sourceMetricName, ssrc) => {\\n            const metricReport = this.streamMetricReports[ssrc];\\n            const sentOrReceived = metricReport.currentMetrics[sourceMetricName] -\\n                (metricReport.previousMetrics[sourceMetricName] || 0);\\n            const lost = metricReport.currentMetrics['packetsLost'] -\\n                (metricReport.previousMetrics['packetsLost'] || 0);\\n            const total = sentOrReceived + lost;\\n            if (total <= 0 || lost <= 0) {\\n                return 0;\\n            }\\n            return (lost * 100) / total;\\n        };\\n        this.jitterBufferMs = (metricName, ssrc) => {\\n            const metricReport = this.streamMetricReports[ssrc];\\n            const jitterBufferDelay = metricReport.currentMetrics['jitterBufferDelay'] -\\n                (metricReport.previousMetrics['jitterBufferDelay'] || 0);\\n            const jitterBufferEmittedCount = metricReport.currentMetrics['jitterBufferEmittedCount'] -\\n                (metricReport.previousMetrics['jitterBufferEmittedCount'] || 0);\\n            if (jitterBufferDelay <= 0) {\\n                return 0;\\n            }\\n            if (jitterBufferEmittedCount <= 0) {\\n                return 0;\\n            }\\n            return (jitterBufferDelay / jitterBufferEmittedCount) * 1000;\\n        };\\n        this.countPerSecond = (metricName, ssrc) => {\\n            const metricReport = ssrc ? this.streamMetricReports[ssrc] : this.globalMetricReport;\\n            let intervalSeconds = (this.currentTimestampMs - this.previousTimestampMs) / 1000;\\n            if (intervalSeconds <= 0) {\\n                return 0;\\n            }\\n            if (this.previousTimestampMs <= 0) {\\n                intervalSeconds = 1;\\n            }\\n            const diff = metricReport.currentMetrics[metricName] - (metricReport.previousMetrics[metricName] || 0);\\n            if (diff <= 0) {\\n                return 0;\\n            }\\n            return Math.trunc(diff / intervalSeconds);\\n        };\\n        this.bitsPerSecond = (metricName, ssrc) => {\\n            const metricReport = ssrc ? this.streamMetricReports[ssrc] : this.globalMetricReport;\\n            let intervalSeconds = (this.currentTimestampMs - this.previousTimestampMs) / 1000;\\n            if (intervalSeconds <= 0) {\\n                return 0;\\n            }\\n            if (this.previousTimestampMs <= 0) {\\n                intervalSeconds = 1;\\n            }\\n            const diff = (metricReport.currentMetrics[metricName] - (metricReport.previousMetrics[metricName] || 0)) *\\n                8;\\n            if (diff <= 0) {\\n                return 0;\\n            }\\n            return Math.trunc(diff / intervalSeconds);\\n        };\\n        this.secondsToMilliseconds = (metricName, ssrc) => {\\n            const metricReport = ssrc ? this.streamMetricReports[ssrc] : this.globalMetricReport;\\n            return Number(metricReport.currentMetrics[metricName] * 1000);\\n        };\\n        this.averageTimeSpentPerSecondInMilliseconds = (metricName, ssrc) => {\\n            const metricReport = ssrc ? this.streamMetricReports[ssrc] : this.globalMetricReport;\\n            let intervalSeconds = (this.currentTimestampMs - this.previousTimestampMs) / 1000;\\n            if (intervalSeconds <= 0) {\\n                return 0;\\n            }\\n            if (this.previousTimestampMs <= 0) {\\n                intervalSeconds = 1;\\n            }\\n            const diff = metricReport.currentMetrics[metricName] - (metricReport.previousMetrics[metricName] || 0);\\n            if (diff <= 0) {\\n                return 0;\\n            }\\n            return (diff * 1000) / intervalSeconds;\\n        };\\n        this.isHardwareImplementation = (metricName, ssrc) => {\\n            const metricReport = this.streamMetricReports[ssrc];\\n            const implName = String(metricReport.currentStringMetrics[metricName]);\\n            const hasHwName = implName.includes('ExternalDecoder') ||\\n                implName.includes('ExternalEncoder') ||\\n                implName.includes('EncodeAccelerator') ||\\n                implName.includes('DecodeAccelerator');\\n            const isFallback = implName.includes('fallback from');\\n            return hasHwName && !isFallback ? 1 : 0;\\n        };\\n        /**\\n         *  Canonical and derived metric maps\\n         */\\n        this.globalMetricMap = {\\n            retransmittedBytesSent: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RETRANSMIT_BITRATE,\\n            },\\n            totalEncodedBytesTarget: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_TARGET_ENCODER_BITRATE,\\n            },\\n            totalPacketSendDelay: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_BUCKET_DELAY_MS,\\n            },\\n            packetsDiscardedOnSend: {\\n                transform: this.countPerSecond,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.SOCKET_DISCARDED_PPS,\\n            },\\n            availableIncomingBitrate: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_AVAILABLE_RECEIVE_BANDWIDTH,\\n            },\\n            availableOutgoingBitrate: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_AVAILABLE_SEND_BANDWIDTH,\\n            },\\n            currentRoundTripTime: {\\n                transform: this.secondsToMilliseconds,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.STUN_RTT_MS,\\n            },\\n        };\\n        this.audioUpstreamMetricMap = {\\n            jitter: { transform: this.secondsToMilliseconds, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_MIC_JITTER_MS },\\n            packetsSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_MIC_PPS },\\n            bytesSent: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_MIC_BITRATE },\\n            roundTripTime: { transform: this.secondsToMilliseconds, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_MIC_RTT_MS },\\n            packetsLost: {\\n                transform: this.packetLossPercent,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.RTC_MIC_FRACTION_PACKET_LOST_PERCENT,\\n                source: 'packetsSent',\\n            },\\n        };\\n        this.audioDownstreamMetricMap = {\\n            concealedSamples: {\\n                transform: this.countPerSecond,\\n            },\\n            totalSamplesReceived: {\\n                transform: this.countPerSecond,\\n            },\\n            decoderLoss: {\\n                transform: this.decoderLossPercent,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_FRACTION_DECODER_LOSS_PERCENT,\\n            },\\n            packetsReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_PPS },\\n            packetsLost: {\\n                transform: this.packetLossPercent,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_FRACTION_PACKET_LOST_PERCENT,\\n                source: 'packetsReceived',\\n            },\\n            jitter: { transform: this.secondsToMilliseconds, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_JITTER_MS },\\n            jitterBufferDelay: {\\n                transform: this.countPerSecond,\\n            },\\n            jitterBufferEmittedCount: {\\n                transform: this.countPerSecond,\\n            },\\n            jitterBufferMs: {\\n                transform: this.jitterBufferMs,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_JITTER_BUFFER_MS,\\n            },\\n            bytesReceived: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.RTC_SPK_BITRATE },\\n        };\\n        this.videoUpstreamMetricMap = {\\n            roundTripTime: {\\n                transform: this.secondsToMilliseconds,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_SENT_RTT_MS,\\n            },\\n            nackCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_NACKS_RECEIVED },\\n            pliCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_PLIS_RECEIVED },\\n            firCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_FIRS_RECEIVED },\\n            framesPerSecond: { transform: this.identityValue, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_INPUT_FPS },\\n            framesEncoded: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_ENCODE_FPS },\\n            packetsSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_SENT_PPS },\\n            packetsLost: {\\n                transform: this.packetLossPercent,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT,\\n                source: 'packetsSent',\\n            },\\n            bytesSent: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_SENT_BITRATE },\\n            qpSum: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_SENT_QP_SUM },\\n            frameHeight: { transform: this.identityValue, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_ENCODE_HEIGHT },\\n            frameWidth: { transform: this.identityValue, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_ENCODE_WIDTH },\\n            jitter: {\\n                transform: this.secondsToMilliseconds,\\n            },\\n            totalEncodeTime: {\\n                transform: this.averageTimeSpentPerSecondInMilliseconds,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_ENCODE_MS,\\n            },\\n            encoderImplementation: {\\n                transform: this.isHardwareImplementation,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_ENCODER_IS_HARDWARE,\\n            },\\n        };\\n        this.videoDownstreamMetricMap = {\\n            packetsReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_PPS },\\n            packetsLost: {\\n                transform: this.packetLossPercent,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT,\\n                source: 'packetsReceived',\\n            },\\n            framesReceived: {\\n                transform: this.identityValue,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_FPS,\\n            },\\n            framesDecoded: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_DECODE_FPS },\\n            nackCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_NACKS_SENT },\\n            firCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_FIRS_SENT },\\n            pliCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_PLIS_SENT },\\n            bytesReceived: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_BITRATE },\\n            jitter: {\\n                transform: this.secondsToMilliseconds,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_JITTER_MS,\\n            },\\n            jitterBufferDelay: {\\n                transform: this.countPerSecond,\\n            },\\n            jitterBufferEmittedCount: {\\n                transform: this.countPerSecond,\\n            },\\n            jitterBufferMs: {\\n                transform: this.jitterBufferMs,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_JITTER_BUFFER_MS,\\n            },\\n            qpSum: {\\n                transform: this.countPerSecond,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_RECEIVED_QP_SUM,\\n            },\\n            frameHeight: { transform: this.identityValue, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_DECODE_HEIGHT },\\n            frameWidth: { transform: this.identityValue, type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_DECODE_WIDTH },\\n            totalDecodeTime: {\\n                transform: this.averageTimeSpentPerSecondInMilliseconds,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_DECODE_MS,\\n            },\\n            decoderImplementation: {\\n                transform: this.isHardwareImplementation,\\n                type: SignalingProtocol_js_1.SdkMetric.Type.VIDEO_DECODER_IS_HARDWARE,\\n            },\\n        };\\n        /**\\n         *  Dimensions derived from metric\\n         */\\n        this.streamDimensionMap = {\\n            encoderImplementation: SignalingProtocol_js_1.SdkStreamDimension.Type.VIDEO_ENCODER_NAME,\\n            decoderImplementation: SignalingProtocol_js_1.SdkStreamDimension.Type.VIDEO_DECODER_NAME,\\n        };\\n        /**\\n         *  media Stream metrics\\n         */\\n        this.observableVideoMetricSpec = {\\n            videoUpstreamBitrate: {\\n                source: 'bytesSent',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamPacketsSent: {\\n                source: 'packetsSent',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamPacketLossPercent: {\\n                source: 'packetsLost',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamFramesEncodedPerSecond: {\\n                source: 'framesEncoded',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamFrameHeight: {\\n                source: 'frameHeight',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamFrameWidth: {\\n                source: 'frameWidth',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamJitterMs: {\\n                source: 'jitter',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamRoundTripTimeMs: {\\n                source: 'roundTripTime',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoDownstreamBitrate: {\\n                source: 'bytesReceived',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamPacketLossPercent: {\\n                source: 'packetsLost',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamPacketsReceived: {\\n                source: 'packetsReceived',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamFramesDecodedPerSecond: {\\n                source: 'framesDecoded',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamFrameHeight: {\\n                source: 'frameHeight',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamFrameWidth: {\\n                source: 'frameWidth',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamJitterMs: {\\n                source: 'jitter',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            videoDownstreamDelayMs: {\\n                source: 'jitterBufferMs',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n        };\\n        /**\\n         * Observable metrics and related APIs\\n         */\\n        this.observableMetricSpec = {\\n            audioPacketsReceived: {\\n                source: 'packetsReceived',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            audioPacketsReceivedFractionLoss: {\\n                source: 'packetsLost',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            audioDecoderLoss: {\\n                source: 'decoderLoss',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            audioPacketsSent: {\\n                source: 'packetsSent',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            audioPacketLossPercent: {\\n                source: 'packetsLost',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            audioUpstreamRoundTripTimeMs: {\\n                source: 'roundTripTime',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            videoUpstreamBitrate: { source: 'bytesSent', media: ClientMetricReportMediaType_1.default.VIDEO, dir: ClientMetricReportDirection_1.default.UPSTREAM },\\n            videoPacketSentPerSecond: {\\n                source: 'packetsSent',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            audioSpeakerDelayMs: {\\n                source: 'jitterBufferMs',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            audioUpstreamJitterMs: {\\n                source: 'jitter',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            audioDownstreamJitterMs: {\\n                source: 'jitter',\\n                media: ClientMetricReportMediaType_1.default.AUDIO,\\n                dir: ClientMetricReportDirection_1.default.DOWNSTREAM,\\n            },\\n            nackCountReceivedPerSecond: {\\n                source: 'nackCount',\\n                media: ClientMetricReportMediaType_1.default.VIDEO,\\n                dir: ClientMetricReportDirection_1.default.UPSTREAM,\\n            },\\n            availableOutgoingBitrate: { source: 'availableOutgoingBitrate' },\\n            availableIncomingBitrate: { source: 'availableIncomingBitrate' },\\n            currentRoundTripTimeMs: { source: 'currentRoundTripTime' },\\n        };\\n    }\\n    getMetricMap(mediaType, direction) {\\n        switch (mediaType) {\\n            case ClientMetricReportMediaType_1.default.AUDIO:\\n                switch (direction) {\\n                    case ClientMetricReportDirection_1.default.UPSTREAM:\\n                        return this.audioUpstreamMetricMap;\\n                    case ClientMetricReportDirection_1.default.DOWNSTREAM:\\n                        return this.audioDownstreamMetricMap;\\n                }\\n            case ClientMetricReportMediaType_1.default.VIDEO:\\n                switch (direction) {\\n                    case ClientMetricReportDirection_1.default.UPSTREAM:\\n                        return this.videoUpstreamMetricMap;\\n                    case ClientMetricReportDirection_1.default.DOWNSTREAM:\\n                        return this.videoDownstreamMetricMap;\\n                }\\n            default:\\n                return this.globalMetricMap;\\n        }\\n    }\\n    getStreamDimensionMap() {\\n        return this.streamDimensionMap;\\n    }\\n    /**\\n     * Returns the value of the specific metric in observableMetricSpec.\\n     */\\n    getObservableMetricValue(metricName) {\\n        const observableMetricSpec = this.observableMetricSpec[metricName];\\n        const metricMap = this.getMetricMap(observableMetricSpec.media, observableMetricSpec.dir);\\n        const metricSpec = metricMap[observableMetricSpec.source];\\n        const { transform, source } = metricSpec;\\n        if (observableMetricSpec.hasOwnProperty('media')) {\\n            for (const ssrc in this.streamMetricReports) {\\n                const streamMetricReport = this.streamMetricReports[ssrc];\\n                if (streamMetricReport.direction === observableMetricSpec.dir &&\\n                    streamMetricReport.mediaType === observableMetricSpec.media) {\\n                    return source\\n                        ? transform(source, Number(ssrc))\\n                        : transform(observableMetricSpec.source, Number(ssrc));\\n                }\\n            }\\n        }\\n        else {\\n            return source ? transform(source) : transform(observableMetricSpec.source);\\n        }\\n        return 0;\\n    }\\n    /**\\n     * Returns the value of the specific metric in observableVideoMetricSpec.\\n     */\\n    getObservableVideoMetricValue(metricName, ssrcNum) {\\n        const observableVideoMetricSpec = this.observableVideoMetricSpec[metricName];\\n        const metricMap = this.getMetricMap(observableVideoMetricSpec.media, observableVideoMetricSpec.dir);\\n        const metricSpec = metricMap[observableVideoMetricSpec.source];\\n        const { transform, source } = metricSpec;\\n        return source\\n            ? transform(source, ssrcNum)\\n            : transform(observableVideoMetricSpec.source, ssrcNum);\\n    }\\n    /**\\n     * Returns the value of metrics in observableMetricSpec.\\n     */\\n    getObservableMetrics() {\\n        const metric = {};\\n        for (const metricName in this.observableMetricSpec) {\\n            metric[metricName] = this.getObservableMetricValue(metricName);\\n        }\\n        return metric;\\n    }\\n    /**\\n     * Returns the value of metrics in observableVideoMetricSpec for each SSRC.\\n     */\\n    getObservableVideoMetrics() {\\n        const videoStreamMetrics = {};\\n        if (!this.videoStreamIndex || !this.selfAttendeeId) {\\n            this.logger.error('Need to define VideoStreamIndex and selfAttendeeId if using getObservableVideoMetrics API');\\n            return videoStreamMetrics;\\n        }\\n        for (const ssrc in this.streamMetricReports) {\\n            if (this.streamMetricReports[ssrc].mediaType === ClientMetricReportMediaType_1.default.VIDEO) {\\n                const metric = {};\\n                for (const metricName in this.observableVideoMetricSpec) {\\n                    if (this.observableVideoMetricSpec[metricName].dir ===\\n                        this.streamMetricReports[ssrc].direction) {\\n                        const metricValue = this.getObservableVideoMetricValue(metricName, Number(ssrc));\\n                        if (!isNaN(metricValue)) {\\n                            metric[metricName] = metricValue;\\n                        }\\n                    }\\n                }\\n                const streamId = this.streamMetricReports[ssrc].streamId;\\n                const attendeeId = streamId\\n                    ? this.videoStreamIndex.attendeeIdForStreamId(streamId)\\n                    : this.selfAttendeeId;\\n                videoStreamMetrics[attendeeId] = videoStreamMetrics[attendeeId]\\n                    ? videoStreamMetrics[attendeeId]\\n                    : {};\\n                videoStreamMetrics[attendeeId][ssrc] = metric;\\n            }\\n        }\\n        return videoStreamMetrics;\\n    }\\n    /**\\n     * Returns the raw RTCStatsReport from RTCPeerConnection.getStats() API.\\n     */\\n    getRTCStatsReport() {\\n        return this.rtcStatsReport;\\n    }\\n    /**\\n     * Clones the ClientMetricReport and returns it.\\n     */\\n    clone() {\\n        const cloned = new ClientMetricReport(this.logger, this.videoStreamIndex, this.selfAttendeeId);\\n        cloned.globalMetricReport = this.globalMetricReport;\\n        cloned.streamMetricReports = this.streamMetricReports;\\n        cloned.rtcStatsReport = this.rtcStatsReport;\\n        cloned.currentTimestampMs = this.currentTimestampMs;\\n        cloned.previousTimestampMs = this.previousTimestampMs;\\n        return cloned;\\n    }\\n    /**\\n     * Prints out the globalMetricReport, streamMetricReports and the corresponding timestamps from the current ClientMetricReport.\\n     */\\n    print() {\\n        const clientMetricReport = {\\n            globalMetricReport: this.globalMetricReport,\\n            streamMetricReports: this.streamMetricReports,\\n            currentTimestampMs: this.currentTimestampMs,\\n            previousTimestampMs: this.previousTimestampMs,\\n        };\\n        this.logger.debug(() => {\\n            return `Client Metric Report: ${JSON.stringify(clientMetricReport)}`;\\n        });\\n    }\\n    /**\\n     * Removes the SSRCs that are no longer valid.\\n     */\\n    removeDestroyedSsrcs() {\\n        for (const ssrc in this.streamMetricReports) {\\n            if (!this.currentSsrcs[ssrc]) {\\n                delete this.streamMetricReports[ssrc];\\n            }\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = ClientMetricReport;\\n//# sourceMappingURL=ClientMetricReport.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReport.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.ClientMetricReportDirection = void 0;\\nvar ClientMetricReportDirection;\\n(function (ClientMetricReportDirection) {\\n    ClientMetricReportDirection[ClientMetricReportDirection[\\\"UPSTREAM\\\"] = 0] = \\\"UPSTREAM\\\";\\n    ClientMetricReportDirection[ClientMetricReportDirection[\\\"DOWNSTREAM\\\"] = 1] = \\\"DOWNSTREAM\\\";\\n})(ClientMetricReportDirection = exports.ClientMetricReportDirection || (exports.ClientMetricReportDirection = {}));\\nexports[\\\"default\\\"] = ClientMetricReportDirection;\\n//# sourceMappingURL=ClientMetricReportDirection.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.ClientMetricReportMediaType = void 0;\\nvar ClientMetricReportMediaType;\\n(function (ClientMetricReportMediaType) {\\n    ClientMetricReportMediaType[ClientMetricReportMediaType[\\\"AUDIO\\\"] = 0] = \\\"AUDIO\\\";\\n    ClientMetricReportMediaType[ClientMetricReportMediaType[\\\"VIDEO\\\"] = 1] = \\\"VIDEO\\\";\\n})(ClientMetricReportMediaType = exports.ClientMetricReportMediaType || (exports.ClientMetricReportMediaType = {}));\\nexports[\\\"default\\\"] = ClientMetricReportMediaType;\\n//# sourceMappingURL=ClientMetricReportMediaType.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientVideoStreamReceivingReport.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientVideoStreamReceivingReport.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass ClientVideoStreamReceivingReport {\\n}\\nexports[\\\"default\\\"] = ClientVideoStreamReceivingReport;\\n//# sourceMappingURL=ClientVideoStreamReceivingReport.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientVideoStreamReceivingReport.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/GlobalMetricReport.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/GlobalMetricReport.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass GlobalMetricReport {\\n    constructor() {\\n        this.previousMetrics = {};\\n        this.currentMetrics = {};\\n        // As metric values do not necessarily be number, this is a workaround in case metric value is string\\n        this.currentStringMetrics = {};\\n    }\\n}\\nexports[\\\"default\\\"] = GlobalMetricReport;\\n//# sourceMappingURL=GlobalMetricReport.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/GlobalMetricReport.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/StreamMetricReport.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/clientmetricreport/StreamMetricReport.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass StreamMetricReport {\\n    constructor() {\\n        this.previousMetrics = {};\\n        this.currentMetrics = {};\\n        // As metric values do not necessarily be number, this is a workaround in case metric value is string\\n        this.currentStringMetrics = {};\\n    }\\n}\\nexports[\\\"default\\\"] = StreamMetricReport;\\n//# sourceMappingURL=StreamMetricReport.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/clientmetricreport/StreamMetricReport.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js ***!\n  \\*****************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass BaseConnectionHealthPolicy {\\n    constructor(configuration, data, name) {\\n        this.minHealth = configuration.minHealth;\\n        this.maxHealth = configuration.maxHealth;\\n        this.currentHealth = configuration.initialHealth;\\n        this.currentData = data.clone();\\n        this.name = name;\\n    }\\n    minimumHealth() {\\n        return this.minHealth;\\n    }\\n    maximumHealth() {\\n        return this.maxHealth;\\n    }\\n    health() {\\n        return this.maximumHealth();\\n    }\\n    update(connectionHealthData) {\\n        this.currentData = connectionHealthData;\\n    }\\n    getConnectionHealthData() {\\n        return this.currentData.clone();\\n    }\\n    healthy() {\\n        return this.health() > this.minimumHealth();\\n    }\\n    healthIfChanged() {\\n        const newHealth = this.health();\\n        if (newHealth !== this.currentHealth) {\\n            this.currentHealth = newHealth;\\n            return newHealth;\\n        }\\n        return null;\\n    }\\n}\\nexports[\\\"default\\\"] = BaseConnectionHealthPolicy;\\n//# sourceMappingURL=BaseConnectionHealthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthData.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthData.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass ConnectionHealthData {\\n    constructor() {\\n        this.connectionStartTimestampMs = 0;\\n        this.consecutiveStatsWithNoPackets = 0;\\n        this.consecutiveStatsWithNoAudioPacketsSent = 0;\\n        this.lastPacketLossInboundTimestampMs = 0;\\n        this.lastGoodSignalTimestampMs = 0;\\n        this.lastWeakSignalTimestampMs = 0;\\n        this.lastNoSignalTimestampMs = 0;\\n        this.consecutiveMissedPongs = 0;\\n        this.packetsReceivedInLastMinute = [];\\n        this.fractionPacketsLostInboundInLastMinute = [];\\n        this.audioSpeakerDelayMs = 0;\\n        this.connectionStartTimestampMs = Date.now();\\n        this.lastGoodSignalTimestampMs = Date.now();\\n    }\\n    static isTimestampRecent(timestampMs, recentDurationMs) {\\n        return Date.now() < timestampMs + recentDurationMs;\\n    }\\n    setConnectionStartTime() {\\n        this.connectionStartTimestampMs = Date.now();\\n        this.lastGoodSignalTimestampMs = Date.now();\\n    }\\n    reset() {\\n        this.connectionStartTimestampMs = 0;\\n        this.consecutiveStatsWithNoPackets = 0;\\n        this.consecutiveStatsWithNoAudioPacketsSent = 0;\\n        this.lastPacketLossInboundTimestampMs = 0;\\n        this.lastGoodSignalTimestampMs = 0;\\n        this.lastWeakSignalTimestampMs = 0;\\n        this.lastNoSignalTimestampMs = 0;\\n        this.consecutiveMissedPongs = 0;\\n        this.packetsReceivedInLastMinute = [];\\n        this.fractionPacketsLostInboundInLastMinute = [];\\n        this.audioSpeakerDelayMs = 0;\\n        this.connectionStartTimestampMs = Date.now();\\n        this.lastGoodSignalTimestampMs = Date.now();\\n    }\\n    isConnectionStartRecent(recentDurationMs) {\\n        return ConnectionHealthData.isTimestampRecent(this.connectionStartTimestampMs, recentDurationMs);\\n    }\\n    isLastPacketLossRecent(recentDurationMs) {\\n        return ConnectionHealthData.isTimestampRecent(this.lastPacketLossInboundTimestampMs, recentDurationMs);\\n    }\\n    isGoodSignalRecent(recentDurationMs) {\\n        return ConnectionHealthData.isTimestampRecent(this.lastGoodSignalTimestampMs, recentDurationMs);\\n    }\\n    isWeakSignalRecent(recentDurationMs) {\\n        return ConnectionHealthData.isTimestampRecent(this.lastWeakSignalTimestampMs, recentDurationMs);\\n    }\\n    isNoSignalRecent(recentDurationMs) {\\n        return ConnectionHealthData.isTimestampRecent(this.lastNoSignalTimestampMs, recentDurationMs);\\n    }\\n    clone() {\\n        const cloned = new ConnectionHealthData();\\n        cloned.connectionStartTimestampMs = this.connectionStartTimestampMs;\\n        cloned.consecutiveStatsWithNoPackets = this.consecutiveStatsWithNoPackets;\\n        cloned.consecutiveStatsWithNoAudioPacketsSent = this.consecutiveStatsWithNoAudioPacketsSent;\\n        cloned.lastPacketLossInboundTimestampMs = this.lastPacketLossInboundTimestampMs;\\n        cloned.lastGoodSignalTimestampMs = this.lastGoodSignalTimestampMs;\\n        cloned.lastWeakSignalTimestampMs = this.lastWeakSignalTimestampMs;\\n        cloned.lastNoSignalTimestampMs = this.lastNoSignalTimestampMs;\\n        cloned.consecutiveMissedPongs = this.consecutiveMissedPongs;\\n        cloned.packetsReceivedInLastMinute = this.packetsReceivedInLastMinute.slice(0);\\n        cloned.fractionPacketsLostInboundInLastMinute = this.fractionPacketsLostInboundInLastMinute.slice(0);\\n        cloned.audioSpeakerDelayMs = this.audioSpeakerDelayMs;\\n        return cloned;\\n    }\\n    setConsecutiveMissedPongs(pongs) {\\n        this.consecutiveMissedPongs = pongs;\\n    }\\n    setConsecutiveStatsWithNoPackets(stats) {\\n        this.consecutiveStatsWithNoPackets = stats;\\n    }\\n    setConsecutiveStatsWithNoAudioPacketsSent(stats) {\\n        this.consecutiveStatsWithNoAudioPacketsSent = stats;\\n    }\\n    setLastPacketLossInboundTimestampMs(timeStamp) {\\n        this.lastPacketLossInboundTimestampMs = timeStamp;\\n    }\\n    setLastNoSignalTimestampMs(timeStamp) {\\n        this.lastNoSignalTimestampMs = timeStamp;\\n    }\\n    setLastWeakSignalTimestampMs(timeStamp) {\\n        this.lastWeakSignalTimestampMs = timeStamp;\\n    }\\n    setLastGoodSignalTimestampMs(timeStamp) {\\n        this.lastGoodSignalTimestampMs = timeStamp;\\n    }\\n    setAudioSpeakerDelayMs(delayMs) {\\n        this.audioSpeakerDelayMs = delayMs;\\n    }\\n}\\nexports[\\\"default\\\"] = ConnectionHealthData;\\n//# sourceMappingURL=ConnectionHealthData.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthData.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthPolicyConfiguration.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthPolicyConfiguration.js ***!\n  \\**************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass ConnectionHealthPolicyConfiguration {\\n    constructor() {\\n        this.minHealth = 0;\\n        this.maxHealth = 1;\\n        this.initialHealth = 1;\\n        this.connectionUnhealthyThreshold = 25;\\n        this.noSignalThresholdTimeMs = 10000;\\n        this.connectionWaitTimeMs = 10000;\\n        this.zeroBarsNoSignalTimeMs = 5000;\\n        this.oneBarWeakSignalTimeMs = 5000;\\n        this.twoBarsTimeMs = 5000;\\n        this.threeBarsTimeMs = 10000;\\n        this.fourBarsTimeMs = 20000;\\n        this.fiveBarsTimeMs = 60000;\\n        this.cooldownTimeMs = 60000;\\n        this.pastSamplesToConsider = 15;\\n        this.goodSignalTimeMs = 15000;\\n        this.fractionalLoss = 0.5;\\n        this.packetsExpected = 50;\\n        this.maximumTimesToWarn = 2;\\n        this.missedPongsLowerThreshold = 1;\\n        this.missedPongsUpperThreshold = 4;\\n        this.maximumAudioDelayMs = 60000;\\n        this.maximumAudioDelayDataPoints = 10;\\n        /**\\n         * The number of samples required to consider sending-audio to be unhealthy\\n         *\\n         * The default value is derived from the median for time taken for receiving an attendee presence message from the\\n         * server after joining. Attendee presence is only received when the client sends audio packets to the server, so\\n         * this metric is used as a proxy.\\n         */\\n        this.sendingAudioFailureSamplesToConsider = 2;\\n        /**\\n         * The purpose of this field is to add a wait time/delay to our evaluation of sending audio health\\n         * as the microphone may sometimes cause a delay in sending audio packets during the initial stages of a connection.\\n         */\\n        this.sendingAudioFailureInitialWaitTimeMs = 3000;\\n    }\\n}\\nexports[\\\"default\\\"] = ConnectionHealthPolicyConfiguration;\\n//# sourceMappingURL=ConnectionHealthPolicyConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthPolicyConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ReconnectionHealthPolicy.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ReconnectionHealthPolicy.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseConnectionHealthPolicy_1 = __webpack_require__(/*! ./BaseConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js\\\");\\nclass ReconnectionHealthPolicy extends BaseConnectionHealthPolicy_1.default {\\n    constructor(logger, configuration, data) {\\n        super(configuration, data, 'Reconnection Health');\\n        this.logger = logger;\\n        this.audioDelayPointsOverMaximum = 0;\\n        ReconnectionHealthPolicy.CONNECTION_UNHEALTHY_THRESHOLD =\\n            configuration.connectionUnhealthyThreshold;\\n        ReconnectionHealthPolicy.CONNECTION_WAIT_TIME_MS = configuration.connectionWaitTimeMs;\\n        ReconnectionHealthPolicy.MISSED_PONGS_THRESHOLD = configuration.missedPongsUpperThreshold;\\n        ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_MS = configuration.maximumAudioDelayMs;\\n        ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_DATA_POINTS =\\n            configuration.maximumAudioDelayDataPoints;\\n    }\\n    health() {\\n        const connectionStartedRecently = this.currentData.isConnectionStartRecent(ReconnectionHealthPolicy.CONNECTION_WAIT_TIME_MS);\\n        if (connectionStartedRecently) {\\n            return 1;\\n        }\\n        const noPacketsReceivedRecently = this.currentData.consecutiveStatsWithNoPackets >=\\n            ReconnectionHealthPolicy.CONNECTION_UNHEALTHY_THRESHOLD;\\n        const missedPongsRecently = this.currentData.consecutiveMissedPongs >= ReconnectionHealthPolicy.MISSED_PONGS_THRESHOLD;\\n        if (this.currentData.audioSpeakerDelayMs > ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_MS) {\\n            this.audioDelayPointsOverMaximum += 1;\\n        }\\n        else {\\n            this.audioDelayPointsOverMaximum = 0;\\n        }\\n        const hasBadAudioDelay = this.audioDelayPointsOverMaximum > ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_DATA_POINTS;\\n        if (hasBadAudioDelay) {\\n            this.audioDelayPointsOverMaximum = 0;\\n        }\\n        const needsReconnect = noPacketsReceivedRecently || missedPongsRecently || hasBadAudioDelay;\\n        if (needsReconnect) {\\n            this.logger.warn(`reconnection recommended due to: no packets received: ${noPacketsReceivedRecently}, missed pongs: ${missedPongsRecently}, bad audio delay: ${hasBadAudioDelay}`);\\n            return 0;\\n        }\\n        return 1;\\n    }\\n}\\nexports[\\\"default\\\"] = ReconnectionHealthPolicy;\\n//# sourceMappingURL=ReconnectionHealthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ReconnectionHealthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy.js\":\n/*!********************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy.js ***!\n  \\********************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseConnectionHealthPolicy_1 = __webpack_require__(/*! ./BaseConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js\\\");\\nclass SendingAudioFailureConnectionHealthPolicy extends BaseConnectionHealthPolicy_1.default {\\n    constructor(logger, configuration, data) {\\n        super(configuration, data, 'Sending Audio Health');\\n        this.logger = logger;\\n        this.sendingAudioFailureSamplesToConsider =\\n            configuration.sendingAudioFailureSamplesToConsider > 0\\n                ? configuration.sendingAudioFailureSamplesToConsider\\n                : 1;\\n        this.sendingAudioFailureInitialWaitTimeMs = configuration.sendingAudioFailureInitialWaitTimeMs;\\n        this.maximumTimesToWarn = configuration.maximumTimesToWarn;\\n        this.coolDownTimeMs = configuration.cooldownTimeMs;\\n        this.lastWarnTimestampMs = 0;\\n        this.warnCount = 0;\\n    }\\n    isSendingAudioUnhealthy() {\\n        const hasEnoughTimeElapsedToEvaluateStatus = !this.currentData.isConnectionStartRecent(this.sendingAudioFailureInitialWaitTimeMs);\\n        const areAudioPacketsNotBeingSent = this.currentData.consecutiveStatsWithNoAudioPacketsSent >=\\n            this.sendingAudioFailureSamplesToConsider;\\n        return hasEnoughTimeElapsedToEvaluateStatus && areAudioPacketsNotBeingSent;\\n    }\\n    health() {\\n        if (this.isSendingAudioUnhealthy()) {\\n            const didWarnRecently = Date.now() - this.lastWarnTimestampMs < this.coolDownTimeMs;\\n            if (this.currentHealth > this.minimumHealth() && !didWarnRecently) {\\n                this.logger.warn(`Sending Audio is unhealthy for ${this.sendingAudioFailureSamplesToConsider} seconds consecutively.`);\\n                this.warnCount++;\\n                if (this.warnCount > this.maximumTimesToWarn) {\\n                    this.logger.warn('SendingAudioFailure health policy maximum warnings breached. Falling back to reporting healthy.');\\n                    return this.maximumHealth();\\n                }\\n                this.lastWarnTimestampMs = Date.now();\\n                return this.minimumHealth();\\n            }\\n            else {\\n                return this.currentHealth;\\n            }\\n        }\\n        return this.maximumHealth();\\n    }\\n}\\nexports[\\\"default\\\"] = SendingAudioFailureConnectionHealthPolicy;\\n//# sourceMappingURL=SendingAudioFailureConnectionHealthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy.js\":\n/*!*********************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy.js ***!\n  \\*********************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseConnectionHealthPolicy_1 = __webpack_require__(/*! ./BaseConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js\\\");\\nclass UnusableAudioWarningConnectionHealthPolicy extends BaseConnectionHealthPolicy_1.default {\\n    constructor(configuration, data) {\\n        super(configuration, data, 'Unusable Audio Warning');\\n        this.coolDownTimeMs = configuration.cooldownTimeMs;\\n        this.pastSamplesToConsider = configuration.pastSamplesToConsider;\\n        this.fractionalLoss = configuration.fractionalLoss;\\n        this.packetsExpected = configuration.packetsExpected;\\n        this.maximumTimesToWarn = configuration.maximumTimesToWarn;\\n        this.lastWarnTimestampMs = 0;\\n        this.warnCount = 0;\\n    }\\n    calculateFractionalLoss() {\\n        if (this.currentData.packetsReceivedInLastMinute.length < this.pastSamplesToConsider) {\\n            return 0;\\n        }\\n        const samplesToConsider = this.pastSamplesToConsider;\\n        const totalPacketsExpected = samplesToConsider * this.packetsExpected;\\n        let totalPacketsReceived = 0;\\n        for (let i = 0; i < samplesToConsider; i++) {\\n            totalPacketsReceived += this.currentData.packetsReceivedInLastMinute[i];\\n        }\\n        return Math.min(Math.max(1 - totalPacketsReceived / totalPacketsExpected, 0), 1);\\n    }\\n    health() {\\n        const warnedRecently = Date.now() - this.lastWarnTimestampMs < this.coolDownTimeMs;\\n        if (warnedRecently) {\\n            return this.currentHealth;\\n        }\\n        const hasHadHighPacketLoss = this.calculateFractionalLoss() >= this.fractionalLoss;\\n        if (hasHadHighPacketLoss) {\\n            if (this.currentHealth !== 0) {\\n                this.lastWarnTimestampMs = Date.now();\\n                this.warnCount++;\\n                if (this.warnCount > this.maximumTimesToWarn) {\\n                    return 1;\\n                }\\n            }\\n            return 0;\\n        }\\n        return 1;\\n    }\\n}\\nexports[\\\"default\\\"] = UnusableAudioWarningConnectionHealthPolicy;\\n//# sourceMappingURL=UnusableAudioWarningConnectionHealthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/connectionmonitor/SignalingAndMetricsConnectionMonitor.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/connectionmonitor/SignalingAndMetricsConnectionMonitor.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nclass SignalingAndMetricsConnectionMonitor {\\n    constructor(audioVideoController, realtimeController, connectionHealthData, pingPong, statsCollector) {\\n        this.audioVideoController = audioVideoController;\\n        this.realtimeController = realtimeController;\\n        this.connectionHealthData = connectionHealthData;\\n        this.pingPong = pingPong;\\n        this.statsCollector = statsCollector;\\n        this.isActive = false;\\n        this.hasSeenValidPacketMetricsBefore = false;\\n        this.realtimeController.realtimeSubscribeToLocalSignalStrengthChange((signalStrength) => {\\n            if (this.isActive) {\\n                this.receiveSignalStrengthChange(signalStrength);\\n            }\\n        });\\n    }\\n    start() {\\n        this.isActive = true;\\n        this.pingPong.addObserver(this);\\n        this.pingPong.start();\\n        this.audioVideoController.addObserver(this);\\n    }\\n    stop() {\\n        this.isActive = false;\\n        this.pingPong.removeObserver(this);\\n        this.pingPong.stop();\\n        this.audioVideoController.removeObserver(this);\\n    }\\n    receiveSignalStrengthChange(signalStrength) {\\n        if (signalStrength === 0) {\\n            this.connectionHealthData.setLastNoSignalTimestampMs(Date.now());\\n        }\\n        else if (signalStrength <= 0.5) {\\n            this.connectionHealthData.setLastWeakSignalTimestampMs(Date.now());\\n        }\\n        else {\\n            this.connectionHealthData.setLastGoodSignalTimestampMs(Date.now());\\n        }\\n        this.updateConnectionHealth();\\n    }\\n    didReceivePong(_id, latencyMs, clockSkewMs) {\\n        this.connectionHealthData.setConsecutiveMissedPongs(0);\\n        this.statsCollector.logLatency('ping_pong', latencyMs);\\n        this.statsCollector.logLatency('ping_pong_clock_skew', clockSkewMs);\\n        this.updateConnectionHealth();\\n    }\\n    didMissPongs() {\\n        this.connectionHealthData.setConsecutiveMissedPongs(this.connectionHealthData.consecutiveMissedPongs + 1);\\n        this.updateConnectionHealth();\\n    }\\n    metricsDidReceive(clientMetricReport) {\\n        let packetsReceived = 0;\\n        let fractionPacketsLostInbound = 0;\\n        const metricReport = clientMetricReport.getObservableMetrics();\\n        const potentialPacketsReceived = metricReport.audioPacketsReceived;\\n        const potentialFractionPacketsLostInbound = metricReport.audioPacketsReceivedFractionLoss;\\n        const audioSpeakerDelayMs = metricReport.audioSpeakerDelayMs;\\n        // Firefox does not presently have aggregated bandwidth estimation\\n        if (typeof audioSpeakerDelayMs === 'number' && !isNaN(audioSpeakerDelayMs)) {\\n            this.connectionHealthData.setAudioSpeakerDelayMs(audioSpeakerDelayMs);\\n        }\\n        if (typeof potentialPacketsReceived === 'number' &&\\n            typeof potentialFractionPacketsLostInbound === 'number') {\\n            packetsReceived = potentialPacketsReceived;\\n            fractionPacketsLostInbound = potentialFractionPacketsLostInbound;\\n            if (packetsReceived < 0 || fractionPacketsLostInbound < 0) {\\n                // TODO: getting negative numbers on this metric after reconnect sometimes\\n                // For now, just skip the metric if it looks weird.\\n                return;\\n            }\\n        }\\n        else {\\n            return;\\n        }\\n        this.addToMinuteWindow(this.connectionHealthData.packetsReceivedInLastMinute, packetsReceived);\\n        this.addToMinuteWindow(this.connectionHealthData.fractionPacketsLostInboundInLastMinute, fractionPacketsLostInbound);\\n        if (packetsReceived > 0) {\\n            this.hasSeenValidPacketMetricsBefore = true;\\n            this.connectionHealthData.setConsecutiveStatsWithNoPackets(0);\\n        }\\n        else if (this.hasSeenValidPacketMetricsBefore) {\\n            this.connectionHealthData.setConsecutiveStatsWithNoPackets(this.connectionHealthData.consecutiveStatsWithNoPackets + 1);\\n        }\\n        if (packetsReceived === 0 || fractionPacketsLostInbound > 0) {\\n            this.connectionHealthData.setLastPacketLossInboundTimestampMs(Date.now());\\n        }\\n        if (typeof metricReport.audioPacketsSent === 'number') {\\n            this.updateAudioPacketsSentInConnectionHealth(metricReport.audioPacketsSent);\\n        }\\n        this.updateConnectionHealth();\\n    }\\n    updateAudioPacketsSentInConnectionHealth(audioPacketsSent) {\\n        if (audioPacketsSent > 0) {\\n            this.connectionHealthData.setConsecutiveStatsWithNoAudioPacketsSent(0);\\n        }\\n        else {\\n            this.connectionHealthData.setConsecutiveStatsWithNoAudioPacketsSent(this.connectionHealthData.consecutiveStatsWithNoAudioPacketsSent + 1);\\n        }\\n    }\\n    addToMinuteWindow(array, value) {\\n        array.unshift(value);\\n        if (array.length > 60) {\\n            array.pop();\\n        }\\n    }\\n    updateConnectionHealth() {\\n        this.audioVideoController.forEachObserver((observer) => {\\n            Types_1.Maybe.of(observer.connectionHealthDidChange).map(f => f.bind(observer)(this.connectionHealthData.clone()));\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SignalingAndMetricsConnectionMonitor;\\n//# sourceMappingURL=SignalingAndMetricsConnectionMonitor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/connectionmonitor/SignalingAndMetricsConnectionMonitor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar ContentShareConstants;\\n(function (ContentShareConstants) {\\n    ContentShareConstants[\\\"Modality\\\"] = \\\"#content\\\";\\n})(ContentShareConstants || (ContentShareConstants = {}));\\nexports[\\\"default\\\"] = ContentShareConstants;\\n//# sourceMappingURL=ContentShareConstants.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareMediaStreamBroker.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareMediaStreamBroker.js ***!\n  \\********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst DefaultDeviceController_1 = __webpack_require__(/*! ../devicecontroller/DefaultDeviceController */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js\\\");\\nclass ContentShareMediaStreamBroker {\\n    constructor(logger) {\\n        this.logger = logger;\\n    }\\n    get mediaStream() {\\n        return this._mediaStream;\\n    }\\n    set mediaStream(mediaStream) {\\n        this._mediaStream = mediaStream;\\n    }\\n    acquireAudioInputStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this._mediaStream.getAudioTracks().length === 0) {\\n                this.logger.info('No audio stream available. Synthesizing an audio stream.');\\n                return DefaultDeviceController_1.default.synthesizeAudioDevice(0);\\n            }\\n            return this._mediaStream;\\n        });\\n    }\\n    acquireVideoInputStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this._mediaStream;\\n        });\\n    }\\n    acquireDisplayInputStream(streamConstraints) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (streamConstraints &&\\n                streamConstraints.video &&\\n                // @ts-ignore\\n                streamConstraints.video.mandatory &&\\n                // @ts-ignore\\n                streamConstraints.video.mandatory.chromeMediaSource &&\\n                // @ts-ignore\\n                streamConstraints.video.mandatory.chromeMediaSourceId) {\\n                return navigator.mediaDevices.getUserMedia(streamConstraints);\\n            }\\n            // @ts-ignore https://github.com/microsoft/TypeScript/issues/31821\\n            return navigator.mediaDevices.getDisplayMedia(streamConstraints);\\n        });\\n    }\\n    acquireScreenCaptureDisplayInputStream(sourceId, frameRate) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.acquireDisplayInputStream(this.screenCaptureDisplayMediaConstraints(sourceId, frameRate));\\n        });\\n    }\\n    screenCaptureDisplayMediaConstraints(sourceId, frameRate) {\\n        return {\\n            audio: !sourceId && new DefaultBrowserBehavior_1.default().getDisplayMediaAudioCaptureSupport()\\n                ? true\\n                : false,\\n            video: Object.assign(Object.assign({}, (!sourceId && {\\n                frameRate: {\\n                    max: frameRate ? frameRate : ContentShareMediaStreamBroker.defaultFrameRate,\\n                },\\n            })), (sourceId && {\\n                mandatory: {\\n                    chromeMediaSource: 'desktop',\\n                    chromeMediaSourceId: sourceId,\\n                    maxFrameRate: frameRate ? frameRate : ContentShareMediaStreamBroker.defaultFrameRate,\\n                },\\n            })),\\n        };\\n    }\\n    toggleMediaStream(enable) {\\n        let changed = false;\\n        if (this.mediaStream) {\\n            for (let i = 0; i < this.mediaStream.getTracks().length; i++) {\\n                if (this.mediaStream.getTracks()[i].enabled !== enable) {\\n                    this.mediaStream.getTracks()[i].enabled = enable;\\n                    changed = true;\\n                }\\n            }\\n        }\\n        return changed;\\n    }\\n    cleanup() {\\n        if (this.mediaStream) {\\n            for (let i = 0; i < this.mediaStream.getTracks().length; i++) {\\n                const track = this.mediaStream.getTracks()[i];\\n                track.stop();\\n            }\\n        }\\n        this.mediaStream = null;\\n    }\\n    muteLocalAudioInputStream() {\\n        throw new Error('unsupported');\\n    }\\n    unmuteLocalAudioInputStream() {\\n        throw new Error('unsupported');\\n    }\\n    addMediaStreamBrokerObserver(_observer) { }\\n    removeMediaStreamBrokerObserver(_observer) { }\\n}\\nexports[\\\"default\\\"] = ContentShareMediaStreamBroker;\\nContentShareMediaStreamBroker.defaultFrameRate = 15;\\n//# sourceMappingURL=ContentShareMediaStreamBroker.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareMediaStreamBroker.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/DefaultContentShareController.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/DefaultContentShareController.js ***!\n  \\********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionConfiguration_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js\\\");\\nconst MeetingSessionCredentials_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js\\\");\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst DefaultSimulcastUplinkPolicyForContentShare_1 = __webpack_require__(/*! ../videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare.js\\\");\\nconst ContentShareConstants_1 = __webpack_require__(/*! ./ContentShareConstants */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\\\");\\nclass DefaultContentShareController {\\n    constructor(mediaStreamBroker, contentAudioVideo, attendeeAudioVideo) {\\n        this.mediaStreamBroker = mediaStreamBroker;\\n        this.contentAudioVideo = contentAudioVideo;\\n        this.attendeeAudioVideo = attendeeAudioVideo;\\n        this.observerQueue = new Set();\\n        this.destroyed = false;\\n        this.contentAudioVideo.addObserver(this);\\n        this.setupContentShareEvents();\\n    }\\n    static createContentShareMeetingSessionConfigure(configuration) {\\n        const contentShareConfiguration = new MeetingSessionConfiguration_1.default();\\n        contentShareConfiguration.meetingId = configuration.meetingId;\\n        contentShareConfiguration.externalMeetingId = configuration.externalMeetingId;\\n        contentShareConfiguration.urls = configuration.urls;\\n        contentShareConfiguration.credentials = new MeetingSessionCredentials_1.default();\\n        contentShareConfiguration.credentials.attendeeId =\\n            configuration.credentials.attendeeId + ContentShareConstants_1.default.Modality;\\n        contentShareConfiguration.credentials.externalUserId = configuration.credentials.externalUserId;\\n        contentShareConfiguration.credentials.joinToken =\\n            configuration.credentials.joinToken + ContentShareConstants_1.default.Modality;\\n        return contentShareConfiguration;\\n    }\\n    setContentAudioProfile(audioProfile) {\\n        this.contentAudioVideo.setAudioProfile(audioProfile);\\n    }\\n    enableSimulcastForContentShare(enable, encodingParams) {\\n        if (enable) {\\n            this.contentAudioVideo.configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = true;\\n            this.contentAudioVideo.configuration.videoUplinkBandwidthPolicy = new DefaultSimulcastUplinkPolicyForContentShare_1.default(this.contentAudioVideo.logger, encodingParams);\\n        }\\n        else {\\n            this.contentAudioVideo.configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = false;\\n            this.contentAudioVideo.configuration.videoUplinkBandwidthPolicy = undefined;\\n        }\\n    }\\n    startContentShare(stream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!stream) {\\n                return;\\n            }\\n            this.mediaStreamBroker.mediaStream = stream;\\n            for (let i = 0; i < this.mediaStreamBroker.mediaStream.getTracks().length; i++) {\\n                this.mediaStreamBroker.mediaStream.getTracks()[i].addEventListener('ended', () => {\\n                    this.stopContentShare();\\n                });\\n            }\\n            this.contentAudioVideo.start();\\n        });\\n    }\\n    startContentShareFromScreenCapture(sourceId, frameRate) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const mediaStream = yield this.mediaStreamBroker.acquireScreenCaptureDisplayInputStream(sourceId, frameRate);\\n            yield this.startContentShare(mediaStream);\\n            return mediaStream;\\n        });\\n    }\\n    pauseContentShare() {\\n        if (this.mediaStreamBroker.toggleMediaStream(false)) {\\n            this.forEachContentShareObserver(observer => {\\n                Types_1.Maybe.of(observer.contentShareDidPause).map(f => f.call(observer));\\n            });\\n        }\\n    }\\n    unpauseContentShare() {\\n        if (this.mediaStreamBroker.toggleMediaStream(true)) {\\n            this.forEachContentShareObserver(observer => {\\n                Types_1.Maybe.of(observer.contentShareDidUnpause).map(f => f.call(observer));\\n            });\\n        }\\n    }\\n    setContentShareVideoCodecPreferences(preferences) {\\n        this.contentAudioVideo.setVideoCodecSendPreferences(preferences);\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // Idempotency.\\n            /* istanbul ignore if */\\n            if (!this.contentAudioVideo) {\\n                return;\\n            }\\n            this.destroyed = true;\\n            this.contentAudioVideo.removeObserver(this);\\n            this.stopContentShare();\\n            this.observerQueue.clear();\\n            this.contentAudioVideo = undefined;\\n            this.attendeeAudioVideo = undefined;\\n            this.mediaStreamBroker = undefined;\\n        });\\n    }\\n    stopContentShare() {\\n        this.contentAudioVideo.stop();\\n        this.mediaStreamBroker.cleanup();\\n    }\\n    addContentShareObserver(observer) {\\n        this.observerQueue.add(observer);\\n    }\\n    removeContentShareObserver(observer) {\\n        this.observerQueue.delete(observer);\\n    }\\n    forEachContentShareObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                if (this.observerQueue.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    audioVideoDidStart() {\\n        if (this.mediaStreamBroker.mediaStream.getVideoTracks().length > 0) {\\n            this.contentAudioVideo.videoTileController.startLocalVideoTile();\\n        }\\n    }\\n    audioVideoDidStop(_sessionStatus) {\\n        // If the content attendee got dropped or could not connect, stopContentShare will not be called\\n        // so make sure to clean up the media stream.\\n        this.mediaStreamBroker.cleanup();\\n        if (this.contentShareTile) {\\n            this.attendeeAudioVideo.videoTileController.removeVideoTile(this.contentShareTile.id());\\n            this.contentShareTile = null;\\n        }\\n        this.forEachContentShareObserver(observer => {\\n            Types_1.Maybe.of(observer.contentShareDidStop).map(f => f.call(observer));\\n        });\\n    }\\n    setupContentShareEvents() {\\n        // We use realtimeSubscribeToAttendeeIdPresence instead of audioVideoDidStart because audioVideoDidStart fires\\n        // before the capacity check in Tincan while when realtimeSubscribeToAttendeeIdPresence fires, we know the\\n        // content attendee has been able to pass the capacity check and join the call so we can start the local\\n        // content share video\\n        this.attendeeAudioVideo.realtimeController.realtimeSubscribeToAttendeeIdPresence((attendeeId, present, _externalUserId, _dropped) => {\\n            const isContentAttendee = new DefaultModality_1.default(attendeeId).hasModality(DefaultModality_1.default.MODALITY_CONTENT);\\n            const isSelfAttendee = new DefaultModality_1.default(attendeeId).base() ===\\n                this.attendeeAudioVideo.configuration.credentials.attendeeId;\\n            if (!isContentAttendee || !isSelfAttendee || !present || this.contentShareTile) {\\n                return;\\n            }\\n            const stream = this.mediaStreamBroker.mediaStream;\\n            if (stream === null || stream === void 0 ? void 0 : stream.getVideoTracks().length) {\\n                this.contentShareTile = this.attendeeAudioVideo.videoTileController.addVideoTile();\\n                const track = stream.getVideoTracks()[0];\\n                let width, height;\\n                if (track.getSettings) {\\n                    const cap = track.getSettings();\\n                    width = cap.width;\\n                    height = cap.height;\\n                }\\n                else {\\n                    const cap = track.getCapabilities();\\n                    width = cap.width;\\n                    height = cap.height;\\n                }\\n                this.contentShareTile.bindVideoStream(this.contentAudioVideo.configuration.credentials.attendeeId, false, stream, width, height, null, this.contentAudioVideo.configuration.credentials.externalUserId);\\n            }\\n            this.forEachContentShareObserver(observer => {\\n                Types_1.Maybe.of(observer.contentShareDidStart).map(f => f.call(observer));\\n            });\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultContentShareController;\\n//# sourceMappingURL=DefaultContentShareController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/DefaultContentShareController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass CSPMonitor {\\n    /* istanbul ignore next */\\n    static register() {\\n        if (!('document' in __webpack_require__.g) || !document.addEventListener) {\\n            return;\\n        }\\n        if (CSPMonitor.shouldRegisterCSPMonitor) {\\n            if (!CSPMonitor.added) {\\n                document.addEventListener('securitypolicyviolation', CSPMonitor.listener);\\n                CSPMonitor.added = true;\\n            }\\n        }\\n    }\\n    /* istanbul ignore next */\\n    static unregister() {\\n        if (!('document' in __webpack_require__.g) || !document.removeEventListener) {\\n            return;\\n        }\\n        document.removeEventListener('securitypolicyviolation', CSPMonitor.listener);\\n        CSPMonitor.loggers = new Set();\\n        CSPMonitor.added = false;\\n    }\\n    static disable() {\\n        CSPMonitor.shouldRegisterCSPMonitor = false;\\n        CSPMonitor.unregister();\\n    }\\n    static addLogger(logger) {\\n        if (logger) {\\n            CSPMonitor.loggers.add(logger);\\n        }\\n    }\\n    static removeLogger(logger) {\\n        if (logger) {\\n            CSPMonitor.loggers.delete(logger);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = CSPMonitor;\\nCSPMonitor.loggers = new Set();\\nCSPMonitor.shouldRegisterCSPMonitor = true;\\nCSPMonitor.added = false;\\n/* istanbul ignore next */\\nCSPMonitor.listener = (event) => {\\n    const message = 'Security Policy Violation\\\\n' +\\n        `Blocked URI: ${event.blockedURI}\\\\n` +\\n        `Violated Directive: ${event.violatedDirective}\\\\n` +\\n        `Original Policy: ${event.originalPolicy}\\\\n` +\\n        `Document URI: ${event.documentURI}\\\\n` +\\n        `Source File: ${event.sourceFile}\\\\n` +\\n        `Line No.: ${event.lineNumber}\\\\n`;\\n    for (const logger of CSPMonitor.loggers) {\\n        logger.error(message);\\n    }\\n    if (CSPMonitor.loggers.size === 0) {\\n        console.error(message);\\n    }\\n};\\n//# sourceMappingURL=CSPMonitor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/datamessage/DataMessage.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/datamessage/DataMessage.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/* eslint @typescript-eslint/no-explicit-any: 0 */\\nclass DataMessage {\\n    constructor(timestampMs, topic, data, senderAttendeeId, senderExternalUserId, throttled) {\\n        this.timestampMs = timestampMs;\\n        this.topic = topic;\\n        this.data = data;\\n        this.senderAttendeeId = senderAttendeeId;\\n        this.senderExternalUserId = senderExternalUserId;\\n        this.throttled = !!throttled;\\n    }\\n    /**\\n     * Helper conversion methods to convert {@link Uint8Array} data to string\\n     */\\n    text() {\\n        return new TextDecoder().decode(this.data);\\n    }\\n    /**\\n     * Helper conversion methods to convert {@link Uint8Array} data to JSON\\n     */\\n    json() {\\n        return JSON.parse(new TextDecoder().decode(this.data));\\n    }\\n}\\nexports[\\\"default\\\"] = DataMessage;\\n//# sourceMappingURL=DataMessage.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/datamessage/DataMessage.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isDestroyable = void 0;\\n/**\\n * Type guard for `Destroyable`.\\n *\\n * @param x A value that might implement the `Destroyable` interface.\\n * @returns Whether the value implements `Destroyable`.\\n */\\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\\nfunction isDestroyable(x) {\\n    return x && 'destroy' in x;\\n}\\nexports.isDestroyable = isDestroyable;\\n//# sourceMappingURL=Destroyable.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/AudioTransformDevice.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/AudioTransformDevice.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isAudioTransformDevice = void 0;\\n/**\\n * `isAudioTransformDevice` is a type guard for {@link AudioTransformDevice}.\\n *\\n * @param device the value to check.\\n */\\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types\\nfunction isAudioTransformDevice(device) {\\n    return (!!device &&\\n        typeof device === 'object' &&\\n        'mute' in device &&\\n        'stop' in device &&\\n        'intrinsicDevice' in device);\\n}\\nexports.isAudioTransformDevice = isAudioTransformDevice;\\n//# sourceMappingURL=AudioTransformDevice.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/AudioTransformDevice.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js ***!\n  \\********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst DefaultMediaDeviceFactory_1 = __webpack_require__(/*! ../mediadevicefactory/DefaultMediaDeviceFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/DefaultMediaDeviceFactory.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst PromiseQueue_1 = __webpack_require__(/*! ../utils/PromiseQueue */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/PromiseQueue.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst DefaultVideoTile_1 = __webpack_require__(/*! ../videotile/DefaultVideoTile */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js\\\");\\nconst AudioTransformDevice_1 = __webpack_require__(/*! ./AudioTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/AudioTransformDevice.js\\\");\\nconst DeviceSelection_1 = __webpack_require__(/*! ./DeviceSelection */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DeviceSelection.js\\\");\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nconst NotFoundError_1 = __webpack_require__(/*! ./NotFoundError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotFoundError.js\\\");\\nconst NotReadableError_1 = __webpack_require__(/*! ./NotReadableError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotReadableError.js\\\");\\nconst OverconstrainedError_1 = __webpack_require__(/*! ./OverconstrainedError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/OverconstrainedError.js\\\");\\nconst PermissionDeniedError_1 = __webpack_require__(/*! ./PermissionDeniedError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js\\\");\\nconst TypeError_1 = __webpack_require__(/*! ./TypeError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/TypeError.js\\\");\\nconst VideoQualitySettings_1 = __webpack_require__(/*! ./VideoQualitySettings */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoQualitySettings.js\\\");\\nconst VideoTransformDevice_1 = __webpack_require__(/*! ./VideoTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js\\\");\\nclass DefaultDeviceController {\\n    constructor(logger, options, browserBehavior = new DefaultBrowserBehavior_1.default(), eventController) {\\n        this.logger = logger;\\n        this.browserBehavior = browserBehavior;\\n        this.eventController = eventController;\\n        this.deviceInfoCache = null;\\n        this.activeDevices = { audio: null, video: null };\\n        // `chosenVideoTransformDevice` is tracked and owned by device controller.\\n        // It is saved when `chooseVideoInputDevice` is called with VideoTransformDevice object.\\n        this.chosenVideoTransformDevice = null;\\n        this.audioOutputDeviceId = undefined;\\n        this.deviceChangeObservers = new Set();\\n        this.mediaStreamBrokerObservers = new Set();\\n        this.deviceLabelTrigger = () => {\\n            return navigator.mediaDevices.getUserMedia({ audio: true, video: true });\\n        };\\n        this.audioInputDestinationNode = null;\\n        this.audioInputSourceNode = null;\\n        this.videoInputQualitySettings = null;\\n        this.useWebAudio = false;\\n        this.useMediaConstraintsFallback = true;\\n        this.audioInputTaskQueue = new PromiseQueue_1.default();\\n        this.videoInputTaskQueue = new PromiseQueue_1.default();\\n        this.muted = false;\\n        // This handles the dispatch of `mute` and `unmute` events from audio tracks.\\n        // There's a bit of a semantic mismatch here if input streams allow individual component tracks to be muted,\\n        // but addressing that gap is not feasible in our stream-oriented world.\\n        this.mediaStreamMuteObserver = (id, muted) => {\\n            for (const observer of this.deviceChangeObservers) {\\n                AsyncScheduler_1.default.nextTick(() => {\\n                    /* istanbul ignore else */\\n                    if (this.deviceChangeObservers.has(observer) && observer.audioInputMuteStateChanged) {\\n                        observer.audioInputMuteStateChanged(id, muted);\\n                    }\\n                });\\n            }\\n        };\\n        this.alreadyHandlingDeviceChange = false;\\n        const { enableWebAudio = false, useMediaConstraintsFallback = true } = options || {};\\n        this.useWebAudio = enableWebAudio;\\n        this.useMediaConstraintsFallback = useMediaConstraintsFallback;\\n        this.videoInputQualitySettings = new VideoQualitySettings_1.default(DefaultDeviceController.defaultVideoWidth, DefaultDeviceController.defaultVideoHeight, DefaultDeviceController.defaultVideoFrameRate);\\n        const dimension = this.browserBehavior.requiresResolutionAlignment(this.videoInputQualitySettings.videoWidth, this.videoInputQualitySettings.videoHeight);\\n        this.videoInputQualitySettings.videoWidth = dimension[0];\\n        this.videoInputQualitySettings.videoHeight = dimension[1];\\n        this.logger.info(`DefaultDeviceController video dimension ${this.videoInputQualitySettings.videoWidth} x ${this.videoInputQualitySettings.videoHeight}`);\\n        try {\\n            this.mediaDeviceWrapper = new DefaultMediaDeviceFactory_1.default().create();\\n            const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();\\n            this.logger.info(`Supported Constraints in this browser ${JSON.stringify(supportedConstraints)}`);\\n        }\\n        catch (error) {\\n            logger.error(error.message);\\n        }\\n    }\\n    isWatchingForDeviceChanges() {\\n        return !!this.onDeviceChangeCallback;\\n    }\\n    ensureWatchingDeviceChanges() {\\n        var _a;\\n        if (this.isWatchingForDeviceChanges()) {\\n            return;\\n        }\\n        this.logger.info('Starting devicechange listener.');\\n        this.onDeviceChangeCallback = () => {\\n            this.logger.info('Device change event callback is triggered');\\n            this.handleDeviceChange();\\n        };\\n        (_a = this.mediaDeviceWrapper) === null || _a === void 0 ? void 0 : _a.addEventListener('devicechange', this.onDeviceChangeCallback);\\n    }\\n    /**\\n     * Unsubscribe from the `devicechange` event, which allows the device controller to\\n     * update its device cache.\\n     */\\n    stopWatchingDeviceChanges() {\\n        var _a;\\n        if (!this.isWatchingForDeviceChanges()) {\\n            return;\\n        }\\n        this.logger.info('Stopping devicechange listener.');\\n        (_a = this.mediaDeviceWrapper) === null || _a === void 0 ? void 0 : _a.removeEventListener('devicechange', this.onDeviceChangeCallback);\\n        this.onDeviceChangeCallback = undefined;\\n    }\\n    shouldObserveDeviceChanges() {\\n        if (this.deviceChangeObservers.size) {\\n            return true;\\n        }\\n        const hasActiveDevices = (this.activeDevices['audio'] && this.activeDevices['audio'].constraints !== null) ||\\n            (this.activeDevices['video'] && this.activeDevices['video'].constraints !== null) ||\\n            !!this.audioOutputDeviceId;\\n        return hasActiveDevices;\\n    }\\n    watchForDeviceChangesIfNecessary() {\\n        if (this.shouldObserveDeviceChanges()) {\\n            this.ensureWatchingDeviceChanges();\\n        }\\n        else {\\n            this.stopWatchingDeviceChanges();\\n        }\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // Remove device change callbacks.\\n            this.stopWatchingDeviceChanges();\\n            // Deselect any audio input devices and throw away the streams.\\n            // Discard the current video device, if there is one.\\n            // Discard any audio or video transforms.\\n            yield this.stopAudioInput();\\n            yield this.stopVideoInput();\\n        });\\n    }\\n    listAudioInputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.listDevicesOfKind('audioinput', forceUpdate);\\n            this.trace('listAudioInputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    listVideoInputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.listDevicesOfKind('videoinput', forceUpdate);\\n            this.trace('listVideoInputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    listAudioOutputDevices(forceUpdate = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const result = yield this.listDevicesOfKind('audiooutput', forceUpdate);\\n            this.trace('listAudioOutputDevices', forceUpdate, result);\\n            return result;\\n        });\\n    }\\n    pushAudioMeetingStateForPermissions(audioStream) {\\n        var _a;\\n        (_a = this.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent(audioStream === undefined ? 'audioInputUnselected' : 'audioInputSelected');\\n    }\\n    pushVideoMeetingStateForPermissions(videoStream) {\\n        var _a;\\n        (_a = this.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent(videoStream === undefined ? 'videoInputUnselected' : 'videoInputSelected');\\n    }\\n    startAudioInput(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return yield this.audioInputTaskQueue.add(() => this.startAudioInputTask(device));\\n        });\\n    }\\n    startAudioInputTask(device) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (device === undefined) {\\n                this.logger.error('Audio input device cannot be undefined');\\n                return undefined;\\n            }\\n            try {\\n                if (AudioTransformDevice_1.isAudioTransformDevice(device)) {\\n                    // N.B., do not JSON.stringify here — for some kinds of devices this\\n                    // will cause a cyclic object reference error.\\n                    this.logger.info(`Choosing transform input device ${device}`);\\n                    yield this.chooseAudioTransformInputDevice(device);\\n                }\\n                else {\\n                    this.logger.info(`Choosing intrinsic audio input device ${device}`);\\n                    this.removeTransform();\\n                    yield this.chooseInputIntrinsicDevice('audio', device);\\n                }\\n                this.trace('startAudioInputDevice', device, `success`);\\n                // For web audio, the audio destination stream stays the same so audio input did not change\\n                if (this.useWebAudio) {\\n                    this.attachAudioInputStreamToAudioContext(this.activeDevices['audio'].stream);\\n                    this.pushAudioMeetingStateForPermissions(this.getMediaStreamDestinationNode().stream);\\n                    yield ((_a = this.transform) === null || _a === void 0 ? void 0 : _a.device.mute(this.muted));\\n                    return this.getMediaStreamDestinationNode().stream;\\n                }\\n                else {\\n                    this.publishAudioInputDidChangeEvent(this.activeDevices['audio'].stream);\\n                    return this.activeDevices['audio'].stream;\\n                }\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n        });\\n    }\\n    stopAudioInput() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.audioInputTaskQueue.add(() => this.stopAudioInputTask());\\n        });\\n    }\\n    stopAudioInputTask() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                if (this.useWebAudio) {\\n                    this.releaseAudioTransformStream();\\n                    return;\\n                }\\n                this.stopTracksAndRemoveCallbacks('audio');\\n            }\\n            finally {\\n                this.watchForDeviceChangesIfNecessary();\\n                this.publishAudioInputDidChangeEvent(undefined);\\n            }\\n        });\\n    }\\n    chooseAudioTransformInputDevice(device) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (((_a = this.transform) === null || _a === void 0 ? void 0 : _a.device) === device) {\\n                return;\\n            }\\n            if (!this.useWebAudio) {\\n                throw new Error('Cannot apply transform device without enabling Web Audio.');\\n            }\\n            const context = DefaultDeviceController.getAudioContext();\\n            if (context instanceof OfflineAudioContext) {\\n                // Nothing to do.\\n            }\\n            else {\\n                switch (context.state) {\\n                    case 'running':\\n                        // Nothing to do.\\n                        break;\\n                    case 'closed':\\n                        // A closed context cannot be used for creating nodes, so the correct\\n                        // thing to do is to raise a descriptive error sooner.\\n                        throw new Error('Cannot choose a transform device with a closed audio context.');\\n                    case 'suspended':\\n                        // A context might be suspended after page load. We try to resume it\\n                        // here, otherwise audio won't work.\\n                        yield context.resume();\\n                }\\n            }\\n            let nodes;\\n            try {\\n                nodes = yield device.createAudioNode(context);\\n            }\\n            catch (e) {\\n                this.logger.error(`Unable to create transform device node: ${e}.`);\\n                throw e;\\n            }\\n            // Pick the plain ol' inner device as the source. It will be\\n            // connected to the node.\\n            const inner = yield device.intrinsicDevice();\\n            yield this.chooseInputIntrinsicDevice('audio', inner);\\n            this.logger.debug(`Got inner stream: ${inner}.`);\\n            // Otherwise, continue: hook up the new node.\\n            this.setTransform(device, nodes);\\n        });\\n    }\\n    chooseVideoTransformInputDevice(device) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (device === this.chosenVideoTransformDevice) {\\n                this.logger.info('Reselecting same VideoTransformDevice');\\n                return;\\n            }\\n            const prevVideoTransformDevice = this.chosenVideoTransformDevice;\\n            if (prevVideoTransformDevice) {\\n                this.logger.info('Switched from previous VideoTransformDevice');\\n            }\\n            const wasUsingTransformDevice = !!prevVideoTransformDevice;\\n            const inner = yield device.intrinsicDevice();\\n            const canReuseMediaStream = this.isMediaStreamReusableByDeviceId((_a = this.activeDevices['video']) === null || _a === void 0 ? void 0 : _a.stream, inner);\\n            if (!canReuseMediaStream) {\\n                this.logger.info('video transform device needs new intrinsic device');\\n                if (wasUsingTransformDevice) {\\n                    // detach input media stream - turn off the camera or leave it be if inner is media stream\\n                    prevVideoTransformDevice.onOutputStreamDisconnect();\\n                }\\n                this.chosenVideoTransformDevice = device;\\n                // VideoTransformDevice owns input MediaStream\\n                this.activeDevices['video'] = null;\\n                yield this.chooseInputIntrinsicDevice('video', inner);\\n                this.logger.info('apply processors to transform');\\n                yield this.chosenVideoTransformDevice.transformStream(this.activeDevices['video'].stream);\\n                return;\\n            }\\n            // When saved stream is reusable, only switch the saved stream to filtered stream for sending\\n            // but keep the saved stream intact.\\n            // Note: to keep the chosen media stream intact, it is important to avoid a full stop\\n            // because videoTileUpdate can be called when video is stopped and user might call `bindVideoElement` to disconnect the element.\\n            // In current implementation, disconnecting the element will `hard` stop the media stream.\\n            // Update device and stream\\n            this.chosenVideoTransformDevice = device;\\n            this.logger.info('video transform device uses previous stream');\\n            // `transformStream` will start processing.\\n            this.logger.info('apply processors to transform');\\n            yield device.transformStream(this.activeDevices['video'].stream);\\n        });\\n    }\\n    startVideoInput(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return yield this.videoInputTaskQueue.add(() => this.startVideoInputTask(device));\\n        });\\n    }\\n    startVideoInputTask(device) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!device) {\\n                this.logger.error('Invalid video input device');\\n                return undefined;\\n            }\\n            try {\\n                if (VideoTransformDevice_1.isVideoTransformDevice(device)) {\\n                    this.logger.info(`Choosing video transform device ${device}`);\\n                    yield this.chooseVideoTransformInputDevice(device);\\n                    this.publishVideoInputDidChangeEvent(this.chosenVideoTransformDevice.outputMediaStream);\\n                    return this.chosenVideoTransformDevice.outputMediaStream;\\n                }\\n                // handle direct switching from VideoTransformDevice to Device\\n                // From WebRTC point, it is a device switching.\\n                if (this.chosenVideoInputIsTransformDevice()) {\\n                    // disconnect old stream\\n                    this.chosenVideoTransformDevice.onOutputStreamDisconnect();\\n                    this.chosenVideoTransformDevice = null;\\n                }\\n                yield this.chooseInputIntrinsicDevice('video', device);\\n                this.trace('startVideoInputDevice', device);\\n                this.publishVideoInputDidChangeEvent(this.activeDevices['video'].stream);\\n                return this.activeDevices['video'].stream;\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n        });\\n    }\\n    stopVideoInput() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.videoInputTaskQueue.add(() => this.stopVideoInputTask());\\n        });\\n    }\\n    stopVideoInputTask() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                if (this.chosenVideoInputIsTransformDevice()) {\\n                    this.releaseVideoTransformStream();\\n                    return;\\n                }\\n                this.stopTracksAndRemoveCallbacks('video');\\n            }\\n            finally {\\n                this.watchForDeviceChangesIfNecessary();\\n                this.publishVideoInputDidChangeEvent(undefined);\\n            }\\n        });\\n    }\\n    chooseAudioOutput(deviceId) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.audioOutputDeviceId = deviceId;\\n            this.watchForDeviceChangesIfNecessary();\\n            const deviceInfo = this.deviceInfoFromDeviceId('audiooutput', this.audioOutputDeviceId);\\n            this.publishAudioOutputDidChangeEvent(deviceInfo);\\n            this.trace('chooseAudioOutput', deviceId, null);\\n            return;\\n        });\\n    }\\n    addDeviceChangeObserver(observer) {\\n        this.logger.info('adding device change observer');\\n        this.deviceChangeObservers.add(observer);\\n        this.watchForDeviceChangesIfNecessary();\\n        this.trace('addDeviceChangeObserver');\\n    }\\n    removeDeviceChangeObserver(observer) {\\n        this.logger.info('removing device change observer');\\n        this.deviceChangeObservers.delete(observer);\\n        this.watchForDeviceChangesIfNecessary();\\n        this.trace('removeDeviceChangeObserver');\\n    }\\n    createAnalyserNodeForAudioInput() {\\n        var _a, _b;\\n        if (!this.activeDevices['audio']) {\\n            return null;\\n        }\\n        // If there is a WebAudio node in the graph, we use that as the source instead of the stream.\\n        const node = (_b = (_a = this.transform) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.end;\\n        if (node) {\\n            const analyser = node.context.createAnalyser();\\n            analyser.removeOriginalInputs = () => {\\n                try {\\n                    node.disconnect(analyser);\\n                }\\n                catch (e) {\\n                    // This can fail in some unusual cases, but this is best-effort.\\n                }\\n            };\\n            node.connect(analyser);\\n            return analyser;\\n        }\\n        return this.createAnalyserNodeForRawAudioInput();\\n    }\\n    //\\n    // N.B., this bypasses any applied transform node.\\n    //\\n    createAnalyserNodeForRawAudioInput() {\\n        if (!this.activeDevices['audio']) {\\n            return null;\\n        }\\n        return this.createAnalyserNodeForStream(this.activeDevices['audio'].stream);\\n    }\\n    createAnalyserNodeForStream(stream) {\\n        const audioContext = DefaultDeviceController.getAudioContext();\\n        const analyser = audioContext.createAnalyser();\\n        const source = audioContext.createMediaStreamSource(stream);\\n        source.connect(analyser);\\n        this.trace('createAnalyserNodeForAudioInput');\\n        analyser.removeOriginalInputs = () => {\\n            try {\\n                source.disconnect(analyser);\\n            }\\n            catch (e) {\\n                // This can fail in some unusual cases, but this is best-effort.\\n            }\\n        };\\n        return analyser;\\n    }\\n    startVideoPreviewForVideoInput(element) {\\n        if (!this.activeDevices['video']) {\\n            this.logger.warn('cannot bind video preview since video input device has not been chosen');\\n            this.trace('startVideoPreviewForVideoInput', element.id);\\n            return;\\n        }\\n        DefaultVideoTile_1.default.connectVideoStreamToVideoElement(this.chosenVideoTransformDevice\\n            ? this.chosenVideoTransformDevice.outputMediaStream\\n            : this.activeDevices['video'].stream, element, true);\\n        this.trace('startVideoPreviewForVideoInput', element.id);\\n    }\\n    stopVideoPreviewForVideoInput(element) {\\n        DefaultVideoTile_1.default.disconnectVideoStreamFromVideoElement(element, false);\\n        this.trace('stopVideoPreviewForVideoInput', element.id);\\n    }\\n    setDeviceLabelTrigger(trigger) {\\n        // Discard the cache if it was populated with unlabeled devices.\\n        if (this.deviceInfoCache) {\\n            for (const device of this.deviceInfoCache) {\\n                if (!device.label) {\\n                    this.deviceInfoCache = null;\\n                    break;\\n                }\\n            }\\n        }\\n        this.deviceLabelTrigger = trigger;\\n        this.trace('setDeviceLabelTrigger');\\n    }\\n    mixIntoAudioInput(stream) {\\n        let node = null;\\n        if (this.useWebAudio) {\\n            node = DefaultDeviceController.getAudioContext().createMediaStreamSource(stream);\\n            node.connect(this.getMediaStreamOutputNode());\\n        }\\n        else {\\n            this.logger.warn('WebAudio is not enabled, mixIntoAudioInput will not work');\\n        }\\n        this.trace('mixIntoAudioInput', stream.id);\\n        return node;\\n    }\\n    chooseVideoInputQuality(width, height, frameRate) {\\n        const dimension = this.browserBehavior.requiresResolutionAlignment(width, height);\\n        this.videoInputQualitySettings = new VideoQualitySettings_1.default(dimension[0], dimension[1], frameRate);\\n    }\\n    getVideoInputQualitySettings() {\\n        return this.videoInputQualitySettings;\\n    }\\n    acquireAudioInputStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.activeDevices['audio']) {\\n                this.logger.info(`No audio device chosen, creating empty audio device`);\\n                yield this.startAudioInput(null);\\n            }\\n            if (this.useWebAudio) {\\n                const dest = this.getMediaStreamDestinationNode();\\n                return dest.stream;\\n            }\\n            return this.activeDevices['audio'].stream;\\n        });\\n    }\\n    acquireVideoInputStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.activeDevices['video']) {\\n                throw new Error(`No video device chosen`);\\n            }\\n            if (this.chosenVideoInputIsTransformDevice()) {\\n                return this.chosenVideoTransformDevice.outputMediaStream;\\n            }\\n            return this.activeDevices['video'].stream;\\n        });\\n    }\\n    acquireDisplayInputStream(_streamConstraints) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            throw new Error('unsupported');\\n        });\\n    }\\n    /**\\n     *\\n     * We need to do three things to clean up audio input\\n     *\\n     * * Close the tracks of the source stream.\\n     * * Remove the transform.\\n     * * Clean up the intrinsic stream's callback -- that's the stream that's tracked in\\n     *   `activeDevices` and needs to have its callbacks removed.\\n     */\\n    releaseAudioTransformStream() {\\n        this.logger.info('Stopping audio track for Web Audio graph');\\n        this.stopTracksAndRemoveCallbacks('audio');\\n        this.logger.info('Removing audio transform, if there is one.');\\n        this.removeTransform();\\n        // Remove the input and output nodes. They will be recreated later if\\n        // needed.\\n        /* istanbul ignore else */\\n        if (this.audioInputSourceNode) {\\n            this.audioInputSourceNode.disconnect();\\n            this.audioInputSourceNode = undefined;\\n        }\\n        /* istanbul ignore else */\\n        if (this.audioInputDestinationNode) {\\n            this.audioInputDestinationNode.disconnect();\\n            this.audioInputDestinationNode = undefined;\\n        }\\n    }\\n    /**\\n     *\\n     * We need to do three things to clean up video input\\n     *\\n     * * Close the tracks of the source stream.\\n     * * Remove the transform.\\n     * * Clean up the intrinsic stream's callback -- that's the stream that's tracked in\\n     *   `activeDevices` and needs to have its callbacks removed.\\n     */\\n    releaseVideoTransformStream() {\\n        this.logger.info('Stopping video track for transform');\\n        this.stopTracksAndRemoveCallbacks('video');\\n        this.logger.info('Disconnecting video transform');\\n        this.chosenVideoTransformDevice.onOutputStreamDisconnect();\\n        this.chosenVideoTransformDevice = null;\\n    }\\n    stopTracksAndRemoveCallbacks(kind) {\\n        const activeDevice = this.activeDevices[kind];\\n        // Just-in-case error handling.\\n        /* istanbul ignore if */\\n        if (!activeDevice) {\\n            return;\\n        }\\n        /* istanbul ignore next */\\n        const endedCallback = activeDevice.endedCallback;\\n        const trackMuteCallback = activeDevice.trackMuteCallback;\\n        const trackUnmuteCallback = activeDevice.trackUnmuteCallback;\\n        for (const track of activeDevice.stream.getTracks()) {\\n            track.stop();\\n            /* istanbul ignore else */\\n            if (endedCallback) {\\n                track.removeEventListener('ended', endedCallback);\\n            }\\n            /* istanbul ignore else */\\n            if (trackMuteCallback) {\\n                track.removeEventListener('mute', trackMuteCallback);\\n            }\\n            /* istanbul ignore else */\\n            if (trackUnmuteCallback) {\\n                track.removeEventListener('unmute', trackUnmuteCallback);\\n            }\\n            delete activeDevice.endedCallback;\\n            delete activeDevice.trackMuteCallback;\\n            delete activeDevice.trackUnmuteCallback;\\n            delete this.activeDevices[kind];\\n        }\\n    }\\n    chosenVideoInputIsTransformDevice() {\\n        return !!this.chosenVideoTransformDevice;\\n    }\\n    muteLocalAudioInputStream() {\\n        this.toggleLocalAudioInputStream(false);\\n    }\\n    unmuteLocalAudioInputStream() {\\n        this.toggleLocalAudioInputStream(true);\\n    }\\n    toggleLocalAudioInputStream(enabled) {\\n        var _a;\\n        let audioDevice = this.activeDevices['audio'];\\n        if (this.useWebAudio) {\\n            audioDevice = this.getMediaStreamDestinationNode();\\n        }\\n        if (!audioDevice) {\\n            return;\\n        }\\n        for (const track of audioDevice.stream.getTracks()) {\\n            if (track.enabled === enabled) {\\n                continue;\\n            }\\n            track.enabled = enabled;\\n        }\\n        if (this.muted !== !enabled) {\\n            this.muted = !enabled;\\n            (_a = this.transform) === null || _a === void 0 ? void 0 : _a.device.mute(this.muted);\\n        }\\n    }\\n    static getIntrinsicDeviceId(device) {\\n        if (!device) {\\n            return undefined;\\n        }\\n        if (typeof device === 'string') {\\n            return device;\\n        }\\n        if (device.id) {\\n            return device.id;\\n        }\\n        const constraints = device;\\n        const deviceIdConstraints = constraints.deviceId;\\n        if (!deviceIdConstraints) {\\n            return undefined;\\n        }\\n        if (typeof deviceIdConstraints === 'string' || Array.isArray(deviceIdConstraints)) {\\n            return deviceIdConstraints;\\n        }\\n        const constraintStringParams = deviceIdConstraints;\\n        if (typeof constraintStringParams.exact === 'string' ||\\n            Array.isArray(constraintStringParams.exact)) {\\n            return constraintStringParams.exact;\\n        }\\n        return undefined;\\n    }\\n    static createEmptyAudioDevice() {\\n        return DefaultDeviceController.synthesizeAudioDevice(0);\\n    }\\n    static synthesizeAudioDevice(toneHz) {\\n        const audioContext = DefaultDeviceController.getAudioContext();\\n        const outputNode = audioContext.createMediaStreamDestination();\\n        if (!toneHz) {\\n            const source = audioContext.createBufferSource();\\n            // The AudioContext object uses the sample rate of the default output device\\n            // if not specified. Creating an AudioBuffer object with the output device's\\n            // sample rate fails in some browsers, e.g. Safari with a Bluetooth headphone.\\n            try {\\n                source.buffer = audioContext.createBuffer(1, audioContext.sampleRate * 5, audioContext.sampleRate);\\n            }\\n            catch (error) {\\n                if (error && error.name === 'NotSupportedError') {\\n                    source.buffer = audioContext.createBuffer(1, DefaultDeviceController.defaultSampleRate * 5, DefaultDeviceController.defaultSampleRate);\\n                }\\n                else {\\n                    throw error;\\n                }\\n            }\\n            // Some browsers will not play audio out the MediaStreamDestination\\n            // unless there is actually audio to play, so we add a small amount of\\n            // noise here to ensure that audio is played out.\\n            source.buffer.getChannelData(0)[0] = 0.0003;\\n            source.loop = true;\\n            source.connect(outputNode);\\n            source.start();\\n        }\\n        else {\\n            const gainNode = audioContext.createGain();\\n            gainNode.gain.value = 0.1;\\n            gainNode.connect(outputNode);\\n            const oscillatorNode = audioContext.createOscillator();\\n            oscillatorNode.frequency.value = toneHz;\\n            oscillatorNode.connect(gainNode);\\n            oscillatorNode.start();\\n        }\\n        return outputNode.stream;\\n    }\\n    listDevicesOfKind(deviceKind, forceUpdate) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (forceUpdate || this.deviceInfoCache === null || !this.isWatchingForDeviceChanges()) {\\n                yield this.updateDeviceInfoCacheFromBrowser();\\n            }\\n            return this.listCachedDevicesOfKind(deviceKind);\\n        });\\n    }\\n    updateDeviceInfoCacheFromBrowser() {\\n        var _a, _b;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const doesNotHaveAccessToMediaDevices = typeof MediaDeviceInfo === 'undefined';\\n            if (doesNotHaveAccessToMediaDevices) {\\n                this.deviceInfoCache = [];\\n                return;\\n            }\\n            let devices = yield navigator.mediaDevices.enumerateDevices();\\n            let hasDeviceLabels = true;\\n            for (const device of devices) {\\n                if (!device.label) {\\n                    hasDeviceLabels = false;\\n                    break;\\n                }\\n            }\\n            if (!hasDeviceLabels) {\\n                try {\\n                    this.logger.info('attempting to trigger media device labels since they are hidden');\\n                    const triggerStream = yield this.deviceLabelTrigger();\\n                    devices = yield navigator.mediaDevices.enumerateDevices();\\n                    for (const track of triggerStream.getTracks()) {\\n                        track.stop();\\n                    }\\n                }\\n                catch (err) {\\n                    this.logger.info('unable to get media device labels');\\n                    (_a = this.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('audioInputFailed', {\\n                        audioInputErrorMessage: this.getErrorMessage(err),\\n                    });\\n                    (_b = this.eventController) === null || _b === void 0 ? void 0 : _b.publishEvent('videoInputFailed', {\\n                        videoInputErrorMessage: this.getErrorMessage(err),\\n                    });\\n                }\\n            }\\n            this.logger.debug(`Update device info cache with devices: ${JSON.stringify(devices)}`);\\n            this.deviceInfoCache = devices;\\n        });\\n    }\\n    listCachedDevicesOfKind(deviceKind) {\\n        const devicesOfKind = [];\\n        if (this.deviceInfoCache) {\\n            for (const device of this.deviceInfoCache) {\\n                if (device.kind === deviceKind) {\\n                    devicesOfKind.push(device);\\n                }\\n            }\\n        }\\n        return devicesOfKind;\\n    }\\n    handleDeviceChange() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.deviceInfoCache === null) {\\n                return;\\n            }\\n            if (this.alreadyHandlingDeviceChange) {\\n                AsyncScheduler_1.default.nextTick(() => {\\n                    this.handleDeviceChange();\\n                });\\n                return;\\n            }\\n            this.alreadyHandlingDeviceChange = true;\\n            const oldAudioInputDevices = this.listCachedDevicesOfKind('audioinput');\\n            const oldVideoInputDevices = this.listCachedDevicesOfKind('videoinput');\\n            const oldAudioOutputDevices = this.listCachedDevicesOfKind('audiooutput');\\n            yield this.updateDeviceInfoCacheFromBrowser();\\n            const newAudioInputDevices = this.listCachedDevicesOfKind('audioinput');\\n            const newVideoInputDevices = this.listCachedDevicesOfKind('videoinput');\\n            const newAudioOutputDevices = this.listCachedDevicesOfKind('audiooutput');\\n            this.forEachObserver((observer) => {\\n                if (!this.areDeviceListsEqual(oldAudioInputDevices, newAudioInputDevices)) {\\n                    Types_1.Maybe.of(observer.audioInputsChanged).map(f => f.bind(observer)(newAudioInputDevices));\\n                }\\n                if (!this.areDeviceListsEqual(oldVideoInputDevices, newVideoInputDevices)) {\\n                    Types_1.Maybe.of(observer.videoInputsChanged).map(f => f.bind(observer)(newVideoInputDevices));\\n                }\\n                if (!this.areDeviceListsEqual(oldAudioOutputDevices, newAudioOutputDevices)) {\\n                    Types_1.Maybe.of(observer.audioOutputsChanged).map(f => f.bind(observer)(newAudioOutputDevices));\\n                }\\n            });\\n            this.alreadyHandlingDeviceChange = false;\\n        });\\n    }\\n    handleDeviceStreamEnded(kind, deviceId) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                if (kind === 'audio') {\\n                    this.logger.warn(`Audio input device which was active is no longer available, resetting to null device`);\\n                    yield this.startAudioInput(null); //Need to switch to empty audio device\\n                }\\n                else {\\n                    this.logger.warn(`Video input device which was active is no longer available, stopping video`);\\n                    yield this.stopVideoInput();\\n                }\\n            }\\n            catch (e) {\\n                /* istanbul ignore next */\\n                this.logger.error('Failed to choose null device after stream ended.');\\n            }\\n            if (kind === 'audio') {\\n                this.forEachObserver((observer) => {\\n                    Types_1.Maybe.of(observer.audioInputStreamEnded).map(f => f.bind(observer)(deviceId));\\n                });\\n            }\\n            else {\\n                this.forEachObserver((observer) => {\\n                    Types_1.Maybe.of(observer.videoInputStreamEnded).map(f => f.bind(observer)(deviceId));\\n                });\\n            }\\n        });\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.deviceChangeObservers) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                /* istanbul ignore else */\\n                if (this.deviceChangeObservers.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    forEachMediaStreamBrokerObserver(observerFunc) {\\n        for (const observer of this.mediaStreamBrokerObservers) {\\n            observerFunc(observer);\\n        }\\n    }\\n    areDeviceListsEqual(a, b) {\\n        return (JSON.stringify(a.map(device => JSON.stringify(device)).sort()) ===\\n            JSON.stringify(b.map(device => JSON.stringify(device)).sort()));\\n    }\\n    intrinsicDeviceAsMediaStream(device) {\\n        // @ts-ignore\\n        return device && device.id ? device : null;\\n    }\\n    hasSameMediaStreamId(kind, selection, proposedConstraints) {\\n        var _a, _b, _c, _d;\\n        // Checking for stream using the fake constraint created in getMediaStreamConstraints\\n        let streamId;\\n        if (kind === 'audio') {\\n            // @ts-ignore\\n            streamId = proposedConstraints === null || proposedConstraints === void 0 ? void 0 : proposedConstraints.audio.streamId;\\n            /* istanbul ignore next */\\n            // @ts-ignore\\n            return !!streamId && streamId === ((_b = (_a = selection.constraints) === null || _a === void 0 ? void 0 : _a.audio) === null || _b === void 0 ? void 0 : _b.streamId);\\n        }\\n        /* istanbul ignore next */\\n        // @ts-ignore\\n        streamId = proposedConstraints === null || proposedConstraints === void 0 ? void 0 : proposedConstraints.video.streamId;\\n        /* istanbul ignore next */\\n        // @ts-ignore\\n        return !!streamId && streamId === ((_d = (_c = selection === null || selection === void 0 ? void 0 : selection.constraints) === null || _c === void 0 ? void 0 : _c.video) === null || _d === void 0 ? void 0 : _d.streamId);\\n    }\\n    hasSameGroupId(groupId, kind, device) {\\n        if (groupId === '') {\\n            return true;\\n        }\\n        const deviceIds = DefaultDeviceController.getIntrinsicDeviceId(device);\\n        this.logger.debug(`Checking deviceIds ${deviceIds} of type ${typeof deviceIds} with groupId ${groupId}`);\\n        if (typeof deviceIds === 'string' && groupId === this.getGroupIdFromDeviceId(kind, deviceIds)) {\\n            return true;\\n        }\\n        return false;\\n    }\\n    getGroupIdFromDeviceId(kind, deviceId) {\\n        if (this.deviceInfoCache !== null) {\\n            const cachedDeviceInfo = this.listCachedDevicesOfKind(`${kind}input`).find((cachedDevice) => cachedDevice.deviceId === deviceId);\\n            if (cachedDeviceInfo && cachedDeviceInfo.groupId) {\\n                this.logger.debug(`GroupId of deviceId ${deviceId} found in cache is ${cachedDeviceInfo.groupId}`);\\n                return cachedDeviceInfo.groupId;\\n            }\\n        }\\n        this.logger.debug(`GroupId of deviceId ${deviceId} found in cache is empty`);\\n        return '';\\n    }\\n    handleGetUserMediaError(error, errorTimeMs) {\\n        if (!error) {\\n            throw new GetUserMediaError_1.default(error);\\n        }\\n        switch (error.name) {\\n            case 'NotReadableError':\\n            case 'TrackStartError':\\n                throw new NotReadableError_1.default(error);\\n            case 'NotFoundError':\\n            case 'DevicesNotFoundError':\\n                throw new NotFoundError_1.default(error);\\n            case 'NotAllowedError':\\n            case 'PermissionDeniedError':\\n            case 'SecurityError':\\n                if (errorTimeMs &&\\n                    errorTimeMs < DefaultDeviceController.permissionDeniedOriginDetectionThresholdMs) {\\n                    throw new PermissionDeniedError_1.default(error, 'Permission denied by browser');\\n                }\\n                else {\\n                    throw new PermissionDeniedError_1.default(error, 'Permission denied by user');\\n                }\\n            case 'OverconstrainedError':\\n            case 'ConstraintNotSatisfiedError':\\n                throw new OverconstrainedError_1.default(error);\\n            case 'TypeError':\\n                throw new TypeError_1.default(error);\\n            case 'AbortError':\\n            default:\\n                throw new GetUserMediaError_1.default(error);\\n        }\\n    }\\n    /**\\n     * Check whether a device is already selected.\\n     *\\n     * @param kind typically 'audio' or 'video'.\\n     * @param device the device about to be selected.\\n     * @param selection the existing device selection of this kind.\\n     * @param proposedConstraints the constraints that will be used when this device is selected.\\n     * @returns whether `device` matches `selection` — that is, whether this device is already selected.\\n     */\\n    matchesDeviceSelection(kind, device, selection, proposedConstraints) {\\n        if (selection &&\\n            selection.stream.active &&\\n            (this.hasSameMediaStreamId(kind, selection, proposedConstraints) ||\\n                (selection.groupId !== null && this.hasSameGroupId(selection.groupId, kind, device)))) {\\n            // TODO: this should be computed within this function.\\n            this.logger.debug(`Compare current device constraint ${JSON.stringify(selection.constraints)} to proposed constraints ${JSON.stringify(proposedConstraints)}`);\\n            return selection.matchesConstraints(proposedConstraints);\\n        }\\n        return false;\\n    }\\n    chooseInputIntrinsicDevice(kind, device) {\\n        var _a, _b;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // N.B.,: the input device might already have augmented constraints supplied\\n            // by an `AudioTransformDevice`. `getMediaStreamConstraints` will respect\\n            // settings supplied by the device.\\n            const proposedConstraints = this.getMediaStreamConstraints(kind, device);\\n            // TODO: `matchesConstraints` should really return compatible/incompatible/exact --\\n            // `applyConstraints` can be used to reuse the active device while changing the\\n            // requested constraints.\\n            if (this.matchesDeviceSelection(kind, device, this.activeDevices[kind], proposedConstraints)) {\\n                this.logger.info(`reusing existing ${kind} input device`);\\n                return;\\n            }\\n            if (this.activeDevices[kind] && this.activeDevices[kind].stream) {\\n                this.stopTracksAndRemoveCallbacks(kind);\\n            }\\n            const startTimeMs = Date.now();\\n            const newDevice = new DeviceSelection_1.default();\\n            try {\\n                this.logger.info(`requesting new ${kind} device with constraint ${JSON.stringify(proposedConstraints)}`);\\n                const stream = this.intrinsicDeviceAsMediaStream(device);\\n                if (kind === 'audio' && device === null) {\\n                    newDevice.stream = DefaultDeviceController.createEmptyAudioDevice();\\n                    newDevice.constraints = null;\\n                }\\n                else if (stream) {\\n                    this.logger.info(`using media stream ${stream.id} for ${kind} device`);\\n                    newDevice.stream = stream;\\n                    newDevice.constraints = proposedConstraints;\\n                }\\n                else {\\n                    newDevice.stream = yield navigator.mediaDevices.getUserMedia(proposedConstraints);\\n                    newDevice.constraints = proposedConstraints;\\n                }\\n                yield this.handleNewInputDevice(kind, newDevice);\\n            }\\n            catch (error) {\\n                const errorMessage = this.getErrorMessage(error);\\n                if (kind === 'audio') {\\n                    (_a = this.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('audioInputFailed', {\\n                        audioInputErrorMessage: errorMessage,\\n                    });\\n                }\\n                else {\\n                    (_b = this.eventController) === null || _b === void 0 ? void 0 : _b.publishEvent('videoInputFailed', {\\n                        videoInputErrorMessage: errorMessage,\\n                    });\\n                }\\n                this.logger.error(`failed to get ${kind} device for constraints ${JSON.stringify(proposedConstraints)}: ${errorMessage}`);\\n                let hasError = true;\\n                // This is effectively `error instanceof OverconstrainedError` but works in Node.\\n                if (error && 'constraint' in error) {\\n                    this.logger.error(`Over-constrained by constraint: ${error.constraint}`);\\n                    // Try to reduce the constraints if over-constraints\\n                    if (this.useMediaConstraintsFallback) {\\n                        const fallbackConstraints = this.getMediaStreamConstraints(kind, device, true);\\n                        const fallbackConstraintsJSON = JSON.stringify(fallbackConstraints);\\n                        if (fallbackConstraintsJSON !== JSON.stringify(proposedConstraints)) {\\n                            this.logger.info(`retry requesting new ${kind} device with minimal constraint ${fallbackConstraintsJSON}`);\\n                            try {\\n                                newDevice.stream = yield navigator.mediaDevices.getUserMedia(fallbackConstraints);\\n                                newDevice.constraints = fallbackConstraints;\\n                                yield this.handleNewInputDevice(kind, newDevice);\\n                                hasError = false;\\n                            }\\n                            catch (e) {\\n                                this.logger.error(`failed to get ${kind} device for constraints ${fallbackConstraintsJSON}: ${this.getErrorMessage(e)}`);\\n                            }\\n                        }\\n                    }\\n                }\\n                if (hasError) {\\n                    /*\\n                     * If there is any error while acquiring the audio device, we fall back to null device.\\n                     * Reason: If device selection fails (e.g. NotReadableError), the peer connection is left hanging\\n                     * with no active audio track since we release the previously attached track.\\n                     * If no audio packet has yet been sent to the server, the server will not emit the joined event.\\n                     */\\n                    if (kind === 'audio') {\\n                        this.logger.info(`choosing null ${kind} device instead`);\\n                        try {\\n                            newDevice.stream = DefaultDeviceController.createEmptyAudioDevice();\\n                            newDevice.constraints = null;\\n                            yield this.handleNewInputDevice(kind, newDevice);\\n                        }\\n                        catch (error) {\\n                            this.logger.error(`failed to choose null ${kind} device. ${error.name}: ${error.message}`);\\n                        }\\n                    }\\n                    this.handleGetUserMediaError(error, Date.now() - startTimeMs);\\n                }\\n            }\\n            finally {\\n                this.watchForDeviceChangesIfNecessary();\\n            }\\n        });\\n    }\\n    getErrorMessage(error) {\\n        if (!error) {\\n            return 'UnknownError';\\n        }\\n        if (error.name && error.message) {\\n            return `${error.name}: ${error.message}`;\\n        }\\n        if (error.name) {\\n            return error.name;\\n        }\\n        if (error.message) {\\n            return error.message;\\n        }\\n        return 'UnknownError';\\n    }\\n    handleNewInputDevice(kind, newDevice) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.info(`got ${kind} device for constraints ${JSON.stringify(newDevice.constraints)}`);\\n            const newDeviceId = (_a = this.getMediaTrackSettings(newDevice.stream)) === null || _a === void 0 ? void 0 : _a.deviceId;\\n            newDevice.groupId = newDeviceId ? this.getGroupIdFromDeviceId(kind, newDeviceId) : '';\\n            this.activeDevices[kind] = newDevice;\\n            this.logger.debug(`Set activeDevice to ${JSON.stringify(newDevice)}`);\\n            this.watchForDeviceChangesIfNecessary();\\n            // Add event listener to detect ended event of media track\\n            // We only monitor the first track, and use its device ID for observer notifications.\\n            const track = newDevice.stream.getTracks()[0];\\n            if (track) {\\n                newDevice.endedCallback = () => {\\n                    // Hard to test, but the safety check is worthwhile.\\n                    /* istanbul ignore else */\\n                    if (this.activeDevices[kind] && this.activeDevices[kind].stream === newDevice.stream) {\\n                        this.handleDeviceStreamEnded(kind, newDeviceId);\\n                        delete newDevice.endedCallback;\\n                    }\\n                };\\n                track.addEventListener('ended', newDevice.endedCallback, { once: true });\\n            }\\n            // Add event listener to mute/unmute event for audio\\n            if (kind === 'audio') {\\n                // We only monitor the first track, and use its device ID for observer notifications.\\n                const track = newDevice.stream.getAudioTracks()[0];\\n                if (track) {\\n                    const id = track.getSettings().deviceId || newDevice.stream;\\n                    newDevice.trackMuteCallback = () => {\\n                        this.mediaStreamMuteObserver(id, true);\\n                    };\\n                    newDevice.trackUnmuteCallback = () => {\\n                        this.mediaStreamMuteObserver(id, false);\\n                    };\\n                    track.addEventListener('mute', newDevice.trackMuteCallback, { once: false });\\n                    track.addEventListener('unmute', newDevice.trackUnmuteCallback, { once: false });\\n                    this.logger.debug('Notifying mute state after selection');\\n                    if (track.muted) {\\n                        newDevice.trackMuteCallback();\\n                    }\\n                    else {\\n                        newDevice.trackUnmuteCallback();\\n                    }\\n                }\\n            }\\n        });\\n    }\\n    calculateMediaStreamConstraints(kind, deviceId, groupId, minimal) {\\n        // No need for any constraints if we want minimal constraint and there is only one device\\n        if (minimal && this.listCachedDevicesOfKind(`${kind}input`).length === 1) {\\n            return true;\\n        }\\n        const trackConstraints = {};\\n        // In Samsung Internet browser, navigator.mediaDevices.enumerateDevices()\\n        // returns same deviceId but different groupdId for some audioinput and videoinput devices.\\n        // To handle this, we select appropriate device using deviceId + groupId.\\n        if (this.browserBehavior.requiresNoExactMediaStreamConstraints()) {\\n            trackConstraints.deviceId = deviceId;\\n        }\\n        else {\\n            trackConstraints.deviceId = { exact: deviceId };\\n        }\\n        if (groupId) {\\n            trackConstraints.groupId = groupId;\\n        }\\n        if (minimal) {\\n            return trackConstraints;\\n        }\\n        // Video additional constraints\\n        if (kind === 'video') {\\n            trackConstraints.width = {\\n                ideal: this.videoInputQualitySettings.videoWidth,\\n            };\\n            trackConstraints.height = {\\n                ideal: this.videoInputQualitySettings.videoHeight,\\n            };\\n            trackConstraints.frameRate = {\\n                ideal: this.videoInputQualitySettings.videoFrameRate,\\n            };\\n            return trackConstraints;\\n        }\\n        // Audio additional constraints\\n        if (this.supportSampleRateConstraint()) {\\n            trackConstraints.sampleRate = { ideal: DefaultDeviceController.defaultSampleRate };\\n        }\\n        if (this.supportSampleSizeConstraint()) {\\n            trackConstraints.sampleSize = { ideal: DefaultDeviceController.defaultSampleSize };\\n        }\\n        if (this.supportChannelCountConstraint()) {\\n            trackConstraints.channelCount = { ideal: DefaultDeviceController.defaultChannelCount };\\n        }\\n        const augmented = Object.assign({ echoCancellation: true, googEchoCancellation: true, googEchoCancellation2: true, googAutoGainControl: true, googAutoGainControl2: true, googNoiseSuppression: true, googNoiseSuppression2: true, googHighpassFilter: true }, trackConstraints);\\n        return augmented;\\n    }\\n    getMediaStreamConstraintsFromTrackConstraints(kind, trackConstraints) {\\n        return kind === 'audio' ? { audio: trackConstraints } : { video: trackConstraints };\\n    }\\n    getMediaStreamConstraints(kind, device, minimal = false) {\\n        let trackConstraints = {};\\n        if (!device) {\\n            return null;\\n        }\\n        const stream = this.intrinsicDeviceAsMediaStream(device);\\n        if (stream) {\\n            // @ts-ignore - create a fake track constraint using the stream id\\n            trackConstraints.streamId = stream.id;\\n            return this.getMediaStreamConstraintsFromTrackConstraints(kind, trackConstraints);\\n        }\\n        if (typeof device === 'string') {\\n            let groupId = '';\\n            if (this.browserBehavior.requiresGroupIdMediaStreamConstraints()) {\\n                if (this.deviceInfoCache !== null) {\\n                    groupId = this.getGroupIdFromDeviceId(kind, device);\\n                }\\n                else {\\n                    this.logger.error('Device cache is not populated. Please make sure to call list devices first');\\n                }\\n            }\\n            trackConstraints = this.calculateMediaStreamConstraints(kind, device, groupId, minimal);\\n            return this.getMediaStreamConstraintsFromTrackConstraints(kind, trackConstraints);\\n        }\\n        if (isMediaDeviceInfo(device)) {\\n            trackConstraints = this.calculateMediaStreamConstraints(kind, device.deviceId, device.groupId, minimal);\\n            return this.getMediaStreamConstraintsFromTrackConstraints(kind, trackConstraints);\\n        }\\n        // Take the input set of constraints.\\n        // In this case, we just use the constraints as-is.\\n        // @ts-ignore - device is a MediaTrackConstraints\\n        trackConstraints = device;\\n        return this.getMediaStreamConstraintsFromTrackConstraints(kind, trackConstraints);\\n    }\\n    deviceInfoFromDeviceId(deviceKind, deviceId) {\\n        if (this.deviceInfoCache === null) {\\n            return null;\\n        }\\n        for (const device of this.deviceInfoCache) {\\n            if (device.kind === deviceKind && device.deviceId === deviceId) {\\n                return device;\\n            }\\n        }\\n        return null;\\n    }\\n    hasAppliedTransform() {\\n        return !!this.transform;\\n    }\\n    isMediaStreamReusableByDeviceId(stream, device) {\\n        // for null device, assume the stream is not reusable\\n        if (!stream || !stream.active || !device) {\\n            return false;\\n        }\\n        if (device.id) {\\n            return stream.id === device.id;\\n        }\\n        const settings = this.getMediaTrackSettings(stream);\\n        // If a device does not specify deviceId, we have to assume the stream is not reusable.\\n        if (!settings.deviceId) {\\n            return false;\\n        }\\n        const deviceIds = DefaultDeviceController.getIntrinsicDeviceId(device);\\n        if (typeof deviceIds === 'string') {\\n            return settings.deviceId === deviceIds;\\n        }\\n        return false;\\n    }\\n    getMediaTrackSettings(stream) {\\n        var _a;\\n        return (_a = stream.getTracks()[0]) === null || _a === void 0 ? void 0 : _a.getSettings();\\n    }\\n    reconnectAudioInputs() {\\n        if (!this.audioInputSourceNode) {\\n            return;\\n        }\\n        this.audioInputSourceNode.disconnect();\\n        const output = this.getMediaStreamOutputNode();\\n        this.audioInputSourceNode.connect(output);\\n    }\\n    setTransform(device, nodes) {\\n        var _a, _b;\\n        (_b = (_a = this.transform) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.end.disconnect();\\n        this.transform = { nodes, device };\\n        const proc = nodes === null || nodes === void 0 ? void 0 : nodes.end;\\n        const dest = this.getMediaStreamDestinationNode();\\n        this.logger.debug(`Connecting transform node ${proc} to destination ${dest}.`);\\n        proc === null || proc === void 0 ? void 0 : proc.connect(dest);\\n        this.reconnectAudioInputs();\\n    }\\n    removeTransform() {\\n        var _a;\\n        const previous = this.transform;\\n        if (!previous) {\\n            return undefined;\\n        }\\n        (_a = this.transform.nodes) === null || _a === void 0 ? void 0 : _a.end.disconnect();\\n        this.transform = undefined;\\n        this.reconnectAudioInputs();\\n        return previous;\\n    }\\n    attachAudioInputStreamToAudioContext(stream) {\\n        var _a;\\n        (_a = this.audioInputSourceNode) === null || _a === void 0 ? void 0 : _a.disconnect();\\n        this.audioInputSourceNode = DefaultDeviceController.getAudioContext().createMediaStreamSource(stream);\\n        const output = this.getMediaStreamOutputNode();\\n        this.audioInputSourceNode.connect(output);\\n    }\\n    /**\\n     * Return the end of the Web Audio graph: post-transform audio.\\n     */\\n    getMediaStreamDestinationNode() {\\n        if (!this.audioInputDestinationNode) {\\n            this.audioInputDestinationNode = DefaultDeviceController.getAudioContext().createMediaStreamDestination();\\n        }\\n        return this.audioInputDestinationNode;\\n    }\\n    /**\\n     * Return the start of the Web Audio graph: pre-transform audio.\\n     * If there's no transform node, this is the destination node.\\n     */\\n    getMediaStreamOutputNode() {\\n        var _a, _b;\\n        return ((_b = (_a = this.transform) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.start) || this.getMediaStreamDestinationNode();\\n    }\\n    /**\\n     * Overrides the default latency hint used by the user agent when creating the `AudioContext`. By default,\\n     * user agents will choose \\\"interactive\\\" which opts for the smallest possible audio buffer. This can\\n     * cause choppy audio in some cases on Windows. Therefore, \\\"playback\\\" will be chosen on Windows unless\\n     * this value is overridden with this function.\\n     * @param latencyHint The latency hint to be used when creating the Web Audio `AudioContext`\\n     */\\n    static setDefaultLatencyHint(latencyHint) {\\n        DefaultDeviceController.defaultLatencyHint = latencyHint;\\n    }\\n    /**\\n     * Returns the Web Audio `AudioContext` used by the {@link DefaultDeviceController}. The `AudioContext`\\n     * is created lazily the first time this function is called.\\n     * @returns a Web Audio `AudioContext`\\n     */\\n    static getAudioContext() {\\n        if (!DefaultDeviceController.audioContext) {\\n            const options = {};\\n            if (navigator.mediaDevices.getSupportedConstraints().sampleRate) {\\n                options.sampleRate = DefaultDeviceController.defaultSampleRate;\\n            }\\n            const browserBehavior = new DefaultBrowserBehavior_1.default();\\n            if (browserBehavior.requiresPlaybackLatencyHintForAudioContext()) {\\n                options.latencyHint = 'playback'; // 'playback' is equivalent to 0.02s (20ms) on Windows\\n            }\\n            if (DefaultDeviceController.defaultLatencyHint) {\\n                options.latencyHint = DefaultDeviceController.defaultLatencyHint;\\n            }\\n            DefaultDeviceController.audioContext = new (window.AudioContext ||\\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n                window.webkitAudioContext)(options);\\n        }\\n        return DefaultDeviceController.audioContext;\\n    }\\n    static closeAudioContext() {\\n        if (DefaultDeviceController.audioContext) {\\n            try {\\n                DefaultDeviceController.audioContext.close();\\n            }\\n            catch (e) {\\n                // Nothing we can do.\\n            }\\n        }\\n        DefaultDeviceController.audioContext = null;\\n    }\\n    addMediaStreamBrokerObserver(observer) {\\n        this.mediaStreamBrokerObservers.add(observer);\\n    }\\n    removeMediaStreamBrokerObserver(observer) {\\n        this.mediaStreamBrokerObservers.delete(observer);\\n    }\\n    publishVideoInputDidChangeEvent(videoStream) {\\n        this.forEachMediaStreamBrokerObserver((observer) => {\\n            if (observer.videoInputDidChange) {\\n                observer.videoInputDidChange(videoStream);\\n            }\\n        });\\n        this.pushVideoMeetingStateForPermissions(videoStream);\\n    }\\n    publishAudioInputDidChangeEvent(audioStream) {\\n        this.forEachMediaStreamBrokerObserver((observer) => {\\n            if (observer.audioInputDidChange) {\\n                observer.audioInputDidChange(audioStream);\\n            }\\n        });\\n        this.pushAudioMeetingStateForPermissions(audioStream);\\n    }\\n    publishAudioOutputDidChangeEvent(device) {\\n        this.forEachMediaStreamBrokerObserver((observer) => {\\n            if (observer.audioOutputDidChange) {\\n                observer.audioOutputDidChange(device);\\n            }\\n        });\\n    }\\n    supportSampleRateConstraint() {\\n        return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().sampleRate;\\n    }\\n    supportSampleSizeConstraint() {\\n        return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().sampleSize;\\n    }\\n    supportChannelCountConstraint() {\\n        return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().channelCount;\\n    }\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    trace(name, input, output) {\\n        let s = `API/DefaultDeviceController/${name}`;\\n        if (typeof input !== 'undefined') {\\n            s += ` ${JSON.stringify(input)}`;\\n        }\\n        if (typeof output !== 'undefined') {\\n            s += ` -> ${JSON.stringify(output)}`;\\n        }\\n        this.logger.info(s);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultDeviceController;\\nDefaultDeviceController.permissionDeniedOriginDetectionThresholdMs = 500;\\nDefaultDeviceController.defaultVideoWidth = 960;\\nDefaultDeviceController.defaultVideoHeight = 540;\\nDefaultDeviceController.defaultVideoFrameRate = 15;\\nDefaultDeviceController.defaultSampleRate = 48000;\\nDefaultDeviceController.defaultSampleSize = 16;\\nDefaultDeviceController.defaultChannelCount = 1;\\nDefaultDeviceController.audioContext = null;\\nfunction isMediaDeviceInfo(device) {\\n    return (typeof device === 'object' &&\\n        'deviceId' in device &&\\n        'groupId' in device &&\\n        'kind' in device &&\\n        'label' in device);\\n}\\n//# sourceMappingURL=DefaultDeviceController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DeviceSelection.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/DeviceSelection.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DeviceSelection {\\n    constructor() {\\n        this.groupId = '';\\n    }\\n    matchesConstraints(constraints) {\\n        return JSON.stringify(this.constraints) === JSON.stringify(constraints);\\n    }\\n}\\nexports[\\\"default\\\"] = DeviceSelection;\\n//# sourceMappingURL=DeviceSelection.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/DeviceSelection.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass GetUserMediaError extends Error {\\n    constructor(cause, message) {\\n        super(message || 'Error fetching device.');\\n        this.cause = cause;\\n        this.name = 'GetUserMediaError';\\n    }\\n}\\nexports[\\\"default\\\"] = GetUserMediaError;\\n//# sourceMappingURL=GetUserMediaError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NoOpDeviceController.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/NoOpDeviceController.js ***!\n  \\*****************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.NoOpDeviceControllerWithEventController = void 0;\\nconst NoOpMediaStreamBroker_1 = __webpack_require__(/*! ../mediastreambroker/NoOpMediaStreamBroker */ \\\"./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js\\\");\\nclass NoOpDeviceController extends NoOpMediaStreamBroker_1.default {\\n    constructor(_options) {\\n        super();\\n        this.destroyed = false;\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.destroyed = true;\\n        });\\n    }\\n    listAudioInputDevices() {\\n        return Promise.resolve([]);\\n    }\\n    listVideoInputDevices() {\\n        return Promise.resolve([]);\\n    }\\n    listAudioOutputDevices() {\\n        return Promise.resolve([]);\\n    }\\n    startAudioInput(_device) {\\n        return Promise.reject();\\n    }\\n    stopAudioInput() {\\n        return Promise.resolve();\\n    }\\n    startVideoInput(_device) {\\n        return Promise.reject();\\n    }\\n    stopVideoInput() {\\n        return Promise.resolve();\\n    }\\n    chooseAudioOutput(_deviceId) {\\n        return Promise.reject();\\n    }\\n    addDeviceChangeObserver(_observer) { }\\n    removeDeviceChangeObserver(_observer) { }\\n    createAnalyserNodeForAudioInput() {\\n        return null;\\n    }\\n    startVideoPreviewForVideoInput(_element) { }\\n    stopVideoPreviewForVideoInput(_element) { }\\n    setDeviceLabelTrigger(_trigger) { }\\n    mixIntoAudioInput(_stream) {\\n        return null;\\n    }\\n    chooseVideoInputQuality(_width, _height, _frameRate) { }\\n    getVideoInputQualitySettings() {\\n        return null;\\n    }\\n}\\nexports[\\\"default\\\"] = NoOpDeviceController;\\nclass NoOpDeviceControllerWithEventController extends NoOpDeviceController {\\n    constructor(eventController) {\\n        super();\\n        this.eventController = eventController;\\n    }\\n}\\nexports.NoOpDeviceControllerWithEventController = NoOpDeviceControllerWithEventController;\\n//# sourceMappingURL=NoOpDeviceController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/NoOpDeviceController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotFoundError.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotFoundError.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nclass NotFoundError extends GetUserMediaError_1.default {\\n    constructor(cause) {\\n        super(cause);\\n        this.name = 'NotFoundError';\\n    }\\n}\\nexports[\\\"default\\\"] = NotFoundError;\\n//# sourceMappingURL=NotFoundError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotFoundError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotReadableError.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotReadableError.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nclass NotReadableError extends GetUserMediaError_1.default {\\n    constructor(cause) {\\n        super(cause);\\n        this.name = 'NotReadableError';\\n    }\\n}\\nexports[\\\"default\\\"] = NotReadableError;\\n//# sourceMappingURL=NotReadableError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotReadableError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/OverconstrainedError.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/OverconstrainedError.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nclass OverconstrainedError extends GetUserMediaError_1.default {\\n    constructor(cause, constraint) {\\n        super(cause);\\n        this.constraint = constraint;\\n        this.name = 'OverconstrainedError';\\n    }\\n}\\nexports[\\\"default\\\"] = OverconstrainedError;\\n//# sourceMappingURL=OverconstrainedError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/OverconstrainedError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nclass PermissionDeniedError extends GetUserMediaError_1.default {\\n    constructor(cause, message) {\\n        super(cause, message);\\n        this.name = 'PermissionDeniedError';\\n    }\\n}\\nexports[\\\"default\\\"] = PermissionDeniedError;\\n//# sourceMappingURL=PermissionDeniedError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/SingleNodeAudioTransformDevice.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/SingleNodeAudioTransformDevice.js ***!\n  \\***************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * This class simplifies the process of defining a transform device that\\n * does not modify its input device constraints, and provides only a single audio node\\n * to apply transforms.\\n *\\n * Subclass `SingleNodeAudioTransformDevice`, implementing `createSingleAudioNode`.\\n */\\nclass SingleNodeAudioTransformDevice {\\n    constructor(inner) {\\n        this.inner = inner;\\n    }\\n    mute(_muted) {\\n        return __awaiter(this, void 0, void 0, function* () { });\\n    }\\n    /**\\n     * `stop` should be called by the application to free any resources associated\\n     * with the device (e.g., workers).\\n     *\\n     * After this is called, the device should be discarded.\\n     */\\n    stop() {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            (_a = this.node) === null || _a === void 0 ? void 0 : _a.disconnect();\\n        });\\n    }\\n    /**\\n     * Return the inner {@link Device} that the device controller should select as part\\n     * of the application of this `AudioTransformDevice`.\\n     */\\n    intrinsicDevice() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.inner;\\n        });\\n    }\\n    /**\\n     * Optionally return a pair of `AudioNode`s that should be connected to the applied inner\\n     * device. The two nodes can be the same, indicating the smallest possible subgraph.\\n     *\\n     * @param context The `AudioContext` to use when instantiating the nodes.\\n     */\\n    createAudioNode(context) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            (_a = this.node) === null || _a === void 0 ? void 0 : _a.disconnect();\\n            this.node = yield this.createSingleAudioNode(context);\\n            return {\\n                start: this.node,\\n                end: this.node,\\n            };\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SingleNodeAudioTransformDevice;\\n//# sourceMappingURL=SingleNodeAudioTransformDevice.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/SingleNodeAudioTransformDevice.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/TypeError.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/TypeError.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nclass TypeError extends GetUserMediaError_1.default {\\n    constructor(cause) {\\n        super(cause);\\n        this.name = 'TypeError';\\n    }\\n}\\nexports[\\\"default\\\"] = TypeError;\\n//# sourceMappingURL=TypeError.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/TypeError.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoQualitySettings.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoQualitySettings.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass VideoQualitySettings {\\n    constructor(videoWidth, videoHeight, videoFrameRate) {\\n        this.videoWidth = videoWidth;\\n        this.videoHeight = videoHeight;\\n        this.videoFrameRate = videoFrameRate;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoQualitySettings;\\n//# sourceMappingURL=VideoQualitySettings.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoQualitySettings.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js ***!\n  \\*****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isVideoTransformDevice = void 0;\\n/**\\n * `isVideoTransformDevice` is a type guard for {@link VideoTransformDevice}.\\n *\\n * @param device the value to check.\\n */\\nfunction isVideoTransformDevice(device) {\\n    return (!!device &&\\n        typeof device === 'object' &&\\n        'transformStream' in device &&\\n        'stop' in device &&\\n        'intrinsicDevice' in device);\\n}\\nexports.isVideoTransformDevice = isVideoTransformDevice;\\n//# sourceMappingURL=VideoTransformDevice.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicepixelratiomonitor/DefaultDevicePixelRatioMonitor.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicepixelratiomonitor/DefaultDevicePixelRatioMonitor.js ***!\n  \\**********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DefaultDevicePixelRatioMonitor {\\n    constructor(devicePixelRatioSource, logger) {\\n        this.devicePixelRatioSource = devicePixelRatioSource;\\n        this.observerQueue = new Set();\\n        this.mediaQueryListener = () => {\\n            this.observerQueue.forEach(tileObserver => {\\n                tileObserver.devicePixelRatioChanged(this.devicePixelRatioSource.devicePixelRatio());\\n            });\\n        };\\n        if (typeof window === 'undefined') {\\n            return;\\n        }\\n        const mediaQueryList = matchMedia(`(resolution: ${this.devicePixelRatioSource.devicePixelRatio()}dppx)`);\\n        if (typeof mediaQueryList.addEventListener === 'function') {\\n            mediaQueryList.addEventListener('change', this.mediaQueryListener);\\n            this.mediaQueryList = mediaQueryList;\\n        }\\n        else if (typeof mediaQueryList.addListener === 'function') {\\n            mediaQueryList.addListener(this.mediaQueryListener);\\n            this.mediaQueryList = mediaQueryList;\\n        }\\n        else {\\n            logger.warn('ignoring DefaultDevicePixelRatioMonitor');\\n        }\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.mediaQueryList) {\\n                if (typeof this.mediaQueryList.addEventListener === 'function') {\\n                    this.mediaQueryList.removeEventListener('change', this.mediaQueryListener);\\n                }\\n                else {\\n                    this.mediaQueryList.removeListener(this.mediaQueryListener);\\n                }\\n            }\\n            delete this.mediaQueryListener;\\n            this.observerQueue.clear();\\n        });\\n    }\\n    registerObserver(observer) {\\n        this.observerQueue.add(observer);\\n        observer.devicePixelRatioChanged(this.devicePixelRatioSource.devicePixelRatio());\\n    }\\n    removeObserver(observer) {\\n        this.observerQueue.delete(observer);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultDevicePixelRatioMonitor;\\n//# sourceMappingURL=DefaultDevicePixelRatioMonitor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicepixelratiomonitor/DefaultDevicePixelRatioMonitor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/devicepixelratiosource/DevicePixelRatioWindowSource.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/devicepixelratiosource/DevicePixelRatioWindowSource.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DevicePixelRatioWindowSource {\\n    devicePixelRatio() {\\n        if (typeof window === 'undefined' || !window || !window.devicePixelRatio) {\\n            return 1;\\n        }\\n        return window.devicePixelRatio;\\n    }\\n}\\nexports[\\\"default\\\"] = DevicePixelRatioWindowSource;\\n//# sourceMappingURL=DevicePixelRatioWindowSource.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/devicepixelratiosource/DevicePixelRatioWindowSource.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventbuffer/InMemoryJSONEventBuffer.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventbuffer/InMemoryJSONEventBuffer.js ***!\n  \\***************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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 __rest = (this && this.__rest) || function (s, e) {\\n    var t = {};\\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\n        t[p] = s[p];\\n    if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\n                t[p[i]] = s[p[i]];\\n        }\\n    return t;\\n};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ../backoff/FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nconst DefaultUserAgentParser_1 = __webpack_require__(/*! ../useragentparser/DefaultUserAgentParser */ \\\"./node_modules/amazon-chime-sdk-js/build/useragentparser/DefaultUserAgentParser.js\\\");\\nconst Utils_1 = __webpack_require__(/*! ../utils/Utils */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Utils.js\\\");\\n/**\\n * [[InMemoryJSONEventBuffer]] is an in-memory implementation for buffering and\\n * sending events. It buffers events based on number of events and its size whichever reaches\\n * first. Events are sent out at an scheduled interval where important events are sent immediately.\\n * It also retries sending events if failed upto the retry count limit. It implements\\n * beaconing mechanism based on 'pagehide' and 'visibilitychange' to beacon all events as a last attempt.\\n */\\nclass InMemoryJSONEventBuffer {\\n    constructor(eventBufferConfiguration, eventsClientConfiguration, ingestionURL, importantEvents, logger) {\\n        this.buffer = [];\\n        this.bufferSize = 0;\\n        this.maxBufferItemCapacityBytes = 0;\\n        this.ingestionEventSize = 0;\\n        this.flushIntervalMs = 0;\\n        this.flushSize = 0;\\n        this.failedIngestionEvents = [];\\n        this.retryCountLimit = 15;\\n        this.lock = false;\\n        this.cancellableEvents = new Map();\\n        this.attributesToFilter = ['externalUserId', 'externalMeetingId', 'timestampMs'];\\n        this.deepCopyCurrentIngestionEvent = (event) => {\\n            const newEvent = {\\n                type: event.type,\\n                v: event.v,\\n                payloads: [...event.payloads],\\n            };\\n            return newEvent;\\n        };\\n        this.sendEvents = () => __awaiter(this, void 0, void 0, function* () {\\n            if (this.lock) {\\n                return;\\n            }\\n            const batch = this.getItems(this.flushSize);\\n            if (batch.length === 0) {\\n                return;\\n            }\\n            this.lock = true;\\n            const body = this.makeRequestBody(batch);\\n            let failed = false;\\n            // If a page re-directs, in Safari and Chrome, the network\\n            // request shows cancelled but the data reaches the ingestion endpoint.\\n            // In Firefox, the request errors out with 'NS_BINDING_ABORT' state. Hence, add the event\\n            // to cancellable events to try with `sendBeacon` lastly.\\n            const timestamp = Date.now();\\n            if (this.metadata.browserName.toLowerCase() === 'firefox') {\\n                this.cancellableEvents.set(timestamp, batch);\\n            }\\n            try {\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - sending body ${body}`);\\n                const response = yield this.send(body);\\n                this.cancellableEvents.delete(timestamp);\\n                if (!response.ok) {\\n                    this.logger.error(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - Failed to send events ${body} with response status ${response.status}`);\\n                    failed = true;\\n                }\\n                else {\\n                    try {\\n                        const data = yield response.json();\\n                        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - send successful events: ${body} message: ${JSON.stringify(data)}`);\\n                    }\\n                    catch (err) {\\n                        /* istanbul ignore next */\\n                        this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEvents error reading OK response ${err} for events ${body}`);\\n                    }\\n                }\\n            }\\n            catch (error) {\\n                failed = true;\\n                this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - Error in sending events ${body} to the ingestion endpoint ${error}`);\\n            }\\n            finally {\\n                this.lock = false;\\n            }\\n            if (failed) {\\n                this.cancellableEvents.delete(timestamp);\\n                this.failedIngestionEvents.push(...batch);\\n            }\\n        });\\n        const userAgentParserResult = new DefaultUserAgentParser_1.default(logger).getParserResult();\\n        const { browserMajorVersion: _browserMajorVersion } = userAgentParserResult, clientMetadata = __rest(userAgentParserResult, [\\\"browserMajorVersion\\\"]);\\n        const _a = eventsClientConfiguration.toJSON(), { type, v } = _a, rest = __rest(_a, [\\\"type\\\", \\\"v\\\"]);\\n        this.authenticationToken = eventsClientConfiguration.getAuthenticationToken();\\n        this.metadata = Object.assign(Object.assign({}, clientMetadata), rest);\\n        Object.keys(this.metadata).forEach(key => this.attributesToFilter.push(key));\\n        this.type = type;\\n        this.v = v;\\n        this.ingestionURL = ingestionURL;\\n        this.logger = logger;\\n        this.importantEvents = new Set(importantEvents);\\n        const { maxBufferCapacityKb, totalBufferItems, flushSize, flushIntervalMs, retryCountLimit, } = eventBufferConfiguration;\\n        this.maxBufferCapacityBytes = maxBufferCapacityKb * 1024;\\n        this.totalBufferItems = totalBufferItems;\\n        this.maxBufferItemCapacityBytes = Math.round(this.maxBufferCapacityBytes / totalBufferItems);\\n        this.flushIntervalMs = flushIntervalMs;\\n        this.flushSize = flushSize;\\n        this.retryCountLimit = retryCountLimit;\\n        this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent();\\n        this.beaconEventListener = (e) => this.beaconEventHandler(e);\\n        this.addEventListeners();\\n    }\\n    addEventListeners() {\\n        if (!this.beaconEventListener ||\\n            !('window' in __webpack_require__.g) ||\\n            !window.addEventListener ||\\n            !('document' in __webpack_require__.g) ||\\n            !document.addEventListener) {\\n            return;\\n        }\\n        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addEventListeners - adding pagehide and visibility change event listeners`);\\n        window.addEventListener('pagehide', this.beaconEventListener);\\n        document.addEventListener('visibilitychange', this.beaconEventListener);\\n    }\\n    beaconEventHandler(e) {\\n        /* istanbul ignore else */\\n        if ((e.type === 'visibilitychange' && document.visibilityState === 'hidden') ||\\n            e.type === 'pagehide') {\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - beaconEventHandler is triggered calling sendBeacon`);\\n            this.sendBeacon();\\n        }\\n    }\\n    removeEventListeners() {\\n        if (!this.beaconEventListener ||\\n            !('window' in __webpack_require__.g) ||\\n            !window.removeEventListener ||\\n            !('document' in __webpack_require__.g) ||\\n            !document.removeEventListener) {\\n            return;\\n        }\\n        window.removeEventListener('pagehide', this.beaconEventListener);\\n        document.removeEventListener('visibilitychange', this.beaconEventListener);\\n        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - removeEventListeners - removing pagehide and visibility change event listeners`);\\n    }\\n    start() {\\n        var _a;\\n        this.removeEventListeners();\\n        this.addEventListeners();\\n        (_a = this.intervalScheduler) === null || _a === void 0 ? void 0 : _a.stop();\\n        this.intervalScheduler = new IntervalScheduler_1.default(this.flushIntervalMs);\\n        this.intervalScheduler.start(() => this.sendEvents());\\n    }\\n    stop() {\\n        var _a;\\n        (_a = this.intervalScheduler) === null || _a === void 0 ? void 0 : _a.stop();\\n        this.intervalScheduler = undefined;\\n        this.sendBeacon();\\n        this.removeEventListeners();\\n    }\\n    addItem(item) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - received event ${JSON.stringify(item)}`);\\n            const { name, ts, attributes } = item;\\n            // Filter out PII and redundant attributes.\\n            const filteredAttributes = attributes && this.filterAttributes(attributes, this.attributesToFilter);\\n            const event = Object.assign({ name, ts }, filteredAttributes);\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - event after filtering attributes ${JSON.stringify(event)}`);\\n            const size = this.getSize(event);\\n            if (size > InMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED) {\\n                throw new Error(`Event Reporting - Item to be added has size ${size} bytes. Item cannot exceed max item size allowed of ${InMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED} bytes.`);\\n            }\\n            if (this.importantEvents.has(name)) {\\n                // Send immediate events and asyncly retry.\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - sending important event ${JSON.stringify(event)}`);\\n                this.sendEventImmediately({ name, ts, attributes: filteredAttributes });\\n                return;\\n            }\\n            if (this.isFull()) {\\n                this.logger.warn('Event Reporting - Event buffer is full');\\n                throw new Error('Buffer full');\\n            }\\n            this.currentIngestionEvent.payloads.push(event);\\n            this.ingestionEventSize += size;\\n            if (this.bufferItemThresholdReached(size)) {\\n                const currentEvent = this.deepCopyCurrentIngestionEvent(this.currentIngestionEvent);\\n                this.buffer.push(currentEvent);\\n                this.bufferSize += this.ingestionEventSize;\\n                this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent();\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - buffer item threshold reached updated buffer ${JSON.stringify(this.buffer)}`);\\n            }\\n        });\\n    }\\n    filterAttributes(attributes, attributesToFilter) {\\n        const attributesToFilterSet = new Set(attributesToFilter);\\n        const keysToFilterOut = Object.keys(attributes).filter(key => attributesToFilterSet.has(key));\\n        keysToFilterOut.forEach(key => delete attributes[key]);\\n        return attributes;\\n    }\\n    initializeAndGetCurrentIngestionEvent() {\\n        const bufferItem = {\\n            type: this.type,\\n            v: this.v,\\n            payloads: [],\\n        };\\n        this.ingestionEventSize = this.getSize(bufferItem);\\n        return bufferItem;\\n    }\\n    bufferItemThresholdReached(size) {\\n        return (size + this.ingestionEventSize >= this.maxBufferItemCapacityBytes ||\\n            this.currentIngestionEvent.payloads.length === InMemoryJSONEventBuffer.MAX_PAYLOAD_ITEMS);\\n    }\\n    getSize(item) {\\n        let bytes = 0;\\n        if (typeof item === 'object') {\\n            for (const [key, value] of Object.entries(item)) {\\n                bytes += this.getPrimitiveSize(key);\\n                bytes += this.getSize(value);\\n            }\\n        }\\n        else {\\n            bytes += this.getPrimitiveSize(item);\\n        }\\n        return bytes;\\n    }\\n    getPrimitiveSize(item) {\\n        let bytes = 0;\\n        /* istanbul ignore else */\\n        if (typeof item === 'string') {\\n            bytes += item.length * 2;\\n        }\\n        else if (typeof item === 'number') {\\n            bytes += 8;\\n        }\\n        return bytes;\\n    }\\n    isFull() {\\n        return (this.bufferSize === this.maxBufferCapacityBytes ||\\n            this.buffer.length === this.totalBufferItems);\\n    }\\n    isEmpty() {\\n        return this.buffer.length === 0 || this.bufferSize === 0;\\n    }\\n    getItems(end, start = 0) {\\n        if (this.isEmpty()) {\\n            return [];\\n        }\\n        end = Math.min(this.buffer.length, end + 1);\\n        const items = this.buffer.splice(start, end);\\n        return items;\\n    }\\n    makeBeaconRequestBody(batchEvents) {\\n        const ingestionRecord = {\\n            metadata: this.metadata,\\n            events: batchEvents,\\n            authorization: this.authenticationToken,\\n        };\\n        return JSON.stringify(ingestionRecord);\\n    }\\n    makeRequestBody(batchEvents) {\\n        const ingestionRecord = {\\n            metadata: this.metadata,\\n            events: batchEvents,\\n        };\\n        return JSON.stringify(ingestionRecord);\\n    }\\n    sendEventImmediately(item) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - important event received ${JSON.stringify(item)}`);\\n            const { name, ts, attributes } = item;\\n            const event = {\\n                type: this.type,\\n                v: this.v,\\n                payloads: [\\n                    Object.assign({ name,\\n                        ts }, attributes),\\n                ],\\n            };\\n            let failed = false;\\n            let response = null;\\n            const body = this.makeRequestBody([event]);\\n            try {\\n                response = yield this.send(body);\\n                if (response.ok) {\\n                    try {\\n                        const data = yield response.json();\\n                        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - send successful event: ${body}, message: ${JSON.stringify(data)}`);\\n                    }\\n                    catch (err) {\\n                        /* istanbul ignore next */\\n                        this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - Error reading OK response ${err} for event ${body}`);\\n                    }\\n                    return;\\n                }\\n                else {\\n                    this.logger.error(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - Failed to send an important event ${body} with response status ${response.status}`);\\n                    failed = true;\\n                }\\n            }\\n            catch (error) {\\n                this.logger.warn(`Event Reporting - There may be a failure in sending an important event ${body} to the ingestion endpoint ${error}.`);\\n                failed = true;\\n                try {\\n                    /**\\n                     * Important events like meetingEnded, meetingStartFailed may result into page-redirects.\\n                     * In such a case, Firefox aborts the fetch request with 'NS_BINDING_ABORT' state.\\n                     * Chrome and Safari show fetch request as cancelled and the fetch failure is catched, but,\\n                     * events appear at ingestion backend. Chrome and Safari behavior is unreliable, but Firefox consistently fails,\\n                     * hence, we beacon data as a last resort when using Firefox.\\n                     * During the page-redirect, we do not have access to check fetch's response to handle Chrome and Safari behavior,\\n                     * hence, event ingestion may fail.\\n                     *\\n                     */\\n                    if (this.metadata.browserName.toLowerCase() === 'firefox') {\\n                        const body = this.makeBeaconRequestBody([event]);\\n                        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - beaconing data out ${body}`);\\n                        if (!navigator.sendBeacon(`${this.ingestionURL}?beacon=1`, body)) {\\n                            failed = true;\\n                        }\\n                        else {\\n                            failed = false;\\n                        }\\n                    }\\n                }\\n                catch (error) {\\n                    this.logger.warn(`Event Reporting - Error sending beacon for an important event ${body}`);\\n                    failed = true;\\n                }\\n            }\\n            /* istanbul ignore else */\\n            if (failed) {\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - pushing to failed events ${body}`);\\n                this.failedIngestionEvents.push(event);\\n            }\\n        });\\n    }\\n    send(data) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const backoff = new FullJitterBackoff_1.default(InMemoryJSONEventBuffer.RETRY_FIXED_BACKOFF_WAIT_MS, InMemoryJSONEventBuffer.RETRY_SHORT_BACKOFF_MS, InMemoryJSONEventBuffer.RETRY_LONG_BACKOFF_MS);\\n            try {\\n                let retryCount = 0;\\n                while (retryCount < this.retryCountLimit) {\\n                    const response = yield fetch(this.ingestionURL, {\\n                        method: 'POST',\\n                        headers: {\\n                            Authorization: `Bearer ${this.authenticationToken}`,\\n                        },\\n                        body: data,\\n                    });\\n                    if (response.ok || !InMemoryJSONEventBuffer.SENDING_FAILURE_CODES.has(response.status)) {\\n                        return response;\\n                    }\\n                    else {\\n                        this.logger.warn(`Will retry sending failure for ${data} due to status code ${response.status}.`);\\n                        retryCount++;\\n                        /* istanbul ignore else */\\n                        if (retryCount < this.retryCountLimit) {\\n                            const backoffTime = backoff.nextBackoffAmountMs();\\n                            yield Utils_1.wait(backoffTime);\\n                        }\\n                    }\\n                }\\n                /* istanbul ignore else */\\n                if (retryCount === this.retryCountLimit) {\\n                    throw new Error(`Retry count limit reached for ${data}`);\\n                }\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n        });\\n    }\\n    sendBeacon() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // Any pending events from buffer.\\n            const events = this.buffer;\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out buffer events ${JSON.stringify(events)}`);\\n            this.buffer = [];\\n            // Any pending event in current ingestion event.\\n            if (this.currentIngestionEvent.payloads.length > 0) {\\n                const clearCurrenIngestionEvent = this.deepCopyCurrentIngestionEvent(this.currentIngestionEvent);\\n                events.push(clearCurrenIngestionEvent);\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out current ingestion event ${JSON.stringify(clearCurrenIngestionEvent)}`);\\n                this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent();\\n            }\\n            // Any failed ingestion events which were sent before.\\n            if (this.failedIngestionEvents.length > 0) {\\n                const failedRecordsCopy = this.failedIngestionEvents.map(record => this.deepCopyCurrentIngestionEvent(record));\\n                events.push(...failedRecordsCopy);\\n                this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out any failed ingestion event ${JSON.stringify(failedRecordsCopy)}`);\\n                this.failedIngestionEvents = [];\\n            }\\n            // Any cancelled requests due to page-redirects.\\n            if (this.cancellableEvents.size > 0) {\\n                this.cancellableEvents.forEach(value => {\\n                    events.push(...value);\\n                    this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out each cancellable event ${JSON.stringify(value)}`);\\n                });\\n                this.cancellableEvents.clear();\\n            }\\n            if (events.length === 0) {\\n                return;\\n            }\\n            const beaconData = this.makeBeaconRequestBody(events);\\n            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - beacon data to send ${beaconData}`);\\n            try {\\n                /* istanbul ignore else */\\n                if (!navigator.sendBeacon(`${this.ingestionURL}?beacon=1`, beaconData)) {\\n                    this.logger.warn(`Event Reporting - Browser failed to queue beacon data ${beaconData}`);\\n                }\\n            }\\n            catch (error) {\\n                this.logger.warn(`Event Reporting - Sending beacon data ${beaconData} failed with error ${error}`);\\n            }\\n        });\\n    }\\n    reset() {\\n        this.maxBufferCapacityBytes = 0;\\n        this.totalBufferItems = 0;\\n        this.buffer = [];\\n        this.bufferSize = 0;\\n        this.maxBufferItemCapacityBytes = 0;\\n        this.ingestionEventSize = 0;\\n        this.flushIntervalMs = 0;\\n        this.flushSize = 0;\\n        this.failedIngestionEvents = [];\\n        this.lock = false;\\n        this.beaconEventListener = undefined;\\n        this.cancellableEvents.clear();\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.stop();\\n            this.reset();\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = InMemoryJSONEventBuffer;\\nInMemoryJSONEventBuffer.SENDING_FAILURE_CODES = new Set([\\n    408,\\n    429,\\n    500,\\n    502,\\n    503,\\n    504, // Gateway Timeout.\\n]);\\nInMemoryJSONEventBuffer.RETRY_FIXED_BACKOFF_WAIT_MS = 0;\\nInMemoryJSONEventBuffer.RETRY_SHORT_BACKOFF_MS = 1000;\\nInMemoryJSONEventBuffer.RETRY_LONG_BACKOFF_MS = 15000;\\nInMemoryJSONEventBuffer.MAX_PAYLOAD_ITEMS = 2;\\nInMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED = 3000;\\n//# sourceMappingURL=InMemoryJSONEventBuffer.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventbuffer/InMemoryJSONEventBuffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventbufferconfiguration/EventBufferConfiguration.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventbufferconfiguration/EventBufferConfiguration.js ***!\n  \\*****************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[EventBufferConfiguration]] contains necessary information to\\n * configure buffer.\\n */\\nclass EventBufferConfiguration {\\n    constructor(flushIntervalMs = 5000, flushSize = 2, maxBufferCapacityKb = 64, totalBufferItems = 100, retryCountLimit = 15) {\\n        this.flushIntervalMs = flushIntervalMs;\\n        this.flushSize = flushSize;\\n        this.maxBufferCapacityKb = maxBufferCapacityKb;\\n        this.totalBufferItems = totalBufferItems;\\n        this.retryCountLimit = retryCountLimit;\\n    }\\n}\\nexports[\\\"default\\\"] = EventBufferConfiguration;\\n//# sourceMappingURL=EventBufferConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventbufferconfiguration/EventBufferConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js ***!\n  \\******************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ua_parser_js_1 = __webpack_require__(/*! ua-parser-js */ \\\"./node_modules/ua-parser-js/src/ua-parser.js\\\");\\nconst Destroyable_1 = __webpack_require__(/*! ../destroyable/Destroyable */ \\\"./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js\\\");\\nconst EventIngestionConfiguration_1 = __webpack_require__(/*! ../eventingestionconfiguration/EventIngestionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventingestionconfiguration/EventIngestionConfiguration.js\\\");\\nconst DefaultMeetingEventReporter_1 = __webpack_require__(/*! ../eventreporter/DefaultMeetingEventReporter */ \\\"./node_modules/amazon-chime-sdk-js/build/eventreporter/DefaultMeetingEventReporter.js\\\");\\nconst MeetingEventsClientConfiguration_1 = __webpack_require__(/*! ../eventsclientconfiguration/MeetingEventsClientConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventsclientconfiguration/MeetingEventsClientConfiguration.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nconst flattenEventAttributes_1 = __webpack_require__(/*! ./flattenEventAttributes */ \\\"./node_modules/amazon-chime-sdk-js/build/eventcontroller/flattenEventAttributes.js\\\");\\nclass DefaultEventController {\\n    constructor(configuration, logger, eventReporter) {\\n        var _a, _b, _c, _d, _e, _f, _g;\\n        this.meetingHistoryStates = [];\\n        this.observerSet = new Set();\\n        this.destroyed = false;\\n        this.logger = logger;\\n        this.configuration = configuration;\\n        this.setupEventReporter(configuration, logger, eventReporter);\\n        try {\\n            this.parserResult =\\n                navigator && navigator.userAgent ? new ua_parser_js_1.UAParser(navigator.userAgent).getResult() : null;\\n        }\\n        catch (error) {\\n            // This seems to never happen with ua-parser-js in reality, even with malformed strings.\\n            /* istanbul ignore next */\\n            this.logger.error(error.message);\\n        }\\n        this.browserMajorVersion =\\n            ((_c = (_b = (_a = this.parserResult) === null || _a === void 0 ? void 0 : _a.browser) === null || _b === void 0 ? void 0 : _b.version) === null || _c === void 0 ? void 0 : _c.split('.')[0]) || DefaultEventController.UNAVAILABLE;\\n        this.browserName = ((_d = this.parserResult) === null || _d === void 0 ? void 0 : _d.browser.name) || DefaultEventController.UNAVAILABLE;\\n        this.browserVersion = ((_e = this.parserResult) === null || _e === void 0 ? void 0 : _e.browser.version) || DefaultEventController.UNAVAILABLE;\\n        this.deviceName =\\n            [((_f = this.parserResult) === null || _f === void 0 ? void 0 : _f.device.vendor) || '', ((_g = this.parserResult) === null || _g === void 0 ? void 0 : _g.device.model) || '']\\n                .join(' ')\\n                .trim() || DefaultEventController.UNAVAILABLE;\\n    }\\n    addObserver(observer) {\\n        this.observerSet.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.observerSet.delete(observer);\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerSet) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                /* istanbul ignore else */\\n                if (this.observerSet.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    publishEvent(name, attributes) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const timestampMs = Date.now();\\n            this.meetingHistoryStates.push({\\n                name,\\n                timestampMs,\\n            });\\n            // Make a single frozen copy of the event, reusing the object returned by\\n            // `getAttributes` to avoid copying too much.\\n            const eventAttributes = Object.freeze(Object.assign(this.getAttributes(timestampMs), attributes));\\n            // Publishes event to observers\\n            this.forEachObserver((observer) => {\\n                observer.eventDidReceive(name, eventAttributes);\\n            });\\n            // Reports event to the ingestion service\\n            this.reportEvent(name, timestampMs, attributes);\\n        });\\n    }\\n    reportEvent(name, timestampMs, attributes) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let flattenedAttributes;\\n            try {\\n                if (attributes) {\\n                    flattenedAttributes = flattenEventAttributes_1.default(attributes);\\n                }\\n                yield ((_a = this.eventReporter) === null || _a === void 0 ? void 0 : _a.reportEvent(timestampMs, name, flattenedAttributes));\\n            }\\n            catch (error) {\\n                /* istanbul ignore next */\\n                this.logger.error(`Error reporting event ${error}`);\\n            }\\n        });\\n    }\\n    setupEventReporter(configuration, logger, eventReporter) {\\n        if (eventReporter) {\\n            this._eventReporter = eventReporter;\\n        }\\n        else if (configuration.urls) {\\n            // Attempts to set up a event reporter using the meeting configuration if one is not provided\\n            const eventIngestionURL = configuration.urls.eventIngestionURL;\\n            if (eventIngestionURL) {\\n                this.logger.info(`Event ingestion URL is present in the configuration`);\\n                const { meetingId, credentials: { attendeeId, joinToken }, } = configuration;\\n                const meetingEventsClientConfiguration = new MeetingEventsClientConfiguration_1.default(meetingId, attendeeId, joinToken);\\n                const eventIngestionConfiguration = new EventIngestionConfiguration_1.default(meetingEventsClientConfiguration, eventIngestionURL);\\n                this._eventReporter = new DefaultMeetingEventReporter_1.default(eventIngestionConfiguration, logger);\\n            }\\n        }\\n    }\\n    getAttributes(timestampMs) {\\n        var _a, _b;\\n        return {\\n            attendeeId: this.configuration.credentials.attendeeId,\\n            browserMajorVersion: this.browserMajorVersion,\\n            browserName: this.browserName,\\n            browserVersion: this.browserVersion,\\n            deviceName: this.deviceName,\\n            externalMeetingId: typeof this.configuration.externalMeetingId === 'string'\\n                ? this.configuration.externalMeetingId\\n                : '',\\n            externalUserId: this.configuration.credentials.externalUserId,\\n            meetingHistory: this.meetingHistoryStates,\\n            meetingId: this.configuration.meetingId,\\n            osName: ((_a = this.parserResult) === null || _a === void 0 ? void 0 : _a.os.name) || DefaultEventController.UNAVAILABLE,\\n            osVersion: ((_b = this.parserResult) === null || _b === void 0 ? void 0 : _b.os.version) || DefaultEventController.UNAVAILABLE,\\n            sdkVersion: Versioning_1.default.sdkVersion,\\n            sdkName: Versioning_1.default.sdkName,\\n            timestampMs,\\n        };\\n    }\\n    get eventReporter() {\\n        return this._eventReporter;\\n    }\\n    /**\\n     * Clean up this instance and resources that it created.\\n     *\\n     * After calling `destroy`, internal fields like `eventReporter` will be unavailable.\\n     */\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (Destroyable_1.isDestroyable(this.eventReporter)) {\\n                yield this.eventReporter.destroy();\\n            }\\n            this.logger = undefined;\\n            this.configuration = undefined;\\n            this._eventReporter = undefined;\\n            this.destroyed = true;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultEventController;\\nDefaultEventController.UNAVAILABLE = 'Unavailable';\\n//# sourceMappingURL=DefaultEventController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventcontroller/flattenEventAttributes.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventcontroller/flattenEventAttributes.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n *\\n * @param attributes Event attributes to flatten.\\n * @returns flattened event attributes.\\n * Note: This function needs to be extended to support 'Array', 'object'\\n * as value types within the event attributes if added later.\\n */\\nconst flattenEventAttributes = (attributes) => {\\n    const flattenedAttributes = {};\\n    for (const [key, value] of Object.entries(attributes)) {\\n        if (value === null || value === undefined || value === '') {\\n            continue;\\n        }\\n        else if (typeof value === 'number' || typeof value === 'string') {\\n            flattenedAttributes[key] = value;\\n        }\\n        else {\\n            throw new TypeError('Unhandled type received while flattening attributes.');\\n        }\\n    }\\n    return flattenedAttributes;\\n};\\nexports[\\\"default\\\"] = flattenEventAttributes;\\n//# sourceMappingURL=flattenEventAttributes.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventcontroller/flattenEventAttributes.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventingestionconfiguration/EventIngestionConfiguration.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventingestionconfiguration/EventIngestionConfiguration.js ***!\n  \\***********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst EventBufferConfiguration_1 = __webpack_require__(/*! ../eventbufferconfiguration/EventBufferConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventbufferconfiguration/EventBufferConfiguration.js\\\");\\n/**\\n * [[EventIngestionConfiguration]] contains necessary information to\\n * report events to the ingestion service.\\n */\\nclass EventIngestionConfiguration {\\n    constructor(eventsClientConfiguration, ingestionURL, eventBufferConfiguration = new EventBufferConfiguration_1.default()) {\\n        this.eventsClientConfiguration = eventsClientConfiguration;\\n        this.ingestionURL = ingestionURL;\\n        this.eventBufferConfiguration = eventBufferConfiguration;\\n    }\\n}\\nexports[\\\"default\\\"] = EventIngestionConfiguration;\\n//# sourceMappingURL=EventIngestionConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventingestionconfiguration/EventIngestionConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventreporter/DefaultMeetingEventReporter.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventreporter/DefaultMeetingEventReporter.js ***!\n  \\*********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst Destroyable_1 = __webpack_require__(/*! ../destroyable/Destroyable */ \\\"./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js\\\");\\nconst InMemoryJSONEventBuffer_1 = __webpack_require__(/*! ../eventbuffer/InMemoryJSONEventBuffer */ \\\"./node_modules/amazon-chime-sdk-js/build/eventbuffer/InMemoryJSONEventBuffer.js\\\");\\nclass DefaultMeetingEventReporter {\\n    constructor(eventIngestionConfiguration, logger) {\\n        this.reportingEvents = false;\\n        this.importantEvents = [\\n            'meetingEnded',\\n            'meetingFailed',\\n            'meetingStartFailed',\\n            'audioInputFailed',\\n            'videoInputFailed',\\n            'meetingStartSucceeded',\\n        ];\\n        this.destroyed = false;\\n        const { eventsClientConfiguration, ingestionURL, eventBufferConfiguration, } = eventIngestionConfiguration;\\n        const { eventsToIgnore } = eventsClientConfiguration;\\n        this.eventBuffer = new InMemoryJSONEventBuffer_1.default(eventBufferConfiguration, eventsClientConfiguration, ingestionURL, this.importantEvents, logger);\\n        this.logger = logger;\\n        this.eventsToIgnore = eventsToIgnore;\\n        this.start();\\n    }\\n    start() {\\n        if (this.reportingEvents) {\\n            return;\\n        }\\n        try {\\n            this.eventBuffer.start();\\n            this.logger.info('Event reporting started');\\n            this.reportingEvents = true;\\n        }\\n        catch (error) {\\n            /* istanbul ignore next */\\n            this.logger.error(`Event Reporting - Error starting the event buffer ${error}`);\\n        }\\n    }\\n    stop() {\\n        if (!this.reportingEvents) {\\n            return;\\n        }\\n        try {\\n            this.eventBuffer.stop();\\n            this.logger.info('Event reporting stopped');\\n            this.reportingEvents = false;\\n        }\\n        catch (error) {\\n            /* istanbul ignore next */\\n            this.logger.error(`Event Reporting - Error stopping the event buffer ${error}`);\\n        }\\n    }\\n    reportEvent(ts, name, attributes) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.logger.debug(`Event Reporting - DefaultMeetingEventReporter - event received in reportEvent ${ts}, ${name}, ${JSON.stringify(attributes)}`);\\n            if (this.eventsToIgnore.includes(name)) {\\n                this.logger.debug(`Event Reporting - DefaultMeetingEventReporter - ${name} event will be ignored as it is in events to ignore`);\\n                return;\\n            }\\n            try {\\n                this.logger.debug(`Event Reporting - DefaultMeetingEventReporter - adding item to event buffer`);\\n                yield this.eventBuffer.addItem({ ts, name, attributes });\\n            }\\n            catch (error) {\\n                this.logger.error(`Event Reporting - Error adding event to buffer ${error}`);\\n            }\\n        });\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.destroyed = true;\\n            this.stop();\\n            /* istanbul ignore else */\\n            if (Destroyable_1.isDestroyable(this.eventBuffer)) {\\n                this.eventBuffer.destroy();\\n            }\\n            this.eventBuffer = undefined;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultMeetingEventReporter;\\n//# sourceMappingURL=DefaultMeetingEventReporter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventreporter/DefaultMeetingEventReporter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventreporter/NoOpEventReporter.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventreporter/NoOpEventReporter.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass NoOpEventReporter {\\n    constructor() { }\\n    reportEvent(_ts, _name, _attributes) {\\n        return;\\n    }\\n    start() { }\\n    stop() { }\\n}\\nexports[\\\"default\\\"] = NoOpEventReporter;\\n//# sourceMappingURL=NoOpEventReporter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventreporter/NoOpEventReporter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/eventsclientconfiguration/MeetingEventsClientConfiguration.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/eventsclientconfiguration/MeetingEventsClientConfiguration.js ***!\n  \\**************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingEventsClientConfiguration]] contains necessary information to\\n * report meeting events metadata to each event while sending events to the ingestion service.\\n */\\nclass MeetingEventsClientConfiguration {\\n    constructor(meetingId, attendeeId, authenticationToken, eventsToIgnore = []) {\\n        this.type = 'Meet';\\n        this.v = 1;\\n        this.meetingId = meetingId;\\n        this.attendeeId = attendeeId;\\n        this.eventsToIgnore = eventsToIgnore;\\n        this.authenticationToken = authenticationToken;\\n    }\\n    getAuthenticationToken() {\\n        return this.authenticationToken;\\n    }\\n    toJSON() {\\n        const attributes = {};\\n        attributes.type = this.type;\\n        attributes.v = this.v;\\n        attributes.meetingId = this.meetingId;\\n        attributes.attendeeId = this.attendeeId;\\n        return attributes;\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingEventsClientConfiguration;\\n//# sourceMappingURL=MeetingEventsClientConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/eventsclientconfiguration/MeetingEventsClientConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/index.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/index.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.DefaultEventController = exports.DefaultDevicePixelRatioMonitor = exports.DefaultDeviceController = exports.DefaultContentShareController = exports.DefaultBrowserBehavior = exports.DefaultAudioVideoFacade = exports.DefaultAudioVideoController = exports.DefaultAudioMixController = exports.DefaultActiveSpeakerPolicy = exports.DefaultActiveSpeakerDetector = exports.DataMessage = exports.CreateSDPTask = exports.CreatePeerConnectionTask = exports.ContentShareMediaStreamBroker = exports.ContentShareConstants = exports.ConsoleLogger = exports.ConnectionHealthPolicyConfiguration = exports.ConnectionHealthData = exports.ClientVideoStreamReceivingReport = exports.ClientMetricReportMediaType = exports.ClientMetricReportDirection = exports.ClientMetricReport = exports.CleanStoppedSessionTask = exports.CleanRestartedSessionTask = exports.CheckVideoInputFeedback = exports.CheckVideoConnectivityFeedback = exports.CheckNetworkUDPConnectivityFeedback = exports.CheckNetworkTCPConnectivityFeedback = exports.CheckContentShareConnectivityFeedback = exports.CheckCameraResolutionFeedback = exports.CheckAudioOutputFeedback = exports.CheckAudioInputFeedback = exports.CheckAudioConnectivityFeedback = exports.CanvasVideoFrameBuffer = exports.CSPMonitor = exports.BitrateParameters = exports.BaseTask = exports.BaseConnectionHealthPolicy = exports.BackgroundReplacementVideoFrameProcessor = exports.BackgroundFilterVideoFrameProcessor = exports.BackgroundBlurVideoFrameProcessor = exports.BackgroundBlurStrength = exports.AudioVideoControllerState = exports.AudioProfile = exports.AudioLogEvent = exports.Attendee = exports.AttachMediaInputTask = exports.AsyncScheduler = exports.ApplicationMetadata = exports.AllHighestVideoBandwidthPolicy = void 0;\\nexports.MeetingSessionCredentials = exports.MeetingSessionConfiguration = exports.MeetingReadinessCheckerConfiguration = exports.MeetingEventsClientConfiguration = exports.MediaDeviceProxyHandler = exports.Maybe = exports.LogLevel = exports.Log = exports.ListenForVolumeIndicatorsTask = exports.LeaveAndReceiveLeaveAckTask = exports.JoinAndReceiveIndexTask = exports.IntervalScheduler = exports.InMemoryJSONEventBuffer = exports.GlobalMetricReport = exports.GetUserMediaError = exports.FullJitterLimitedBackoff = exports.FullJitterBackoffFactory = exports.FullJitterBackoff = exports.FinishGatheringICECandidatesTask = exports.EventIngestionConfiguration = exports.EventBufferConfiguration = exports.DeviceSelection = exports.DevicePixelRatioWindowSource = exports.DefaultWebSocketAdapter = exports.DefaultVolumeIndicatorAdapter = exports.DefaultVideoTransformDevice = exports.DefaultVideoTileFactory = exports.DefaultVideoTileController = exports.DefaultVideoTile = exports.DefaultVideoStreamIndex = exports.DefaultVideoStreamIdSet = exports.DefaultVideoFrameProcessorPipeline = exports.DefaultVideoCaptureAndEncodeParameter = exports.DefaultUserAgentParser = exports.DefaultTranscriptionController = exports.DefaultTransceiverController = exports.DefaultSimulcastUplinkPolicyForContentShare = exports.DefaultSimulcastUplinkPolicy = exports.DefaultSignalingClient = exports.DefaultSigV4 = exports.DefaultSessionStateController = exports.DefaultReconnectController = exports.DefaultRealtimeController = exports.DefaultPingPong = exports.DefaultModality = exports.DefaultMessagingSession = exports.DefaultMeetingSession = exports.DefaultMeetingReadinessChecker = exports.DefaultMeetingEventReporter = exports.DefaultMediaDeviceFactory = void 0;\\nexports.SDPMediaSection = exports.SDPCandidateType = exports.SDP = exports.RunnableTask = exports.ReconnectionHealthPolicy = exports.ReceiveVideoStreamIndexTask = exports.ReceiveVideoInputTask = exports.ReceiveTURNCredentialsTask = exports.ReceiveAudioInputTask = exports.RealtimeVolumeIndicator = exports.RealtimeState = exports.RealtimeAttendeePositionInFrame = exports.PromoteToPrimaryMeetingTask = exports.PromiseQueue = exports.PrefetchSortBy = exports.PrefetchOn = exports.PermissionDeniedError = exports.ParallelGroupTask = exports.POSTLogger = exports.OverconstrainedError = exports.OpenSignalingConnectionTask = exports.OnceTask = exports.NotReadableError = exports.NotFoundError = exports.None = exports.NoVideoUplinkBandwidthPolicy = exports.NoVideoDownlinkBandwidthPolicy = exports.NoOpVideoFrameProcessor = exports.NoOpVideoElementFactory = exports.NoOpTask = exports.NoOpMediaStreamBroker = exports.NoOpLogger = exports.NoOpEventReporter = exports.NoOpDeviceController = exports.NoOpDebugLogger = exports.NoOpAudioVideoController = exports.NScaleVideoUplinkBandwidthPolicy = exports.MutableVideoPreferences = exports.MultiLogger = exports.MonitorTask = exports.ModelSpecBuilder = exports.MessagingSessionConfiguration = exports.Message = exports.MeetingSessionVideoAvailability = exports.MeetingSessionURLs = exports.MeetingSessionTURNCredentials = exports.MeetingSessionStatusCode = exports.MeetingSessionStatus = exports.MeetingSessionLifecycleEventCondition = exports.MeetingSessionLifecycleEvent = void 0;\\nexports.VideoQualitySettings = exports.VideoPriorityBasedPolicyConfig = exports.VideoPriorityBasedPolicy = exports.VideoPreferences = exports.VideoPreference = exports.VideoOnlyTransceiverController = exports.VideoLogEvent = exports.VideoCodecCapability = exports.VideoAdaptiveProbePolicy = exports.Versioning = exports.UnusableAudioWarningConnectionHealthPolicy = exports.TypeError = exports.TranscriptionStatusType = exports.TranscriptionStatus = exports.TranscriptResult = exports.TranscriptLanguageWithScore = exports.TranscriptItemType = exports.TranscriptItem = exports.TranscriptEntity = exports.TranscriptAlternative = exports.Transcript = exports.TimeoutTask = exports.TimeoutScheduler = exports.TaskStatus = exports.TargetDisplaySize = exports.SubscribeAndReceiveSubscribeAckTask = exports.StreamMetricReport = exports.Some = exports.SingleNodeAudioTransformDevice = exports.SimulcastVideoStreamIndex = exports.SimulcastTransceiverController = exports.SimulcastLayers = exports.SimulcastContentShareTransceiverController = exports.SignalingClientVideoSubscriptionConfiguration = exports.SignalingClientSubscribe = exports.SignalingClientJoin = exports.SignalingClientEventType = exports.SignalingClientEvent = exports.SignalingClientConnectionRequest = exports.SignalingAndMetricsConnectionMonitor = exports.SetRemoteDescriptionTask = exports.SetLocalDescriptionTask = exports.SessionStateControllerTransitionResult = exports.SessionStateControllerState = exports.SessionStateControllerDeferPriority = exports.SessionStateControllerAction = exports.ServerSideNetworkAdaption = exports.SerialGroupTask = exports.SendingAudioFailureConnectionHealthPolicy = exports.SendAndReceiveDataMessagesTask = void 0;\\nexports.isVideoTransformDevice = exports.isDestroyable = exports.isAudioTransformDevice = exports.ZLIBTextCompressor = exports.WebSocketReadyState = exports.WaitForAttendeePresenceTask = exports.VoiceFocusTransformDevice = exports.VoiceFocusDeviceTransformer = exports.VideoTileState = exports.VideoStreamDescription = exports.VideoSource = void 0;\\nconst AllHighestVideoBandwidthPolicy_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy.js\\\");\\nexports.AllHighestVideoBandwidthPolicy = AllHighestVideoBandwidthPolicy_1.default;\\nconst ApplicationMetadata_1 = __webpack_require__(/*! ./applicationmetadata/ApplicationMetadata */ \\\"./node_modules/amazon-chime-sdk-js/build/applicationmetadata/ApplicationMetadata.js\\\");\\nexports.ApplicationMetadata = ApplicationMetadata_1.default;\\nconst AsyncScheduler_1 = __webpack_require__(/*! ./scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nexports.AsyncScheduler = AsyncScheduler_1.default;\\nconst AttachMediaInputTask_1 = __webpack_require__(/*! ./task/AttachMediaInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/AttachMediaInputTask.js\\\");\\nexports.AttachMediaInputTask = AttachMediaInputTask_1.default;\\nconst Attendee_1 = __webpack_require__(/*! ./attendee/Attendee */ \\\"./node_modules/amazon-chime-sdk-js/build/attendee/Attendee.js\\\");\\nexports.Attendee = Attendee_1.default;\\nconst AudioLogEvent_1 = __webpack_require__(/*! ./statscollector/AudioLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js\\\");\\nexports.AudioLogEvent = AudioLogEvent_1.default;\\nconst AudioProfile_1 = __webpack_require__(/*! ./audioprofile/AudioProfile */ \\\"./node_modules/amazon-chime-sdk-js/build/audioprofile/AudioProfile.js\\\");\\nexports.AudioProfile = AudioProfile_1.default;\\nconst AudioVideoControllerState_1 = __webpack_require__(/*! ./audiovideocontroller/AudioVideoControllerState */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/AudioVideoControllerState.js\\\");\\nexports.AudioVideoControllerState = AudioVideoControllerState_1.default;\\nconst BackgroundBlurStrength_1 = __webpack_require__(/*! ./backgroundblurprocessor/BackgroundBlurStrength */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurStrength.js\\\");\\nexports.BackgroundBlurStrength = BackgroundBlurStrength_1.default;\\nconst BackgroundBlurVideoFrameProcessor_1 = __webpack_require__(/*! ./backgroundblurprocessor/BackgroundBlurVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/BackgroundBlurVideoFrameProcessor.js\\\");\\nexports.BackgroundBlurVideoFrameProcessor = BackgroundBlurVideoFrameProcessor_1.default;\\nconst BackgroundFilterVideoFrameProcessor_1 = __webpack_require__(/*! ./backgroundfilter/BackgroundFilterVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundfilter/BackgroundFilterVideoFrameProcessor.js\\\");\\nexports.BackgroundFilterVideoFrameProcessor = BackgroundFilterVideoFrameProcessor_1.default;\\nconst BackgroundReplacementVideoFrameProcessor_1 = __webpack_require__(/*! ./backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundreplacementprocessor/BackgroundReplacementVideoFrameProcessor.js\\\");\\nexports.BackgroundReplacementVideoFrameProcessor = BackgroundReplacementVideoFrameProcessor_1.default;\\nconst BaseConnectionHealthPolicy_1 = __webpack_require__(/*! ./connectionhealthpolicy/BaseConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/BaseConnectionHealthPolicy.js\\\");\\nexports.BaseConnectionHealthPolicy = BaseConnectionHealthPolicy_1.default;\\nconst BaseTask_1 = __webpack_require__(/*! ./task/BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nexports.BaseTask = BaseTask_1.default;\\nconst BitrateParameters_1 = __webpack_require__(/*! ./videouplinkbandwidthpolicy/BitrateParameters */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/BitrateParameters.js\\\");\\nexports.BitrateParameters = BitrateParameters_1.default;\\nconst CSPMonitor_1 = __webpack_require__(/*! ./cspmonitor/CSPMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js\\\");\\nexports.CSPMonitor = CSPMonitor_1.default;\\nconst CanvasVideoFrameBuffer_1 = __webpack_require__(/*! ./videoframeprocessor/CanvasVideoFrameBuffer */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js\\\");\\nexports.CanvasVideoFrameBuffer = CanvasVideoFrameBuffer_1.default;\\nconst CheckAudioConnectivityFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckAudioConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioConnectivityFeedback.js\\\");\\nexports.CheckAudioConnectivityFeedback = CheckAudioConnectivityFeedback_1.default;\\nconst CheckAudioInputFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckAudioInputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioInputFeedback.js\\\");\\nexports.CheckAudioInputFeedback = CheckAudioInputFeedback_1.default;\\nconst CheckAudioOutputFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckAudioOutputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioOutputFeedback.js\\\");\\nexports.CheckAudioOutputFeedback = CheckAudioOutputFeedback_1.default;\\nconst CheckCameraResolutionFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckCameraResolutionFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckCameraResolutionFeedback.js\\\");\\nexports.CheckCameraResolutionFeedback = CheckCameraResolutionFeedback_1.default;\\nconst CheckContentShareConnectivityFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckContentShareConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckContentShareConnectivityFeedback.js\\\");\\nexports.CheckContentShareConnectivityFeedback = CheckContentShareConnectivityFeedback_1.default;\\nconst CheckNetworkTCPConnectivityFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback.js\\\");\\nexports.CheckNetworkTCPConnectivityFeedback = CheckNetworkTCPConnectivityFeedback_1.default;\\nconst CheckNetworkUDPConnectivityFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback.js\\\");\\nexports.CheckNetworkUDPConnectivityFeedback = CheckNetworkUDPConnectivityFeedback_1.default;\\nconst CheckVideoConnectivityFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckVideoConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoConnectivityFeedback.js\\\");\\nexports.CheckVideoConnectivityFeedback = CheckVideoConnectivityFeedback_1.default;\\nconst CheckVideoInputFeedback_1 = __webpack_require__(/*! ./meetingreadinesschecker/CheckVideoInputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoInputFeedback.js\\\");\\nexports.CheckVideoInputFeedback = CheckVideoInputFeedback_1.default;\\nconst CleanRestartedSessionTask_1 = __webpack_require__(/*! ./task/CleanRestartedSessionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CleanRestartedSessionTask.js\\\");\\nexports.CleanRestartedSessionTask = CleanRestartedSessionTask_1.default;\\nconst CleanStoppedSessionTask_1 = __webpack_require__(/*! ./task/CleanStoppedSessionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CleanStoppedSessionTask.js\\\");\\nexports.CleanStoppedSessionTask = CleanStoppedSessionTask_1.default;\\nconst ClientMetricReport_1 = __webpack_require__(/*! ./clientmetricreport/ClientMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReport.js\\\");\\nexports.ClientMetricReport = ClientMetricReport_1.default;\\nconst ClientMetricReportDirection_1 = __webpack_require__(/*! ./clientmetricreport/ClientMetricReportDirection */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\\\");\\nexports.ClientMetricReportDirection = ClientMetricReportDirection_1.default;\\nconst ClientMetricReportMediaType_1 = __webpack_require__(/*! ./clientmetricreport/ClientMetricReportMediaType */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\\\");\\nexports.ClientMetricReportMediaType = ClientMetricReportMediaType_1.default;\\nconst ClientVideoStreamReceivingReport_1 = __webpack_require__(/*! ./clientmetricreport/ClientVideoStreamReceivingReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientVideoStreamReceivingReport.js\\\");\\nexports.ClientVideoStreamReceivingReport = ClientVideoStreamReceivingReport_1.default;\\nconst ConnectionHealthData_1 = __webpack_require__(/*! ./connectionhealthpolicy/ConnectionHealthData */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthData.js\\\");\\nexports.ConnectionHealthData = ConnectionHealthData_1.default;\\nconst ConnectionHealthPolicyConfiguration_1 = __webpack_require__(/*! ./connectionhealthpolicy/ConnectionHealthPolicyConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthPolicyConfiguration.js\\\");\\nexports.ConnectionHealthPolicyConfiguration = ConnectionHealthPolicyConfiguration_1.default;\\nconst ConsoleLogger_1 = __webpack_require__(/*! ./logger/ConsoleLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js\\\");\\nexports.ConsoleLogger = ConsoleLogger_1.default;\\nconst ContentShareConstants_1 = __webpack_require__(/*! ./contentsharecontroller/ContentShareConstants */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\\\");\\nexports.ContentShareConstants = ContentShareConstants_1.default;\\nconst ContentShareMediaStreamBroker_1 = __webpack_require__(/*! ./contentsharecontroller/ContentShareMediaStreamBroker */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareMediaStreamBroker.js\\\");\\nexports.ContentShareMediaStreamBroker = ContentShareMediaStreamBroker_1.default;\\nconst CreatePeerConnectionTask_1 = __webpack_require__(/*! ./task/CreatePeerConnectionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CreatePeerConnectionTask.js\\\");\\nexports.CreatePeerConnectionTask = CreatePeerConnectionTask_1.default;\\nconst CreateSDPTask_1 = __webpack_require__(/*! ./task/CreateSDPTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/CreateSDPTask.js\\\");\\nexports.CreateSDPTask = CreateSDPTask_1.default;\\nconst DataMessage_1 = __webpack_require__(/*! ./datamessage/DataMessage */ \\\"./node_modules/amazon-chime-sdk-js/build/datamessage/DataMessage.js\\\");\\nexports.DataMessage = DataMessage_1.default;\\nconst DefaultActiveSpeakerDetector_1 = __webpack_require__(/*! ./activespeakerdetector/DefaultActiveSpeakerDetector */ \\\"./node_modules/amazon-chime-sdk-js/build/activespeakerdetector/DefaultActiveSpeakerDetector.js\\\");\\nexports.DefaultActiveSpeakerDetector = DefaultActiveSpeakerDetector_1.default;\\nconst DefaultActiveSpeakerPolicy_1 = __webpack_require__(/*! ./activespeakerpolicy/DefaultActiveSpeakerPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/activespeakerpolicy/DefaultActiveSpeakerPolicy.js\\\");\\nexports.DefaultActiveSpeakerPolicy = DefaultActiveSpeakerPolicy_1.default;\\nconst DefaultAudioMixController_1 = __webpack_require__(/*! ./audiomixcontroller/DefaultAudioMixController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js\\\");\\nexports.DefaultAudioMixController = DefaultAudioMixController_1.default;\\nconst DefaultAudioVideoController_1 = __webpack_require__(/*! ./audiovideocontroller/DefaultAudioVideoController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js\\\");\\nexports.DefaultAudioVideoController = DefaultAudioVideoController_1.default;\\nconst DefaultAudioVideoFacade_1 = __webpack_require__(/*! ./audiovideofacade/DefaultAudioVideoFacade */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideofacade/DefaultAudioVideoFacade.js\\\");\\nexports.DefaultAudioVideoFacade = DefaultAudioVideoFacade_1.default;\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ./browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nexports.DefaultBrowserBehavior = DefaultBrowserBehavior_1.default;\\nconst DefaultContentShareController_1 = __webpack_require__(/*! ./contentsharecontroller/DefaultContentShareController */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/DefaultContentShareController.js\\\");\\nexports.DefaultContentShareController = DefaultContentShareController_1.default;\\nconst DefaultDeviceController_1 = __webpack_require__(/*! ./devicecontroller/DefaultDeviceController */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js\\\");\\nexports.DefaultDeviceController = DefaultDeviceController_1.default;\\nconst DefaultDevicePixelRatioMonitor_1 = __webpack_require__(/*! ./devicepixelratiomonitor/DefaultDevicePixelRatioMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/devicepixelratiomonitor/DefaultDevicePixelRatioMonitor.js\\\");\\nexports.DefaultDevicePixelRatioMonitor = DefaultDevicePixelRatioMonitor_1.default;\\nconst DefaultEventController_1 = __webpack_require__(/*! ./eventcontroller/DefaultEventController */ \\\"./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js\\\");\\nexports.DefaultEventController = DefaultEventController_1.default;\\nconst DefaultMediaDeviceFactory_1 = __webpack_require__(/*! ./mediadevicefactory/DefaultMediaDeviceFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/DefaultMediaDeviceFactory.js\\\");\\nexports.DefaultMediaDeviceFactory = DefaultMediaDeviceFactory_1.default;\\nconst DefaultMeetingEventReporter_1 = __webpack_require__(/*! ./eventreporter/DefaultMeetingEventReporter */ \\\"./node_modules/amazon-chime-sdk-js/build/eventreporter/DefaultMeetingEventReporter.js\\\");\\nexports.DefaultMeetingEventReporter = DefaultMeetingEventReporter_1.default;\\nconst DefaultMeetingReadinessChecker_1 = __webpack_require__(/*! ./meetingreadinesschecker/DefaultMeetingReadinessChecker */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/DefaultMeetingReadinessChecker.js\\\");\\nexports.DefaultMeetingReadinessChecker = DefaultMeetingReadinessChecker_1.default;\\nconst DefaultMeetingSession_1 = __webpack_require__(/*! ./meetingsession/DefaultMeetingSession */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/DefaultMeetingSession.js\\\");\\nexports.DefaultMeetingSession = DefaultMeetingSession_1.default;\\nconst DefaultMessagingSession_1 = __webpack_require__(/*! ./messagingsession/DefaultMessagingSession */ \\\"./node_modules/amazon-chime-sdk-js/build/messagingsession/DefaultMessagingSession.js\\\");\\nexports.DefaultMessagingSession = DefaultMessagingSession_1.default;\\nconst DefaultModality_1 = __webpack_require__(/*! ./modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nexports.DefaultModality = DefaultModality_1.default;\\nconst DefaultPingPong_1 = __webpack_require__(/*! ./pingpong/DefaultPingPong */ \\\"./node_modules/amazon-chime-sdk-js/build/pingpong/DefaultPingPong.js\\\");\\nexports.DefaultPingPong = DefaultPingPong_1.default;\\nconst DefaultRealtimeController_1 = __webpack_require__(/*! ./realtimecontroller/DefaultRealtimeController */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/DefaultRealtimeController.js\\\");\\nexports.DefaultRealtimeController = DefaultRealtimeController_1.default;\\nconst DefaultReconnectController_1 = __webpack_require__(/*! ./reconnectcontroller/DefaultReconnectController */ \\\"./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js\\\");\\nexports.DefaultReconnectController = DefaultReconnectController_1.default;\\nconst DefaultSessionStateController_1 = __webpack_require__(/*! ./sessionstatecontroller/DefaultSessionStateController */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/DefaultSessionStateController.js\\\");\\nexports.DefaultSessionStateController = DefaultSessionStateController_1.default;\\nconst DefaultSigV4_1 = __webpack_require__(/*! ./sigv4/DefaultSigV4 */ \\\"./node_modules/amazon-chime-sdk-js/build/sigv4/DefaultSigV4.js\\\");\\nexports.DefaultSigV4 = DefaultSigV4_1.default;\\nconst DefaultSignalingClient_1 = __webpack_require__(/*! ./signalingclient/DefaultSignalingClient */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/DefaultSignalingClient.js\\\");\\nexports.DefaultSignalingClient = DefaultSignalingClient_1.default;\\nconst DefaultSimulcastUplinkPolicy_1 = __webpack_require__(/*! ./videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.js\\\");\\nexports.DefaultSimulcastUplinkPolicy = DefaultSimulcastUplinkPolicy_1.default;\\nconst DefaultSimulcastUplinkPolicyForContentShare_1 = __webpack_require__(/*! ./videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare.js\\\");\\nexports.DefaultSimulcastUplinkPolicyForContentShare = DefaultSimulcastUplinkPolicyForContentShare_1.default;\\nconst DefaultTransceiverController_1 = __webpack_require__(/*! ./transceivercontroller/DefaultTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js\\\");\\nexports.DefaultTransceiverController = DefaultTransceiverController_1.default;\\nconst DefaultTranscriptionController_1 = __webpack_require__(/*! ./transcript/DefaultTranscriptionController */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/DefaultTranscriptionController.js\\\");\\nexports.DefaultTranscriptionController = DefaultTranscriptionController_1.default;\\nconst DefaultUserAgentParser_1 = __webpack_require__(/*! ./useragentparser/DefaultUserAgentParser */ \\\"./node_modules/amazon-chime-sdk-js/build/useragentparser/DefaultUserAgentParser.js\\\");\\nexports.DefaultUserAgentParser = DefaultUserAgentParser_1.default;\\nconst DefaultVideoCaptureAndEncodeParameter_1 = __webpack_require__(/*! ./videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter */ \\\"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\\\");\\nexports.DefaultVideoCaptureAndEncodeParameter = DefaultVideoCaptureAndEncodeParameter_1.default;\\nconst DefaultVideoFrameProcessorPipeline_1 = __webpack_require__(/*! ./videoframeprocessor/DefaultVideoFrameProcessorPipeline */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoFrameProcessorPipeline.js\\\");\\nexports.DefaultVideoFrameProcessorPipeline = DefaultVideoFrameProcessorPipeline_1.default;\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ./videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\nexports.DefaultVideoStreamIdSet = DefaultVideoStreamIdSet_1.default;\\nconst DefaultVideoStreamIndex_1 = __webpack_require__(/*! ./videostreamindex/DefaultVideoStreamIndex */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js\\\");\\nexports.DefaultVideoStreamIndex = DefaultVideoStreamIndex_1.default;\\nconst DefaultVideoTile_1 = __webpack_require__(/*! ./videotile/DefaultVideoTile */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js\\\");\\nexports.DefaultVideoTile = DefaultVideoTile_1.default;\\nconst DefaultVideoTileController_1 = __webpack_require__(/*! ./videotilecontroller/DefaultVideoTileController */ \\\"./node_modules/amazon-chime-sdk-js/build/videotilecontroller/DefaultVideoTileController.js\\\");\\nexports.DefaultVideoTileController = DefaultVideoTileController_1.default;\\nconst DefaultVideoTileFactory_1 = __webpack_require__(/*! ./videotilefactory/DefaultVideoTileFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/videotilefactory/DefaultVideoTileFactory.js\\\");\\nexports.DefaultVideoTileFactory = DefaultVideoTileFactory_1.default;\\nconst DefaultVideoTransformDevice_1 = __webpack_require__(/*! ./videoframeprocessor/DefaultVideoTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoTransformDevice.js\\\");\\nexports.DefaultVideoTransformDevice = DefaultVideoTransformDevice_1.default;\\nconst DefaultVolumeIndicatorAdapter_1 = __webpack_require__(/*! ./volumeindicatoradapter/DefaultVolumeIndicatorAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/volumeindicatoradapter/DefaultVolumeIndicatorAdapter.js\\\");\\nexports.DefaultVolumeIndicatorAdapter = DefaultVolumeIndicatorAdapter_1.default;\\nconst DefaultWebSocketAdapter_1 = __webpack_require__(/*! ./websocketadapter/DefaultWebSocketAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js\\\");\\nexports.DefaultWebSocketAdapter = DefaultWebSocketAdapter_1.default;\\nconst DevicePixelRatioWindowSource_1 = __webpack_require__(/*! ./devicepixelratiosource/DevicePixelRatioWindowSource */ \\\"./node_modules/amazon-chime-sdk-js/build/devicepixelratiosource/DevicePixelRatioWindowSource.js\\\");\\nexports.DevicePixelRatioWindowSource = DevicePixelRatioWindowSource_1.default;\\nconst DeviceSelection_1 = __webpack_require__(/*! ./devicecontroller/DeviceSelection */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DeviceSelection.js\\\");\\nexports.DeviceSelection = DeviceSelection_1.default;\\nconst EventBufferConfiguration_1 = __webpack_require__(/*! ./eventbufferconfiguration/EventBufferConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventbufferconfiguration/EventBufferConfiguration.js\\\");\\nexports.EventBufferConfiguration = EventBufferConfiguration_1.default;\\nconst EventIngestionConfiguration_1 = __webpack_require__(/*! ./eventingestionconfiguration/EventIngestionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventingestionconfiguration/EventIngestionConfiguration.js\\\");\\nexports.EventIngestionConfiguration = EventIngestionConfiguration_1.default;\\nconst FinishGatheringICECandidatesTask_1 = __webpack_require__(/*! ./task/FinishGatheringICECandidatesTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/FinishGatheringICECandidatesTask.js\\\");\\nexports.FinishGatheringICECandidatesTask = FinishGatheringICECandidatesTask_1.default;\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ./backoff/FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nexports.FullJitterBackoff = FullJitterBackoff_1.default;\\nconst FullJitterBackoffFactory_1 = __webpack_require__(/*! ./backoff/FullJitterBackoffFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoffFactory.js\\\");\\nexports.FullJitterBackoffFactory = FullJitterBackoffFactory_1.default;\\nconst FullJitterLimitedBackoff_1 = __webpack_require__(/*! ./backoff/FullJitterLimitedBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterLimitedBackoff.js\\\");\\nexports.FullJitterLimitedBackoff = FullJitterLimitedBackoff_1.default;\\nconst GetUserMediaError_1 = __webpack_require__(/*! ./devicecontroller/GetUserMediaError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/GetUserMediaError.js\\\");\\nexports.GetUserMediaError = GetUserMediaError_1.default;\\nconst GlobalMetricReport_1 = __webpack_require__(/*! ./clientmetricreport/GlobalMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/GlobalMetricReport.js\\\");\\nexports.GlobalMetricReport = GlobalMetricReport_1.default;\\nconst InMemoryJSONEventBuffer_1 = __webpack_require__(/*! ./eventbuffer/InMemoryJSONEventBuffer */ \\\"./node_modules/amazon-chime-sdk-js/build/eventbuffer/InMemoryJSONEventBuffer.js\\\");\\nexports.InMemoryJSONEventBuffer = InMemoryJSONEventBuffer_1.default;\\nconst IntervalScheduler_1 = __webpack_require__(/*! ./scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nexports.IntervalScheduler = IntervalScheduler_1.default;\\nconst JoinAndReceiveIndexTask_1 = __webpack_require__(/*! ./task/JoinAndReceiveIndexTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/JoinAndReceiveIndexTask.js\\\");\\nexports.JoinAndReceiveIndexTask = JoinAndReceiveIndexTask_1.default;\\nconst LeaveAndReceiveLeaveAckTask_1 = __webpack_require__(/*! ./task/LeaveAndReceiveLeaveAckTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/LeaveAndReceiveLeaveAckTask.js\\\");\\nexports.LeaveAndReceiveLeaveAckTask = LeaveAndReceiveLeaveAckTask_1.default;\\nconst ListenForVolumeIndicatorsTask_1 = __webpack_require__(/*! ./task/ListenForVolumeIndicatorsTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ListenForVolumeIndicatorsTask.js\\\");\\nexports.ListenForVolumeIndicatorsTask = ListenForVolumeIndicatorsTask_1.default;\\nconst Log_1 = __webpack_require__(/*! ./logger/Log */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/Log.js\\\");\\nexports.Log = Log_1.default;\\nconst LogLevel_1 = __webpack_require__(/*! ./logger/LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nexports.LogLevel = LogLevel_1.default;\\nconst MediaDeviceProxyHandler_1 = __webpack_require__(/*! ./mediadevicefactory/MediaDeviceProxyHandler */ \\\"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/MediaDeviceProxyHandler.js\\\");\\nexports.MediaDeviceProxyHandler = MediaDeviceProxyHandler_1.default;\\nconst MeetingEventsClientConfiguration_1 = __webpack_require__(/*! ./eventsclientconfiguration/MeetingEventsClientConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/eventsclientconfiguration/MeetingEventsClientConfiguration.js\\\");\\nexports.MeetingEventsClientConfiguration = MeetingEventsClientConfiguration_1.default;\\nconst MeetingReadinessCheckerConfiguration_1 = __webpack_require__(/*! ./meetingreadinesschecker/MeetingReadinessCheckerConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/MeetingReadinessCheckerConfiguration.js\\\");\\nexports.MeetingReadinessCheckerConfiguration = MeetingReadinessCheckerConfiguration_1.default;\\nconst MeetingSessionConfiguration_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js\\\");\\nexports.MeetingSessionConfiguration = MeetingSessionConfiguration_1.default;\\nconst MeetingSessionCredentials_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js\\\");\\nexports.MeetingSessionCredentials = MeetingSessionCredentials_1.default;\\nconst MeetingSessionLifecycleEvent_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionLifecycleEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEvent.js\\\");\\nexports.MeetingSessionLifecycleEvent = MeetingSessionLifecycleEvent_1.default;\\nconst MeetingSessionLifecycleEventCondition_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionLifecycleEventCondition */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEventCondition.js\\\");\\nexports.MeetingSessionLifecycleEventCondition = MeetingSessionLifecycleEventCondition_1.default;\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nexports.MeetingSessionStatus = MeetingSessionStatus_1.default;\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nexports.MeetingSessionStatusCode = MeetingSessionStatusCode_1.default;\\nconst MeetingSessionTURNCredentials_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionTURNCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js\\\");\\nexports.MeetingSessionTURNCredentials = MeetingSessionTURNCredentials_1.default;\\nconst MeetingSessionURLs_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionURLs */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js\\\");\\nexports.MeetingSessionURLs = MeetingSessionURLs_1.default;\\nconst MeetingSessionVideoAvailability_1 = __webpack_require__(/*! ./meetingsession/MeetingSessionVideoAvailability */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js\\\");\\nexports.MeetingSessionVideoAvailability = MeetingSessionVideoAvailability_1.default;\\nconst Message_1 = __webpack_require__(/*! ./message/Message */ \\\"./node_modules/amazon-chime-sdk-js/build/message/Message.js\\\");\\nexports.Message = Message_1.default;\\nconst MessagingSessionConfiguration_1 = __webpack_require__(/*! ./messagingsession/MessagingSessionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/messagingsession/MessagingSessionConfiguration.js\\\");\\nexports.MessagingSessionConfiguration = MessagingSessionConfiguration_1.default;\\nconst ModelSpecBuilder_1 = __webpack_require__(/*! ./backgroundblurprocessor/ModelSpecBuilder */ \\\"./node_modules/amazon-chime-sdk-js/build/backgroundblurprocessor/ModelSpecBuilder.js\\\");\\nexports.ModelSpecBuilder = ModelSpecBuilder_1.default;\\nconst MonitorTask_1 = __webpack_require__(/*! ./task/MonitorTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/MonitorTask.js\\\");\\nexports.MonitorTask = MonitorTask_1.default;\\nconst MultiLogger_1 = __webpack_require__(/*! ./logger/MultiLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/MultiLogger.js\\\");\\nexports.MultiLogger = MultiLogger_1.default;\\nconst NScaleVideoUplinkBandwidthPolicy_1 = __webpack_require__(/*! ./videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy.js\\\");\\nexports.NScaleVideoUplinkBandwidthPolicy = NScaleVideoUplinkBandwidthPolicy_1.default;\\nconst NoOpAudioVideoController_1 = __webpack_require__(/*! ./audiovideocontroller/NoOpAudioVideoController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/NoOpAudioVideoController.js\\\");\\nexports.NoOpAudioVideoController = NoOpAudioVideoController_1.default;\\nconst NoOpDebugLogger_1 = __webpack_require__(/*! ./logger/NoOpDebugLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/NoOpDebugLogger.js\\\");\\nexports.NoOpDebugLogger = NoOpDebugLogger_1.default;\\nconst NoOpDeviceController_1 = __webpack_require__(/*! ./devicecontroller/NoOpDeviceController */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NoOpDeviceController.js\\\");\\nexports.NoOpDeviceController = NoOpDeviceController_1.default;\\nconst NoOpEventReporter_1 = __webpack_require__(/*! ./eventreporter/NoOpEventReporter */ \\\"./node_modules/amazon-chime-sdk-js/build/eventreporter/NoOpEventReporter.js\\\");\\nexports.NoOpEventReporter = NoOpEventReporter_1.default;\\nconst NoOpLogger_1 = __webpack_require__(/*! ./logger/NoOpLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/NoOpLogger.js\\\");\\nexports.NoOpLogger = NoOpLogger_1.default;\\nconst NoOpMediaStreamBroker_1 = __webpack_require__(/*! ./mediastreambroker/NoOpMediaStreamBroker */ \\\"./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js\\\");\\nexports.NoOpMediaStreamBroker = NoOpMediaStreamBroker_1.default;\\nconst NoOpTask_1 = __webpack_require__(/*! ./task/NoOpTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/NoOpTask.js\\\");\\nexports.NoOpTask = NoOpTask_1.default;\\nconst NoOpVideoElementFactory_1 = __webpack_require__(/*! ./videoelementfactory/NoOpVideoElementFactory */ \\\"./node_modules/amazon-chime-sdk-js/build/videoelementfactory/NoOpVideoElementFactory.js\\\");\\nexports.NoOpVideoElementFactory = NoOpVideoElementFactory_1.default;\\nconst NoOpVideoFrameProcessor_1 = __webpack_require__(/*! ./videoframeprocessor/NoOpVideoFrameProcessor */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js\\\");\\nexports.NoOpVideoFrameProcessor = NoOpVideoFrameProcessor_1.default;\\nconst NoVideoDownlinkBandwidthPolicy_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/NoVideoDownlinkBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/NoVideoDownlinkBandwidthPolicy.js\\\");\\nexports.NoVideoDownlinkBandwidthPolicy = NoVideoDownlinkBandwidthPolicy_1.default;\\nconst NoVideoUplinkBandwidthPolicy_1 = __webpack_require__(/*! ./videouplinkbandwidthpolicy/NoVideoUplinkBandwidthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NoVideoUplinkBandwidthPolicy.js\\\");\\nexports.NoVideoUplinkBandwidthPolicy = NoVideoUplinkBandwidthPolicy_1.default;\\nconst NotFoundError_1 = __webpack_require__(/*! ./devicecontroller/NotFoundError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotFoundError.js\\\");\\nexports.NotFoundError = NotFoundError_1.default;\\nconst NotReadableError_1 = __webpack_require__(/*! ./devicecontroller/NotReadableError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/NotReadableError.js\\\");\\nexports.NotReadableError = NotReadableError_1.default;\\nconst OnceTask_1 = __webpack_require__(/*! ./task/OnceTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/OnceTask.js\\\");\\nexports.OnceTask = OnceTask_1.default;\\nconst OpenSignalingConnectionTask_1 = __webpack_require__(/*! ./task/OpenSignalingConnectionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/OpenSignalingConnectionTask.js\\\");\\nexports.OpenSignalingConnectionTask = OpenSignalingConnectionTask_1.default;\\nconst OverconstrainedError_1 = __webpack_require__(/*! ./devicecontroller/OverconstrainedError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/OverconstrainedError.js\\\");\\nexports.OverconstrainedError = OverconstrainedError_1.default;\\nconst POSTLogger_1 = __webpack_require__(/*! ./logger/POSTLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/POSTLogger.js\\\");\\nexports.POSTLogger = POSTLogger_1.default;\\nconst ParallelGroupTask_1 = __webpack_require__(/*! ./task/ParallelGroupTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ParallelGroupTask.js\\\");\\nexports.ParallelGroupTask = ParallelGroupTask_1.default;\\nconst PermissionDeniedError_1 = __webpack_require__(/*! ./devicecontroller/PermissionDeniedError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js\\\");\\nexports.PermissionDeniedError = PermissionDeniedError_1.default;\\nconst PrefetchOn_1 = __webpack_require__(/*! ./messagingsession/PrefetchOn */ \\\"./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchOn.js\\\");\\nexports.PrefetchOn = PrefetchOn_1.default;\\nconst PrefetchSortBy_1 = __webpack_require__(/*! ./messagingsession/PrefetchSortBy */ \\\"./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchSortBy.js\\\");\\nexports.PrefetchSortBy = PrefetchSortBy_1.default;\\nconst PromiseQueue_1 = __webpack_require__(/*! ./utils/PromiseQueue */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/PromiseQueue.js\\\");\\nexports.PromiseQueue = PromiseQueue_1.default;\\nconst PromoteToPrimaryMeetingTask_1 = __webpack_require__(/*! ./task/PromoteToPrimaryMeetingTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/PromoteToPrimaryMeetingTask.js\\\");\\nexports.PromoteToPrimaryMeetingTask = PromoteToPrimaryMeetingTask_1.default;\\nconst RealtimeAttendeePositionInFrame_1 = __webpack_require__(/*! ./realtimecontroller/RealtimeAttendeePositionInFrame */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeAttendeePositionInFrame.js\\\");\\nexports.RealtimeAttendeePositionInFrame = RealtimeAttendeePositionInFrame_1.default;\\nconst RealtimeState_1 = __webpack_require__(/*! ./realtimecontroller/RealtimeState */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeState.js\\\");\\nexports.RealtimeState = RealtimeState_1.default;\\nconst RealtimeVolumeIndicator_1 = __webpack_require__(/*! ./realtimecontroller/RealtimeVolumeIndicator */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeVolumeIndicator.js\\\");\\nexports.RealtimeVolumeIndicator = RealtimeVolumeIndicator_1.default;\\nconst ReceiveAudioInputTask_1 = __webpack_require__(/*! ./task/ReceiveAudioInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveAudioInputTask.js\\\");\\nexports.ReceiveAudioInputTask = ReceiveAudioInputTask_1.default;\\nconst ReceiveTURNCredentialsTask_1 = __webpack_require__(/*! ./task/ReceiveTURNCredentialsTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveTURNCredentialsTask.js\\\");\\nexports.ReceiveTURNCredentialsTask = ReceiveTURNCredentialsTask_1.default;\\nconst ReceiveVideoInputTask_1 = __webpack_require__(/*! ./task/ReceiveVideoInputTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoInputTask.js\\\");\\nexports.ReceiveVideoInputTask = ReceiveVideoInputTask_1.default;\\nconst ReceiveVideoStreamIndexTask_1 = __webpack_require__(/*! ./task/ReceiveVideoStreamIndexTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoStreamIndexTask.js\\\");\\nexports.ReceiveVideoStreamIndexTask = ReceiveVideoStreamIndexTask_1.default;\\nconst ReconnectionHealthPolicy_1 = __webpack_require__(/*! ./connectionhealthpolicy/ReconnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ReconnectionHealthPolicy.js\\\");\\nexports.ReconnectionHealthPolicy = ReconnectionHealthPolicy_1.default;\\nconst RunnableTask_1 = __webpack_require__(/*! ./task/RunnableTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/RunnableTask.js\\\");\\nexports.RunnableTask = RunnableTask_1.default;\\nconst SDP_1 = __webpack_require__(/*! ./sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nexports.SDP = SDP_1.default;\\nconst SDPCandidateType_1 = __webpack_require__(/*! ./sdp/SDPCandidateType */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDPCandidateType.js\\\");\\nexports.SDPCandidateType = SDPCandidateType_1.default;\\nconst SDPMediaSection_1 = __webpack_require__(/*! ./sdp/SDPMediaSection */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDPMediaSection.js\\\");\\nexports.SDPMediaSection = SDPMediaSection_1.default;\\nconst SendAndReceiveDataMessagesTask_1 = __webpack_require__(/*! ./task/SendAndReceiveDataMessagesTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SendAndReceiveDataMessagesTask.js\\\");\\nexports.SendAndReceiveDataMessagesTask = SendAndReceiveDataMessagesTask_1.default;\\nconst SendingAudioFailureConnectionHealthPolicy_1 = __webpack_require__(/*! ./connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy.js\\\");\\nexports.SendingAudioFailureConnectionHealthPolicy = SendingAudioFailureConnectionHealthPolicy_1.default;\\nconst SerialGroupTask_1 = __webpack_require__(/*! ./task/SerialGroupTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SerialGroupTask.js\\\");\\nexports.SerialGroupTask = SerialGroupTask_1.default;\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ./signalingclient/ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\nexports.ServerSideNetworkAdaption = ServerSideNetworkAdaption_1.default;\\nconst SessionStateControllerAction_1 = __webpack_require__(/*! ./sessionstatecontroller/SessionStateControllerAction */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js\\\");\\nexports.SessionStateControllerAction = SessionStateControllerAction_1.default;\\nconst SessionStateControllerDeferPriority_1 = __webpack_require__(/*! ./sessionstatecontroller/SessionStateControllerDeferPriority */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerDeferPriority.js\\\");\\nexports.SessionStateControllerDeferPriority = SessionStateControllerDeferPriority_1.default;\\nconst SessionStateControllerState_1 = __webpack_require__(/*! ./sessionstatecontroller/SessionStateControllerState */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js\\\");\\nexports.SessionStateControllerState = SessionStateControllerState_1.default;\\nconst SessionStateControllerTransitionResult_1 = __webpack_require__(/*! ./sessionstatecontroller/SessionStateControllerTransitionResult */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js\\\");\\nexports.SessionStateControllerTransitionResult = SessionStateControllerTransitionResult_1.default;\\nconst SetLocalDescriptionTask_1 = __webpack_require__(/*! ./task/SetLocalDescriptionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SetLocalDescriptionTask.js\\\");\\nexports.SetLocalDescriptionTask = SetLocalDescriptionTask_1.default;\\nconst SetRemoteDescriptionTask_1 = __webpack_require__(/*! ./task/SetRemoteDescriptionTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SetRemoteDescriptionTask.js\\\");\\nexports.SetRemoteDescriptionTask = SetRemoteDescriptionTask_1.default;\\nconst SignalingAndMetricsConnectionMonitor_1 = __webpack_require__(/*! ./connectionmonitor/SignalingAndMetricsConnectionMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionmonitor/SignalingAndMetricsConnectionMonitor.js\\\");\\nexports.SignalingAndMetricsConnectionMonitor = SignalingAndMetricsConnectionMonitor_1.default;\\nconst SignalingClientConnectionRequest_1 = __webpack_require__(/*! ./signalingclient/SignalingClientConnectionRequest */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientConnectionRequest.js\\\");\\nexports.SignalingClientConnectionRequest = SignalingClientConnectionRequest_1.default;\\nconst SignalingClientEvent_1 = __webpack_require__(/*! ./signalingclient/SignalingClientEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEvent.js\\\");\\nexports.SignalingClientEvent = SignalingClientEvent_1.default;\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ./signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nexports.SignalingClientEventType = SignalingClientEventType_1.default;\\nconst SignalingClientJoin_1 = __webpack_require__(/*! ./signalingclient/SignalingClientJoin */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientJoin.js\\\");\\nexports.SignalingClientJoin = SignalingClientJoin_1.default;\\nconst SignalingClientSubscribe_1 = __webpack_require__(/*! ./signalingclient/SignalingClientSubscribe */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientSubscribe.js\\\");\\nexports.SignalingClientSubscribe = SignalingClientSubscribe_1.default;\\nconst SignalingClientVideoSubscriptionConfiguration_1 = __webpack_require__(/*! ./signalingclient/SignalingClientVideoSubscriptionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js\\\");\\nexports.SignalingClientVideoSubscriptionConfiguration = SignalingClientVideoSubscriptionConfiguration_1.default;\\nconst SimulcastContentShareTransceiverController_1 = __webpack_require__(/*! ./transceivercontroller/SimulcastContentShareTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js\\\");\\nexports.SimulcastContentShareTransceiverController = SimulcastContentShareTransceiverController_1.default;\\nconst SimulcastLayers_1 = __webpack_require__(/*! ./simulcastlayers/SimulcastLayers */ \\\"./node_modules/amazon-chime-sdk-js/build/simulcastlayers/SimulcastLayers.js\\\");\\nexports.SimulcastLayers = SimulcastLayers_1.default;\\nconst SimulcastTransceiverController_1 = __webpack_require__(/*! ./transceivercontroller/SimulcastTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js\\\");\\nexports.SimulcastTransceiverController = SimulcastTransceiverController_1.default;\\nconst SimulcastVideoStreamIndex_1 = __webpack_require__(/*! ./videostreamindex/SimulcastVideoStreamIndex */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/SimulcastVideoStreamIndex.js\\\");\\nexports.SimulcastVideoStreamIndex = SimulcastVideoStreamIndex_1.default;\\nconst SingleNodeAudioTransformDevice_1 = __webpack_require__(/*! ./devicecontroller/SingleNodeAudioTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/SingleNodeAudioTransformDevice.js\\\");\\nexports.SingleNodeAudioTransformDevice = SingleNodeAudioTransformDevice_1.default;\\nconst StreamMetricReport_1 = __webpack_require__(/*! ./clientmetricreport/StreamMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/StreamMetricReport.js\\\");\\nexports.StreamMetricReport = StreamMetricReport_1.default;\\nconst SubscribeAndReceiveSubscribeAckTask_1 = __webpack_require__(/*! ./task/SubscribeAndReceiveSubscribeAckTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/SubscribeAndReceiveSubscribeAckTask.js\\\");\\nexports.SubscribeAndReceiveSubscribeAckTask = SubscribeAndReceiveSubscribeAckTask_1.default;\\nconst TargetDisplaySize_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/TargetDisplaySize */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js\\\");\\nexports.TargetDisplaySize = TargetDisplaySize_1.default;\\nconst TaskStatus_1 = __webpack_require__(/*! ./task/TaskStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js\\\");\\nexports.TaskStatus = TaskStatus_1.default;\\nconst TimeoutScheduler_1 = __webpack_require__(/*! ./scheduler/TimeoutScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\\\");\\nexports.TimeoutScheduler = TimeoutScheduler_1.default;\\nconst TimeoutTask_1 = __webpack_require__(/*! ./task/TimeoutTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js\\\");\\nexports.TimeoutTask = TimeoutTask_1.default;\\nconst Transcript_1 = __webpack_require__(/*! ./transcript/Transcript */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/Transcript.js\\\");\\nexports.Transcript = Transcript_1.default;\\nconst TranscriptAlternative_1 = __webpack_require__(/*! ./transcript/TranscriptAlternative */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptAlternative.js\\\");\\nexports.TranscriptAlternative = TranscriptAlternative_1.default;\\nconst TranscriptEntity_1 = __webpack_require__(/*! ./transcript/TranscriptEntity */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEntity.js\\\");\\nexports.TranscriptEntity = TranscriptEntity_1.default;\\nconst TranscriptItem_1 = __webpack_require__(/*! ./transcript/TranscriptItem */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItem.js\\\");\\nexports.TranscriptItem = TranscriptItem_1.default;\\nconst TranscriptItemType_1 = __webpack_require__(/*! ./transcript/TranscriptItemType */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItemType.js\\\");\\nexports.TranscriptItemType = TranscriptItemType_1.default;\\nconst TranscriptLanguageWithScore_1 = __webpack_require__(/*! ./transcript/TranscriptLanguageWithScore */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptLanguageWithScore.js\\\");\\nexports.TranscriptLanguageWithScore = TranscriptLanguageWithScore_1.default;\\nconst TranscriptResult_1 = __webpack_require__(/*! ./transcript/TranscriptResult */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptResult.js\\\");\\nexports.TranscriptResult = TranscriptResult_1.default;\\nconst TranscriptionStatus_1 = __webpack_require__(/*! ./transcript/TranscriptionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatus.js\\\");\\nexports.TranscriptionStatus = TranscriptionStatus_1.default;\\nconst TranscriptionStatusType_1 = __webpack_require__(/*! ./transcript/TranscriptionStatusType */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatusType.js\\\");\\nexports.TranscriptionStatusType = TranscriptionStatusType_1.default;\\nconst TypeError_1 = __webpack_require__(/*! ./devicecontroller/TypeError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/TypeError.js\\\");\\nexports.TypeError = TypeError_1.default;\\nconst UnusableAudioWarningConnectionHealthPolicy_1 = __webpack_require__(/*! ./connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy.js\\\");\\nexports.UnusableAudioWarningConnectionHealthPolicy = UnusableAudioWarningConnectionHealthPolicy_1.default;\\nconst Versioning_1 = __webpack_require__(/*! ./versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nexports.Versioning = Versioning_1.default;\\nconst VideoAdaptiveProbePolicy_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy.js\\\");\\nexports.VideoAdaptiveProbePolicy = VideoAdaptiveProbePolicy_1.default;\\nconst VideoCodecCapability_1 = __webpack_require__(/*! ./sdp/VideoCodecCapability */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js\\\");\\nexports.VideoCodecCapability = VideoCodecCapability_1.default;\\nconst VideoLogEvent_1 = __webpack_require__(/*! ./statscollector/VideoLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js\\\");\\nexports.VideoLogEvent = VideoLogEvent_1.default;\\nconst VideoOnlyTransceiverController_1 = __webpack_require__(/*! ./transceivercontroller/VideoOnlyTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/VideoOnlyTransceiverController.js\\\");\\nexports.VideoOnlyTransceiverController = VideoOnlyTransceiverController_1.default;\\nconst VideoPreference_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoPreference */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js\\\");\\nexports.VideoPreference = VideoPreference_1.default;\\nconst VideoPreferences_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoPreferences */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js\\\");\\nexports.VideoPreferences = VideoPreferences_1.default;\\nconst VideoPriorityBasedPolicy_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy.js\\\");\\nexports.VideoPriorityBasedPolicy = VideoPriorityBasedPolicy_1.default;\\nconst VideoPriorityBasedPolicyConfig_1 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig.js\\\");\\nexports.VideoPriorityBasedPolicyConfig = VideoPriorityBasedPolicyConfig_1.default;\\nconst VideoQualitySettings_1 = __webpack_require__(/*! ./devicecontroller/VideoQualitySettings */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoQualitySettings.js\\\");\\nexports.VideoQualitySettings = VideoQualitySettings_1.default;\\nconst VideoSource_1 = __webpack_require__(/*! ./videosource/VideoSource */ \\\"./node_modules/amazon-chime-sdk-js/build/videosource/VideoSource.js\\\");\\nexports.VideoSource = VideoSource_1.default;\\nconst VideoStreamDescription_1 = __webpack_require__(/*! ./videostreamindex/VideoStreamDescription */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js\\\");\\nexports.VideoStreamDescription = VideoStreamDescription_1.default;\\nconst VideoTileState_1 = __webpack_require__(/*! ./videotile/VideoTileState */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/VideoTileState.js\\\");\\nexports.VideoTileState = VideoTileState_1.default;\\nconst VoiceFocusDeviceTransformer_1 = __webpack_require__(/*! ./voicefocus/VoiceFocusDeviceTransformer */ \\\"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusDeviceTransformer.js\\\");\\nexports.VoiceFocusDeviceTransformer = VoiceFocusDeviceTransformer_1.default;\\nconst VoiceFocusTransformDevice_1 = __webpack_require__(/*! ./voicefocus/VoiceFocusTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDevice.js\\\");\\nexports.VoiceFocusTransformDevice = VoiceFocusTransformDevice_1.default;\\nconst WaitForAttendeePresenceTask_1 = __webpack_require__(/*! ./task/WaitForAttendeePresenceTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/WaitForAttendeePresenceTask.js\\\");\\nexports.WaitForAttendeePresenceTask = WaitForAttendeePresenceTask_1.default;\\nconst WebSocketReadyState_1 = __webpack_require__(/*! ./websocketadapter/WebSocketReadyState */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js\\\");\\nexports.WebSocketReadyState = WebSocketReadyState_1.default;\\nconst ZLIBTextCompressor_1 = __webpack_require__(/*! ./sdp/ZLIBTextCompressor */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/ZLIBTextCompressor.js\\\");\\nexports.ZLIBTextCompressor = ZLIBTextCompressor_1.default;\\nconst VideoPreferences_2 = __webpack_require__(/*! ./videodownlinkbandwidthpolicy/VideoPreferences */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js\\\");\\nObject.defineProperty(exports, \\\"MutableVideoPreferences\\\", ({ enumerable: true, get: function () { return VideoPreferences_2.MutableVideoPreferences; } }));\\nconst Types_1 = __webpack_require__(/*! ./utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nObject.defineProperty(exports, \\\"Some\\\", ({ enumerable: true, get: function () { return Types_1.Some; } }));\\nObject.defineProperty(exports, \\\"None\\\", ({ enumerable: true, get: function () { return Types_1.None; } }));\\nObject.defineProperty(exports, \\\"Maybe\\\", ({ enumerable: true, get: function () { return Types_1.Maybe; } }));\\nconst AudioTransformDevice_1 = __webpack_require__(/*! ./devicecontroller/AudioTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/AudioTransformDevice.js\\\");\\nObject.defineProperty(exports, \\\"isAudioTransformDevice\\\", ({ enumerable: true, get: function () { return AudioTransformDevice_1.isAudioTransformDevice; } }));\\nconst Destroyable_1 = __webpack_require__(/*! ./destroyable/Destroyable */ \\\"./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js\\\");\\nObject.defineProperty(exports, \\\"isDestroyable\\\", ({ enumerable: true, get: function () { return Destroyable_1.isDestroyable; } }));\\nconst VideoTransformDevice_1 = __webpack_require__(/*! ./devicecontroller/VideoTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/VideoTransformDevice.js\\\");\\nObject.defineProperty(exports, \\\"isVideoTransformDevice\\\", ({ enumerable: true, get: function () { return VideoTransformDevice_1.isVideoTransformDevice; } }));\\n//# sourceMappingURL=index.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst LogLevel_1 = __webpack_require__(/*! ./LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\n/**\\n * ConsoleLogger writes logs with console\\n *\\n * ```typescript\\n *   // working with the ConsoleLogger\\n *   const logger = new ConsoleLogger('demo'); //default level is LogLevel.WARN\\n *   logger.info('info');\\n *   logger.debug('debug');\\n *   logger.warn('warn');\\n *   logger.error('error');\\n *\\n *   // setting logging levels\\n *   const logger = new ConsoleLogger('demo', LogLevel.INFO)\\n *   logger.debug(debugFunc()); // this will not show up\\n *   logger.setLogLevel(LogLevel.DEBUG)\\n *   logger.debug(debugFunc()); // this will show up\\n *\\n * ```\\n */\\nclass ConsoleLogger {\\n    constructor(name, level = LogLevel_1.default.WARN) {\\n        this.name = name;\\n        this.level = level;\\n    }\\n    info(msg) {\\n        this.log(LogLevel_1.default.INFO, msg);\\n    }\\n    warn(msg) {\\n        this.log(LogLevel_1.default.WARN, msg);\\n    }\\n    error(msg) {\\n        this.log(LogLevel_1.default.ERROR, msg);\\n    }\\n    debug(debugFunction) {\\n        if (LogLevel_1.default.DEBUG < this.level) {\\n            return;\\n        }\\n        if (typeof debugFunction === 'string') {\\n            this.log(LogLevel_1.default.DEBUG, debugFunction);\\n        }\\n        else if (debugFunction) {\\n            this.log(LogLevel_1.default.DEBUG, debugFunction());\\n        }\\n        else {\\n            this.log(LogLevel_1.default.DEBUG, '' + debugFunction);\\n        }\\n    }\\n    setLogLevel(level) {\\n        this.level = level;\\n    }\\n    getLogLevel() {\\n        return this.level;\\n    }\\n    log(type, msg) {\\n        if (type < this.level) {\\n            return;\\n        }\\n        const timestamp = new Date().toISOString();\\n        const logMessage = `${timestamp} [${LogLevel_1.default[type]}] ${this.name} - ${msg}`;\\n        switch (type) {\\n            case LogLevel_1.default.ERROR:\\n                console.error(logMessage);\\n                break;\\n            case LogLevel_1.default.WARN:\\n                console.warn(logMessage);\\n                break;\\n            case LogLevel_1.default.DEBUG:\\n                console.debug(logMessage.replace(/\\\\\\\\r\\\\\\\\n/g, '\\\\n'));\\n                break;\\n            case LogLevel_1.default.INFO:\\n                console.info(logMessage);\\n                break;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = ConsoleLogger;\\n//# sourceMappingURL=ConsoleLogger.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/ConsoleLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/Log.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/Log.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass Log {\\n    constructor(sequenceNumber, message, timestampMs, logLevel) {\\n        this.sequenceNumber = sequenceNumber;\\n        this.message = message;\\n        this.timestampMs = timestampMs;\\n        this.logLevel = logLevel;\\n    }\\n}\\nexports[\\\"default\\\"] = Log;\\n//# sourceMappingURL=Log.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/Log.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.LogLevel = void 0;\\nvar LogLevel;\\n(function (LogLevel) {\\n    LogLevel[LogLevel[\\\"DEBUG\\\"] = 0] = \\\"DEBUG\\\";\\n    LogLevel[LogLevel[\\\"INFO\\\"] = 1] = \\\"INFO\\\";\\n    LogLevel[LogLevel[\\\"WARN\\\"] = 2] = \\\"WARN\\\";\\n    LogLevel[LogLevel[\\\"ERROR\\\"] = 3] = \\\"ERROR\\\";\\n    LogLevel[LogLevel[\\\"OFF\\\"] = 4] = \\\"OFF\\\";\\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\\nexports[\\\"default\\\"] = LogLevel;\\n//# sourceMappingURL=LogLevel.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/MultiLogger.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/MultiLogger.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst LogLevel_1 = __webpack_require__(/*! ./LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\n/**\\n * MultiLogger writes logs to multiple other loggers\\n */\\nclass MultiLogger {\\n    constructor(...loggers) {\\n        this._loggers = loggers;\\n    }\\n    info(msg) {\\n        for (const logger of this._loggers) {\\n            logger.info(msg);\\n        }\\n    }\\n    warn(msg) {\\n        for (const logger of this._loggers) {\\n            logger.warn(msg);\\n        }\\n    }\\n    error(msg) {\\n        for (const logger of this._loggers) {\\n            logger.error(msg);\\n        }\\n    }\\n    debug(debugFunction) {\\n        let message;\\n        let memoized;\\n        if (typeof debugFunction === 'string') {\\n            memoized = debugFunction;\\n        }\\n        else if (debugFunction) {\\n            memoized = () => {\\n                if (!message) {\\n                    message = debugFunction();\\n                }\\n                return message;\\n            };\\n        }\\n        else {\\n            memoized = '' + debugFunction;\\n        }\\n        for (const logger of this._loggers) {\\n            logger.debug(memoized);\\n        }\\n    }\\n    setLogLevel(level) {\\n        for (const logger of this._loggers) {\\n            logger.setLogLevel(level);\\n        }\\n    }\\n    getLogLevel() {\\n        for (const logger of this._loggers) {\\n            return logger.getLogLevel();\\n        }\\n        return LogLevel_1.default.OFF;\\n    }\\n}\\nexports[\\\"default\\\"] = MultiLogger;\\n//# sourceMappingURL=MultiLogger.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/MultiLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/NoOpDebugLogger.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/NoOpDebugLogger.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst LogLevel_1 = __webpack_require__(/*! ./LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nconst NoOpLogger_1 = __webpack_require__(/*! ./NoOpLogger */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/NoOpLogger.js\\\");\\n/**\\n * [[NoOpDebugLogger]] does not log any message but does call\\n * debug functions by default.\\n */\\nclass NoOpDebugLogger extends NoOpLogger_1.default {\\n    constructor() {\\n        super(LogLevel_1.default.DEBUG);\\n    }\\n}\\nexports[\\\"default\\\"] = NoOpDebugLogger;\\n//# sourceMappingURL=NoOpDebugLogger.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/NoOpDebugLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/NoOpLogger.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/NoOpLogger.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst LogLevel_1 = __webpack_require__(/*! ./LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\n/**\\n * [[NoOpLogger]] does not log any message.\\n */\\nclass NoOpLogger {\\n    constructor(level = LogLevel_1.default.OFF) {\\n        this.level = level;\\n    }\\n    info(_msg) { }\\n    warn(_msg) { }\\n    error(_msg) { }\\n    debug(debugFunction) {\\n        if (LogLevel_1.default.DEBUG < this.level) {\\n            return;\\n        }\\n        if (typeof debugFunction !== 'string') {\\n            debugFunction();\\n        }\\n    }\\n    setLogLevel(level) {\\n        this.level = level;\\n    }\\n    getLogLevel() {\\n        return this.level;\\n    }\\n}\\nexports[\\\"default\\\"] = NoOpLogger;\\n//# sourceMappingURL=NoOpLogger.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/NoOpLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/logger/POSTLogger.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/logger/POSTLogger.js ***!\n  \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nconst Log_1 = __webpack_require__(/*! ./Log */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/Log.js\\\");\\nconst LogLevel_1 = __webpack_require__(/*! ./LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\n/**\\n * `POSTLogger` publishes log messages in batches to a URL\\n * supplied during its construction.\\n *\\n * Be sure to call {@link POSTLogger.destroy} when you're done\\n * with the logger in order to avoid leaks.\\n */\\nclass POSTLogger {\\n    constructor(options) {\\n        this.logCapture = [];\\n        this.lock = false;\\n        this.sequenceNumber = 0;\\n        const { url, batchSize = POSTLogger.BATCH_SIZE, intervalMs = POSTLogger.INTERVAL_MS, logLevel = LogLevel_1.default.WARN, metadata, headers, } = options;\\n        this.url = url;\\n        this.batchSize = batchSize;\\n        this.intervalMs = intervalMs;\\n        this.logLevel = logLevel;\\n        this.metadata = metadata;\\n        this.headers = headers;\\n        this.start();\\n        this.eventListener = () => {\\n            this.stop();\\n        };\\n        this.addEventListener();\\n    }\\n    addEventListener() {\\n        if (!this.eventListener || !('window' in __webpack_require__.g) || !window.addEventListener) {\\n            return;\\n        }\\n        window.addEventListener('unload', this.eventListener);\\n    }\\n    removeEventListener() {\\n        if (!this.eventListener || !('window' in __webpack_require__.g) || !window.removeEventListener) {\\n            return;\\n        }\\n        window.removeEventListener('unload', this.eventListener);\\n    }\\n    debug(debugFunction) {\\n        if (LogLevel_1.default.DEBUG < this.logLevel) {\\n            return;\\n        }\\n        if (typeof debugFunction === 'string') {\\n            this.log(LogLevel_1.default.DEBUG, debugFunction);\\n        }\\n        else if (debugFunction) {\\n            this.log(LogLevel_1.default.DEBUG, debugFunction());\\n        }\\n        else {\\n            this.log(LogLevel_1.default.DEBUG, '' + debugFunction);\\n        }\\n    }\\n    info(msg) {\\n        this.log(LogLevel_1.default.INFO, msg);\\n    }\\n    warn(msg) {\\n        this.log(LogLevel_1.default.WARN, msg);\\n    }\\n    error(msg) {\\n        this.log(LogLevel_1.default.ERROR, msg);\\n    }\\n    setLogLevel(logLevel) {\\n        this.logLevel = logLevel;\\n    }\\n    getLogLevel() {\\n        return this.logLevel;\\n    }\\n    getLogCaptureSize() {\\n        return this.logCapture.length;\\n    }\\n    start() {\\n        this.addEventListener();\\n        this.intervalScheduler = new IntervalScheduler_1.default(this.intervalMs);\\n        this.intervalScheduler.start(() => __awaiter(this, void 0, void 0, function* () {\\n            if (this.lock === true || this.getLogCaptureSize() === 0) {\\n                return;\\n            }\\n            this.lock = true;\\n            const batch = this.logCapture.slice(0, this.batchSize);\\n            const body = this.makeRequestBody(batch);\\n            try {\\n                const response = yield fetch(this.url, Object.assign({ method: 'POST', body }, (this.headers\\n                    ? {\\n                        headers: this.headers,\\n                    }\\n                    : {})));\\n                if (response.status === 200) {\\n                    this.logCapture = this.logCapture.slice(batch.length);\\n                }\\n            }\\n            catch (error) {\\n                console.warn('[POSTLogger] ' + error.message);\\n            }\\n            finally {\\n                this.lock = false;\\n            }\\n        }));\\n    }\\n    stop() {\\n        var _a;\\n        // Clean up to avoid resource leaks.\\n        (_a = this.intervalScheduler) === null || _a === void 0 ? void 0 : _a.stop();\\n        this.intervalScheduler = undefined;\\n        this.removeEventListener();\\n        const body = this.makeRequestBody(this.logCapture);\\n        navigator.sendBeacon(this.url, body);\\n    }\\n    /**\\n     * Permanently clean up the logger. A new logger must be created to\\n     * resume logging.\\n     */\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.stop();\\n            this.metadata = undefined;\\n            this.headers = undefined;\\n            this.logCapture = [];\\n            this.sequenceNumber = 0;\\n            this.lock = false;\\n            this.batchSize = 0;\\n            this.intervalMs = 0;\\n            this.url = undefined;\\n        });\\n    }\\n    makeRequestBody(batch) {\\n        return JSON.stringify(Object.assign(Object.assign({}, this.metadata), { logs: batch }));\\n    }\\n    log(type, msg) {\\n        if (type < this.logLevel) {\\n            return;\\n        }\\n        const now = Date.now();\\n        // Handle undefined.\\n        this.logCapture.push(new Log_1.default(this.sequenceNumber, msg, now, LogLevel_1.default[type]));\\n        this.sequenceNumber += 1;\\n    }\\n}\\nexports[\\\"default\\\"] = POSTLogger;\\nPOSTLogger.BATCH_SIZE = 85;\\nPOSTLogger.INTERVAL_MS = 2000;\\n//# sourceMappingURL=POSTLogger.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/logger/POSTLogger.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/DefaultMediaDeviceFactory.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/DefaultMediaDeviceFactory.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MediaDeviceProxyHandler_1 = __webpack_require__(/*! ./MediaDeviceProxyHandler */ \\\"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/MediaDeviceProxyHandler.js\\\");\\nclass DefaultMediaDeviceFactory {\\n    constructor() {\\n        this.isMediaDevicesSupported = typeof navigator !== 'undefined' && !!navigator.mediaDevices;\\n    }\\n    create() {\\n        if (!this.isMediaDevicesSupported) {\\n            throw new Error(`navigator.mediaDevices is not supported`);\\n        }\\n        else {\\n            return new Proxy(navigator.mediaDevices, new MediaDeviceProxyHandler_1.default());\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultMediaDeviceFactory;\\n//# sourceMappingURL=DefaultMediaDeviceFactory.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/DefaultMediaDeviceFactory.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/MediaDeviceProxyHandler.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/MediaDeviceProxyHandler.js ***!\n  \\**********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nclass MediaDeviceProxyHandler {\\n    constructor() {\\n        this.scheduler = null;\\n        this.devices = null;\\n        this.deviceChangeListeners = new Set();\\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types\\n        this.get = (target, property, receiver) => {\\n            if (!Reflect.has(target, property)) {\\n                return undefined;\\n            }\\n            if (!('ondevicechange' in navigator.mediaDevices)) {\\n                if (property === 'addEventListener') {\\n                    return this.patchAddEventListener(target, property, receiver);\\n                }\\n                else if (property === 'removeEventListener') {\\n                    return this.patchRemoveEventListener(target, property, receiver);\\n                }\\n            }\\n            const value = Reflect.get(target, property, receiver);\\n            return typeof value === 'function' ? value.bind(target) : value;\\n        };\\n        this.patchAddEventListener = (target, property, \\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n        receiver) => {\\n            const value = Reflect.get(target, property, receiver);\\n            return (type, listener, options) => {\\n                if (type === 'devicechange') {\\n                    this.deviceChangeListeners.add(listener);\\n                    if (!this.scheduler) {\\n                        this.scheduler = new IntervalScheduler_1.default(MediaDeviceProxyHandler.INTERVAL_MS);\\n                        this.scheduler.start(this.pollDeviceLists);\\n                    }\\n                }\\n                else {\\n                    return Reflect.apply(value, target, [type, listener, options]);\\n                }\\n            };\\n        };\\n        this.patchRemoveEventListener = (target, property, \\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n        receiver) => {\\n            const value = Reflect.get(target, property, receiver);\\n            return (type, listener, options) => {\\n                if (type === 'devicechange') {\\n                    this.deviceChangeListeners.delete(listener);\\n                    if (this.deviceChangeListeners.size === 0 && this.scheduler) {\\n                        this.scheduler.stop();\\n                        this.scheduler = null;\\n                    }\\n                }\\n                else {\\n                    return Reflect.apply(value, target, [type, listener, options]);\\n                }\\n            };\\n        };\\n        this.pollDeviceLists = () => __awaiter(this, void 0, void 0, function* () {\\n            const newDevices = yield this.sortedDeviceList();\\n            if (this.devices) {\\n                const changed = newDevices.length !== this.devices.length ||\\n                    newDevices.some((device, index) => {\\n                        return device.deviceId !== this.devices[index].deviceId;\\n                    });\\n                if (changed) {\\n                    this.handleDeviceChangeEvent();\\n                }\\n            }\\n            this.devices = newDevices;\\n        });\\n    }\\n    sortedDeviceList() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // @ts-ignore\\n            const newDevices = yield navigator.mediaDevices.enumerateDevices();\\n            return newDevices.sort((device1, device2) => {\\n                if (device1.deviceId < device2.deviceId) {\\n                    return 1;\\n                }\\n                if (device1.deviceId > device2.deviceId) {\\n                    return -1;\\n                }\\n                return 0;\\n            });\\n        });\\n    }\\n    handleDeviceChangeEvent() {\\n        for (const listener of this.deviceChangeListeners) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                /* istanbul ignore else */\\n                if (this.deviceChangeListeners.has(listener)) {\\n                    const event = new Event('devicechange');\\n                    if (typeof listener === 'function') {\\n                        listener(event);\\n                    }\\n                    else {\\n                        listener.handleEvent(event);\\n                    }\\n                }\\n            });\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = MediaDeviceProxyHandler;\\nMediaDeviceProxyHandler.INTERVAL_MS = 1000;\\n//# sourceMappingURL=MediaDeviceProxyHandler.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/mediadevicefactory/MediaDeviceProxyHandler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[NoOpDeviceBroker]] rejects requests to acquire a [[MediaStream]].\\n */\\nclass NoOpMediaStreamBroker {\\n    acquireAudioInputStream() {\\n        return Promise.reject();\\n    }\\n    acquireVideoInputStream() {\\n        return Promise.reject();\\n    }\\n    acquireDisplayInputStream(_streamConstraints) {\\n        return Promise.reject();\\n    }\\n    muteLocalAudioInputStream() { }\\n    unmuteLocalAudioInputStream() { }\\n    addMediaStreamBrokerObserver(_observer) { }\\n    removeMediaStreamBrokerObserver(_observer) { }\\n}\\nexports[\\\"default\\\"] = NoOpMediaStreamBroker;\\n//# sourceMappingURL=NoOpMediaStreamBroker.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/mediastreambroker/NoOpMediaStreamBroker.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioConnectivityFeedback.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioConnectivityFeedback.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckAudioConnectivityFeedback = void 0;\\nvar CheckAudioConnectivityFeedback;\\n(function (CheckAudioConnectivityFeedback) {\\n    CheckAudioConnectivityFeedback[CheckAudioConnectivityFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckAudioConnectivityFeedback[CheckAudioConnectivityFeedback[\\\"AudioInputRequestFailed\\\"] = 1] = \\\"AudioInputRequestFailed\\\";\\n    CheckAudioConnectivityFeedback[CheckAudioConnectivityFeedback[\\\"AudioInputPermissionDenied\\\"] = 2] = \\\"AudioInputPermissionDenied\\\";\\n    CheckAudioConnectivityFeedback[CheckAudioConnectivityFeedback[\\\"ConnectionFailed\\\"] = 3] = \\\"ConnectionFailed\\\";\\n    CheckAudioConnectivityFeedback[CheckAudioConnectivityFeedback[\\\"AudioNotReceived\\\"] = 4] = \\\"AudioNotReceived\\\";\\n})(CheckAudioConnectivityFeedback = exports.CheckAudioConnectivityFeedback || (exports.CheckAudioConnectivityFeedback = {}));\\nexports[\\\"default\\\"] = CheckAudioConnectivityFeedback;\\n//# sourceMappingURL=CheckAudioConnectivityFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioConnectivityFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioInputFeedback.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioInputFeedback.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckAudioInputFeedback = void 0;\\nvar CheckAudioInputFeedback;\\n(function (CheckAudioInputFeedback) {\\n    CheckAudioInputFeedback[CheckAudioInputFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckAudioInputFeedback[CheckAudioInputFeedback[\\\"Failed\\\"] = 1] = \\\"Failed\\\";\\n    CheckAudioInputFeedback[CheckAudioInputFeedback[\\\"PermissionDenied\\\"] = 2] = \\\"PermissionDenied\\\";\\n})(CheckAudioInputFeedback = exports.CheckAudioInputFeedback || (exports.CheckAudioInputFeedback = {}));\\nexports[\\\"default\\\"] = CheckAudioInputFeedback;\\n//# sourceMappingURL=CheckAudioInputFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioInputFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioOutputFeedback.js\":\n/*!****************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioOutputFeedback.js ***!\n  \\****************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckAudioOutputFeedback = void 0;\\nvar CheckAudioOutputFeedback;\\n(function (CheckAudioOutputFeedback) {\\n    CheckAudioOutputFeedback[CheckAudioOutputFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckAudioOutputFeedback[CheckAudioOutputFeedback[\\\"Failed\\\"] = 1] = \\\"Failed\\\";\\n})(CheckAudioOutputFeedback = exports.CheckAudioOutputFeedback || (exports.CheckAudioOutputFeedback = {}));\\nexports[\\\"default\\\"] = CheckAudioOutputFeedback;\\n//# sourceMappingURL=CheckAudioOutputFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioOutputFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckCameraResolutionFeedback.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckCameraResolutionFeedback.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckCameraResolutionFeedback = void 0;\\nvar CheckCameraResolutionFeedback;\\n(function (CheckCameraResolutionFeedback) {\\n    CheckCameraResolutionFeedback[CheckCameraResolutionFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckCameraResolutionFeedback[CheckCameraResolutionFeedback[\\\"Failed\\\"] = 1] = \\\"Failed\\\";\\n    CheckCameraResolutionFeedback[CheckCameraResolutionFeedback[\\\"ResolutionNotSupported\\\"] = 2] = \\\"ResolutionNotSupported\\\";\\n    CheckCameraResolutionFeedback[CheckCameraResolutionFeedback[\\\"PermissionDenied\\\"] = 3] = \\\"PermissionDenied\\\";\\n})(CheckCameraResolutionFeedback = exports.CheckCameraResolutionFeedback || (exports.CheckCameraResolutionFeedback = {}));\\nexports[\\\"default\\\"] = CheckCameraResolutionFeedback;\\n//# sourceMappingURL=CheckCameraResolutionFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckCameraResolutionFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckContentShareConnectivityFeedback.js\":\n/*!*****************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckContentShareConnectivityFeedback.js ***!\n  \\*****************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckContentShareConnectivityFeedback = void 0;\\nvar CheckContentShareConnectivityFeedback;\\n(function (CheckContentShareConnectivityFeedback) {\\n    CheckContentShareConnectivityFeedback[CheckContentShareConnectivityFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckContentShareConnectivityFeedback[CheckContentShareConnectivityFeedback[\\\"Failed\\\"] = 1] = \\\"Failed\\\";\\n    CheckContentShareConnectivityFeedback[CheckContentShareConnectivityFeedback[\\\"PermissionDenied\\\"] = 2] = \\\"PermissionDenied\\\";\\n    CheckContentShareConnectivityFeedback[CheckContentShareConnectivityFeedback[\\\"TimedOut\\\"] = 3] = \\\"TimedOut\\\";\\n    CheckContentShareConnectivityFeedback[CheckContentShareConnectivityFeedback[\\\"ConnectionFailed\\\"] = 4] = \\\"ConnectionFailed\\\";\\n})(CheckContentShareConnectivityFeedback = exports.CheckContentShareConnectivityFeedback || (exports.CheckContentShareConnectivityFeedback = {}));\\nexports[\\\"default\\\"] = CheckContentShareConnectivityFeedback;\\n//# sourceMappingURL=CheckContentShareConnectivityFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckContentShareConnectivityFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckNetworkTCPConnectivityFeedback = void 0;\\nvar CheckNetworkTCPConnectivityFeedback;\\n(function (CheckNetworkTCPConnectivityFeedback) {\\n    CheckNetworkTCPConnectivityFeedback[CheckNetworkTCPConnectivityFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckNetworkTCPConnectivityFeedback[CheckNetworkTCPConnectivityFeedback[\\\"MeetingSessionURLsNotInitialized\\\"] = 1] = \\\"MeetingSessionURLsNotInitialized\\\";\\n    CheckNetworkTCPConnectivityFeedback[CheckNetworkTCPConnectivityFeedback[\\\"ConnectionFailed\\\"] = 2] = \\\"ConnectionFailed\\\";\\n    CheckNetworkTCPConnectivityFeedback[CheckNetworkTCPConnectivityFeedback[\\\"ICENegotiationFailed\\\"] = 3] = \\\"ICENegotiationFailed\\\";\\n})(CheckNetworkTCPConnectivityFeedback = exports.CheckNetworkTCPConnectivityFeedback || (exports.CheckNetworkTCPConnectivityFeedback = {}));\\nexports[\\\"default\\\"] = CheckNetworkTCPConnectivityFeedback;\\n//# sourceMappingURL=CheckNetworkTCPConnectivityFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckNetworkUDPConnectivityFeedback = void 0;\\nvar CheckNetworkUDPConnectivityFeedback;\\n(function (CheckNetworkUDPConnectivityFeedback) {\\n    CheckNetworkUDPConnectivityFeedback[CheckNetworkUDPConnectivityFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckNetworkUDPConnectivityFeedback[CheckNetworkUDPConnectivityFeedback[\\\"MeetingSessionURLsNotInitialized\\\"] = 1] = \\\"MeetingSessionURLsNotInitialized\\\";\\n    CheckNetworkUDPConnectivityFeedback[CheckNetworkUDPConnectivityFeedback[\\\"ConnectionFailed\\\"] = 2] = \\\"ConnectionFailed\\\";\\n    CheckNetworkUDPConnectivityFeedback[CheckNetworkUDPConnectivityFeedback[\\\"ICENegotiationFailed\\\"] = 3] = \\\"ICENegotiationFailed\\\";\\n})(CheckNetworkUDPConnectivityFeedback = exports.CheckNetworkUDPConnectivityFeedback || (exports.CheckNetworkUDPConnectivityFeedback = {}));\\nexports[\\\"default\\\"] = CheckNetworkUDPConnectivityFeedback;\\n//# sourceMappingURL=CheckNetworkUDPConnectivityFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoConnectivityFeedback.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoConnectivityFeedback.js ***!\n  \\**********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckVideoConnectivityFeedback = void 0;\\nvar CheckVideoConnectivityFeedback;\\n(function (CheckVideoConnectivityFeedback) {\\n    CheckVideoConnectivityFeedback[CheckVideoConnectivityFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckVideoConnectivityFeedback[CheckVideoConnectivityFeedback[\\\"VideoInputRequestFailed\\\"] = 1] = \\\"VideoInputRequestFailed\\\";\\n    CheckVideoConnectivityFeedback[CheckVideoConnectivityFeedback[\\\"VideoInputPermissionDenied\\\"] = 2] = \\\"VideoInputPermissionDenied\\\";\\n    CheckVideoConnectivityFeedback[CheckVideoConnectivityFeedback[\\\"ConnectionFailed\\\"] = 3] = \\\"ConnectionFailed\\\";\\n    CheckVideoConnectivityFeedback[CheckVideoConnectivityFeedback[\\\"VideoNotSent\\\"] = 4] = \\\"VideoNotSent\\\";\\n})(CheckVideoConnectivityFeedback = exports.CheckVideoConnectivityFeedback || (exports.CheckVideoConnectivityFeedback = {}));\\nexports[\\\"default\\\"] = CheckVideoConnectivityFeedback;\\n//# sourceMappingURL=CheckVideoConnectivityFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoConnectivityFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoInputFeedback.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoInputFeedback.js ***!\n  \\***************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.CheckVideoInputFeedback = void 0;\\nvar CheckVideoInputFeedback;\\n(function (CheckVideoInputFeedback) {\\n    CheckVideoInputFeedback[CheckVideoInputFeedback[\\\"Succeeded\\\"] = 0] = \\\"Succeeded\\\";\\n    CheckVideoInputFeedback[CheckVideoInputFeedback[\\\"Failed\\\"] = 1] = \\\"Failed\\\";\\n    CheckVideoInputFeedback[CheckVideoInputFeedback[\\\"PermissionDenied\\\"] = 2] = \\\"PermissionDenied\\\";\\n})(CheckVideoInputFeedback = exports.CheckVideoInputFeedback || (exports.CheckVideoInputFeedback = {}));\\nexports[\\\"default\\\"] = CheckVideoInputFeedback;\\n//# sourceMappingURL=CheckVideoInputFeedback.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoInputFeedback.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/DefaultMeetingReadinessChecker.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/DefaultMeetingReadinessChecker.js ***!\n  \\**********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultAudioMixController_1 = __webpack_require__(/*! ../audiomixcontroller/DefaultAudioMixController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiomixcontroller/DefaultAudioMixController.js\\\");\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst DefaultDeviceController_1 = __webpack_require__(/*! ../devicecontroller/DefaultDeviceController */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/DefaultDeviceController.js\\\");\\nconst PermissionDeniedError_1 = __webpack_require__(/*! ../devicecontroller/PermissionDeniedError */ \\\"./node_modules/amazon-chime-sdk-js/build/devicecontroller/PermissionDeniedError.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ../task/BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nconst TimeoutTask_1 = __webpack_require__(/*! ../task/TimeoutTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js\\\");\\nconst CheckAudioConnectivityFeedback_1 = __webpack_require__(/*! ./CheckAudioConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioConnectivityFeedback.js\\\");\\nconst CheckAudioInputFeedback_1 = __webpack_require__(/*! ./CheckAudioInputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioInputFeedback.js\\\");\\nconst CheckAudioOutputFeedback_1 = __webpack_require__(/*! ./CheckAudioOutputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckAudioOutputFeedback.js\\\");\\nconst CheckCameraResolutionFeedback_1 = __webpack_require__(/*! ./CheckCameraResolutionFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckCameraResolutionFeedback.js\\\");\\nconst CheckContentShareConnectivityFeedback_1 = __webpack_require__(/*! ./CheckContentShareConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckContentShareConnectivityFeedback.js\\\");\\nconst CheckNetworkTCPConnectivityFeedback_1 = __webpack_require__(/*! ./CheckNetworkTCPConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkTCPConnectivityFeedback.js\\\");\\nconst CheckNetworkUDPConnectivityFeedback_1 = __webpack_require__(/*! ./CheckNetworkUDPConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckNetworkUDPConnectivityFeedback.js\\\");\\nconst CheckVideoConnectivityFeedback_1 = __webpack_require__(/*! ./CheckVideoConnectivityFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoConnectivityFeedback.js\\\");\\nconst CheckVideoInputFeedback_1 = __webpack_require__(/*! ./CheckVideoInputFeedback */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/CheckVideoInputFeedback.js\\\");\\nconst MeetingReadinessCheckerConfiguration_1 = __webpack_require__(/*! ./MeetingReadinessCheckerConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/MeetingReadinessCheckerConfiguration.js\\\");\\nclass DefaultMeetingReadinessChecker {\\n    constructor(logger, meetingSession, configuration = new MeetingReadinessCheckerConfiguration_1.default()) {\\n        this.logger = logger;\\n        this.meetingSession = meetingSession;\\n        this.configuration = configuration;\\n        this.browserBehavior = new DefaultBrowserBehavior_1.default();\\n    }\\n    static delay(timeoutMs) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return new Promise(resolve => setTimeout(resolve, timeoutMs));\\n        });\\n    }\\n    checkAudioInput(audioInputDevice) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                yield this.meetingSession.audioVideo.startAudioInput(audioInputDevice);\\n                yield this.meetingSession.audioVideo.stopAudioInput();\\n                return CheckAudioInputFeedback_1.default.Succeeded;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Audio input check failed with error ${error}`);\\n                if (error instanceof PermissionDeniedError_1.default) {\\n                    return CheckAudioInputFeedback_1.default.PermissionDenied;\\n                }\\n                return CheckAudioInputFeedback_1.default.Failed;\\n            }\\n        });\\n    }\\n    checkAudioOutput(audioOutputDeviceInfo, audioOutputVerificationCallback, audioElement = null) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                const audioOutputDeviceId = audioOutputDeviceInfo\\n                    ? DefaultDeviceController_1.default.getIntrinsicDeviceId(audioOutputDeviceInfo)\\n                    : '';\\n                yield this.playTone(audioOutputDeviceId, this.configuration.audioOutputFrequency, audioElement);\\n                const userFeedback = yield audioOutputVerificationCallback();\\n                if (userFeedback) {\\n                    return CheckAudioOutputFeedback_1.default.Succeeded;\\n                }\\n                return CheckAudioOutputFeedback_1.default.Failed;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Audio output check failed with error: ${error}`);\\n                return CheckAudioOutputFeedback_1.default.Failed;\\n            }\\n            finally {\\n                this.stopTone();\\n            }\\n        });\\n    }\\n    playTone(sinkId, frequency, audioElement) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const rampSec = 0.1;\\n            const maxGainValue = this.configuration.audioOutputGain;\\n            if (this.oscillatorNode) {\\n                this.stopTone();\\n            }\\n            this.audioContext = DefaultDeviceController_1.default.getAudioContext();\\n            this.gainNode = this.audioContext.createGain();\\n            this.gainNode.gain.value = 0;\\n            this.oscillatorNode = this.audioContext.createOscillator();\\n            this.oscillatorNode.frequency.value = frequency;\\n            this.oscillatorNode.connect(this.gainNode);\\n            this.destinationStream = this.audioContext.createMediaStreamDestination();\\n            this.gainNode.connect(this.destinationStream);\\n            const currentTime = this.audioContext.currentTime;\\n            const startTime = currentTime + 0.1;\\n            this.gainNode.gain.linearRampToValueAtTime(0, startTime);\\n            this.gainNode.gain.linearRampToValueAtTime(maxGainValue, startTime + rampSec);\\n            this.oscillatorNode.start();\\n            // Because we always use `DefaultAudioMixController`, and both this class\\n            // and DAMC use `DefaultBrowserBehavior`, it is not possible for the `bindAudioDevice` call here to throw.\\n            // Nevertheless, we `catch` here and disable code coverage.\\n            const audioMixController = new DefaultAudioMixController_1.default(this.logger);\\n            try {\\n                if (this.browserBehavior.supportsSetSinkId()) {\\n                    yield audioMixController.bindAudioDevice({ deviceId: sinkId });\\n                }\\n            }\\n            catch (e) {\\n                /* istanbul ignore next */\\n                this.logger.error(`Failed to bind audio device: ${e}`);\\n            }\\n            try {\\n                yield audioMixController.bindAudioElement(audioElement || new Audio());\\n            }\\n            catch (e) {\\n                this.logger.error(`Failed to bind audio element: ${e}`);\\n            }\\n            yield audioMixController.bindAudioStream(this.destinationStream.stream);\\n        });\\n    }\\n    stopTone() {\\n        if (!this.audioContext || !this.gainNode || !this.oscillatorNode || !this.destinationStream) {\\n            return;\\n        }\\n        const durationSec = 1;\\n        const rampSec = 0.1;\\n        const maxGainValue = this.configuration.audioOutputGain;\\n        const currentTime = this.audioContext.currentTime;\\n        this.gainNode.gain.linearRampToValueAtTime(maxGainValue, currentTime + rampSec + durationSec);\\n        this.gainNode.gain.linearRampToValueAtTime(0, currentTime + rampSec * 2 + durationSec);\\n        this.oscillatorNode.stop();\\n        this.oscillatorNode.disconnect(this.gainNode);\\n        this.gainNode.disconnect(this.destinationStream);\\n        this.oscillatorNode = null;\\n        this.gainNode = null;\\n        this.destinationStream = null;\\n    }\\n    checkVideoInput(videoInputDevice) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                yield this.meetingSession.audioVideo.startVideoInput(videoInputDevice);\\n                yield this.meetingSession.audioVideo.stopVideoInput();\\n                return CheckVideoInputFeedback_1.default.Succeeded;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Video check failed with error ${error}`);\\n                if (error instanceof PermissionDeniedError_1.default) {\\n                    return CheckVideoInputFeedback_1.default.PermissionDenied;\\n                }\\n                return CheckVideoInputFeedback_1.default.Failed;\\n            }\\n        });\\n    }\\n    checkCameraResolution(videoInputDevice, width, height) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let stream;\\n            try {\\n                const videoInputDeviceId = DefaultDeviceController_1.default.getIntrinsicDeviceId(videoInputDevice);\\n                const videoConstraint = {\\n                    video: this.calculateVideoConstraint(videoInputDeviceId, width, height),\\n                };\\n                stream = yield navigator.mediaDevices.getUserMedia(videoConstraint);\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Camera resolution check with width: ${width} height ${height} failed with error ${error}`);\\n                if (error && error.name === 'OverconstrainedError') {\\n                    return CheckCameraResolutionFeedback_1.default.ResolutionNotSupported;\\n                }\\n                if (error && error.name === 'NotAllowedError') {\\n                    return CheckCameraResolutionFeedback_1.default.PermissionDenied;\\n                }\\n                return CheckCameraResolutionFeedback_1.default.Failed;\\n            }\\n            finally {\\n                if (stream) {\\n                    stream.getTracks().forEach(function (track) {\\n                        track.stop();\\n                    });\\n                }\\n            }\\n            return CheckCameraResolutionFeedback_1.default.Succeeded;\\n        });\\n    }\\n    calculateVideoConstraint(videoInputDeviceId, width, height) {\\n        const dimension = this.browserBehavior.requiresResolutionAlignment(width, height);\\n        const trackConstraints = {};\\n        if (this.browserBehavior.requiresNoExactMediaStreamConstraints()) {\\n            trackConstraints.deviceId = videoInputDeviceId;\\n            trackConstraints.width = width;\\n            trackConstraints.height = height;\\n        }\\n        else {\\n            trackConstraints.deviceId = { exact: videoInputDeviceId };\\n            trackConstraints.width = { exact: dimension[0] };\\n            trackConstraints.height = { exact: dimension[1] };\\n        }\\n        return trackConstraints;\\n    }\\n    checkContentShareConnectivity(sourceId) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let isContentShareStarted = false;\\n            let isAudioVideoStarted = false;\\n            const contentShareObserver = {\\n                contentShareDidStart: () => {\\n                    isContentShareStarted = true;\\n                },\\n            };\\n            const observer = {\\n                audioVideoDidStart: () => {\\n                    isAudioVideoStarted = true;\\n                },\\n            };\\n            try {\\n                this.meetingSession.audioVideo.addObserver(observer);\\n                this.meetingSession.audioVideo.start();\\n                this.meetingSession.audioVideo.addContentShareObserver(contentShareObserver);\\n                yield this.meetingSession.audioVideo.startContentShareFromScreenCapture(sourceId);\\n                yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                    return isAudioVideoStarted && isContentShareStarted;\\n                }));\\n                if (!isAudioVideoStarted) {\\n                    return CheckContentShareConnectivityFeedback_1.default.ConnectionFailed;\\n                }\\n                yield this.stopMeeting();\\n                return isContentShareStarted\\n                    ? CheckContentShareConnectivityFeedback_1.default.Succeeded\\n                    : CheckContentShareConnectivityFeedback_1.default.TimedOut;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Content share check failed with error ${error}`);\\n                if (error.name === 'NotAllowedError') {\\n                    return CheckContentShareConnectivityFeedback_1.default.PermissionDenied;\\n                }\\n                else {\\n                    return CheckContentShareConnectivityFeedback_1.default.Failed;\\n                }\\n            }\\n            finally {\\n                this.meetingSession.audioVideo.removeObserver(observer);\\n                this.meetingSession.audioVideo.stopContentShare();\\n                this.meetingSession.audioVideo.removeContentShareObserver(contentShareObserver);\\n            }\\n        });\\n    }\\n    checkAudioConnectivity(audioInputDevice) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let audioPresence = false;\\n            const audioVideo = this.meetingSession.audioVideo;\\n            const attendeePresenceHandler = (attendeeId, present, _externalUserId, _dropped) => {\\n                if (attendeeId === this.meetingSession.configuration.credentials.attendeeId && present) {\\n                    audioPresence = true;\\n                }\\n            };\\n            try {\\n                yield audioVideo.startAudioInput(audioInputDevice);\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Failed to get audio input device with error ${error}`);\\n                if (error instanceof PermissionDeniedError_1.default) {\\n                    return CheckAudioConnectivityFeedback_1.default.AudioInputPermissionDenied;\\n                }\\n                return CheckAudioConnectivityFeedback_1.default.AudioInputRequestFailed;\\n            }\\n            audioVideo.realtimeSubscribeToAttendeeIdPresence(attendeePresenceHandler);\\n            if (!(yield this.startMeeting())) {\\n                audioVideo.realtimeUnsubscribeToAttendeeIdPresence(attendeePresenceHandler);\\n                yield this.meetingSession.audioVideo.stopAudioInput();\\n                return CheckAudioConnectivityFeedback_1.default.ConnectionFailed;\\n            }\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return audioPresence;\\n            }));\\n            audioVideo.realtimeUnsubscribeToAttendeeIdPresence(attendeePresenceHandler);\\n            yield this.stopMeeting();\\n            yield this.meetingSession.audioVideo.stopAudioInput();\\n            return audioPresence\\n                ? CheckAudioConnectivityFeedback_1.default.Succeeded\\n                : CheckAudioConnectivityFeedback_1.default.AudioNotReceived;\\n        });\\n    }\\n    checkVideoConnectivity(videoInputDevice) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const audioVideo = this.meetingSession.audioVideo;\\n            let packetsSent = 0;\\n            const observer = {\\n                metricsDidReceive(clientMetricReport) {\\n                    const rawStats = clientMetricReport.getRTCStatsReport();\\n                    rawStats.forEach(report => {\\n                        if (report.type === 'outbound-rtp' && report.mediaType === 'video') {\\n                            packetsSent = report.packetsSent;\\n                        }\\n                    });\\n                },\\n            };\\n            try {\\n                yield audioVideo.startVideoInput(videoInputDevice);\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingReadinessChecker: Failed to get video input device with error ${error}`);\\n                if (error instanceof PermissionDeniedError_1.default) {\\n                    return CheckVideoConnectivityFeedback_1.default.VideoInputPermissionDenied;\\n                }\\n                return CheckVideoConnectivityFeedback_1.default.VideoInputRequestFailed;\\n            }\\n            audioVideo.addObserver(observer);\\n            if (!(yield this.startMeeting())) {\\n                return CheckVideoConnectivityFeedback_1.default.ConnectionFailed;\\n            }\\n            audioVideo.startLocalVideoTile();\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return packetsSent > 0;\\n            }));\\n            yield audioVideo.stopVideoInput();\\n            yield this.stopMeeting();\\n            audioVideo.removeObserver(observer);\\n            if (packetsSent <= 0) {\\n                return CheckVideoConnectivityFeedback_1.default.VideoNotSent;\\n            }\\n            return CheckVideoConnectivityFeedback_1.default.Succeeded;\\n        });\\n    }\\n    checkNetworkUDPConnectivity() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let candidatePairSucceed = false;\\n            const observer = {\\n                metricsDidReceive(clientMetricReport) {\\n                    const rawStats = clientMetricReport.getRTCStatsReport();\\n                    rawStats.forEach(report => {\\n                        if (report.type === 'candidate-pair' && report.state === 'succeeded') {\\n                            candidatePairSucceed = true;\\n                        }\\n                    });\\n                },\\n            };\\n            try {\\n                this.originalURLRewriter = this.meetingSession.configuration.urls.urlRewriter;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingSessionConfiguration.urls doesn't exist. Error: ${error}`);\\n                return CheckNetworkUDPConnectivityFeedback_1.default.MeetingSessionURLsNotInitialized;\\n            }\\n            this.meetingSession.configuration.urls.urlRewriter = (uri) => {\\n                const transformedUri = this.originalURLRewriter(uri);\\n                if (transformedUri.includes('transport=tcp')) {\\n                    return '';\\n                }\\n                return transformedUri;\\n            };\\n            const audioVideo = this.meetingSession.audioVideo;\\n            audioVideo.addObserver(observer);\\n            if (!(yield this.startMeeting())) {\\n                this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter;\\n                return CheckNetworkUDPConnectivityFeedback_1.default.ConnectionFailed;\\n            }\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return candidatePairSucceed;\\n            }));\\n            this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter;\\n            yield this.stopMeeting();\\n            audioVideo.removeObserver(observer);\\n            if (!candidatePairSucceed) {\\n                return CheckNetworkUDPConnectivityFeedback_1.default.ICENegotiationFailed;\\n            }\\n            return CheckNetworkUDPConnectivityFeedback_1.default.Succeeded;\\n        });\\n    }\\n    checkNetworkTCPConnectivity() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let candidatePairSucceed = false;\\n            const observer = {\\n                metricsDidReceive(clientMetricReport) {\\n                    const rawStats = clientMetricReport.getRTCStatsReport();\\n                    rawStats.forEach(report => {\\n                        if (report.type === 'candidate-pair' && report.state === 'succeeded') {\\n                            candidatePairSucceed = true;\\n                        }\\n                    });\\n                },\\n            };\\n            try {\\n                this.originalURLRewriter = this.meetingSession.configuration.urls.urlRewriter;\\n            }\\n            catch (error) {\\n                this.logger.error(`MeetingSessionConfiguration.urls doesn't exist. Error: ${error}`);\\n                return CheckNetworkTCPConnectivityFeedback_1.default.MeetingSessionURLsNotInitialized;\\n            }\\n            this.meetingSession.configuration.urls.urlRewriter = (uri) => {\\n                const transformedUri = this.originalURLRewriter(uri);\\n                if (transformedUri.includes('transport=udp')) {\\n                    return '';\\n                }\\n                return transformedUri;\\n            };\\n            const audioVideo = this.meetingSession.audioVideo;\\n            audioVideo.addObserver(observer);\\n            if (!(yield this.startMeeting())) {\\n                this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter;\\n                return CheckNetworkTCPConnectivityFeedback_1.default.ConnectionFailed;\\n            }\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return candidatePairSucceed;\\n            }));\\n            this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter;\\n            yield this.stopMeeting();\\n            audioVideo.removeObserver(observer);\\n            if (!candidatePairSucceed) {\\n                return CheckNetworkTCPConnectivityFeedback_1.default.ICENegotiationFailed;\\n            }\\n            return CheckNetworkTCPConnectivityFeedback_1.default.Succeeded;\\n        });\\n    }\\n    startMeeting() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let isStarted = false;\\n            const observer = {\\n                audioVideoDidStart: () => {\\n                    isStarted = true;\\n                },\\n            };\\n            this.meetingSession.audioVideo.addObserver(observer);\\n            this.meetingSession.audioVideo.start();\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return isStarted;\\n            }));\\n            this.meetingSession.audioVideo.removeObserver(observer);\\n            return isStarted;\\n        });\\n    }\\n    stopMeeting() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let isStopped = false;\\n            const observer = {\\n                audioVideoDidStop: (_sessionStatus) => {\\n                    isStopped = true;\\n                },\\n            };\\n            this.meetingSession.audioVideo.addObserver(observer);\\n            this.meetingSession.audioVideo.stop();\\n            yield this.executeTimeoutTask(() => __awaiter(this, void 0, void 0, function* () {\\n                return isStopped;\\n            }));\\n            this.meetingSession.audioVideo.removeObserver(observer);\\n            return isStopped;\\n        });\\n    }\\n    executeTimeoutTask(conditionCheck) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let isSuccess = false;\\n            class CheckForConditionTask extends BaseTask_1.default {\\n                constructor(logger, waitDurationMs) {\\n                    super(logger);\\n                    this.waitDurationMs = waitDurationMs;\\n                    this.isCancelled = false;\\n                }\\n                cancel() {\\n                    this.isCancelled = true;\\n                }\\n                run() {\\n                    return __awaiter(this, void 0, void 0, function* () {\\n                        while (!this.isCancelled) {\\n                            if (yield conditionCheck()) {\\n                                isSuccess = true;\\n                                break;\\n                            }\\n                            yield DefaultMeetingReadinessChecker.delay(this.waitDurationMs);\\n                        }\\n                    });\\n                }\\n            }\\n            const timeoutTask = new TimeoutTask_1.default(this.logger, new CheckForConditionTask(this.logger, this.configuration.waitDurationMs), this.configuration.timeoutMs);\\n            yield timeoutTask.run();\\n            return isSuccess;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultMeetingReadinessChecker;\\n//# sourceMappingURL=DefaultMeetingReadinessChecker.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/DefaultMeetingReadinessChecker.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/MeetingReadinessCheckerConfiguration.js\":\n/*!****************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/MeetingReadinessCheckerConfiguration.js ***!\n  \\****************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingReadinessCheckerConfiguration]] includes custom settings used for MeetingReadinessChecker\\n */\\nclass MeetingReadinessCheckerConfiguration {\\n    constructor() {\\n        /**\\n         * Specify how long to wait for each check in a test.\\n         * If null, it will use the default value.\\n         */\\n        this.timeoutMs = 10000;\\n        /**\\n         * Specify the wait time before checking again when a check condition is not met.\\n         * If null, it will use the default value.\\n         */\\n        this.waitDurationMs = 3000;\\n        /**\\n         * Specify the frequency of oscillation in hertz for the audio output test.\\n         */\\n        this.audioOutputFrequency = 440;\\n        /**\\n         * Specify the gain value from 0 to 1.0 for the audio output test.\\n         */\\n        this.audioOutputGain = 0.1;\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingReadinessCheckerConfiguration;\\n//# sourceMappingURL=MeetingReadinessCheckerConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingreadinesschecker/MeetingReadinessCheckerConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/DefaultMeetingSession.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/DefaultMeetingSession.js ***!\n  \\****************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultAudioVideoController_1 = __webpack_require__(/*! ../audiovideocontroller/DefaultAudioVideoController */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideocontroller/DefaultAudioVideoController.js\\\");\\nconst DefaultAudioVideoFacade_1 = __webpack_require__(/*! ../audiovideofacade/DefaultAudioVideoFacade */ \\\"./node_modules/amazon-chime-sdk-js/build/audiovideofacade/DefaultAudioVideoFacade.js\\\");\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ../backoff/FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst ContentShareMediaStreamBroker_1 = __webpack_require__(/*! ../contentsharecontroller/ContentShareMediaStreamBroker */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareMediaStreamBroker.js\\\");\\nconst DefaultContentShareController_1 = __webpack_require__(/*! ../contentsharecontroller/DefaultContentShareController */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/DefaultContentShareController.js\\\");\\nconst CSPMonitor_1 = __webpack_require__(/*! ../cspmonitor/CSPMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js\\\");\\nconst Destroyable_1 = __webpack_require__(/*! ../destroyable/Destroyable */ \\\"./node_modules/amazon-chime-sdk-js/build/destroyable/Destroyable.js\\\");\\nconst DefaultEventController_1 = __webpack_require__(/*! ../eventcontroller/DefaultEventController */ \\\"./node_modules/amazon-chime-sdk-js/build/eventcontroller/DefaultEventController.js\\\");\\nconst DefaultReconnectController_1 = __webpack_require__(/*! ../reconnectcontroller/DefaultReconnectController */ \\\"./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js\\\");\\nconst DefaultWebSocketAdapter_1 = __webpack_require__(/*! ../websocketadapter/DefaultWebSocketAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js\\\");\\nclass DefaultMeetingSession {\\n    constructor(configuration, logger, deviceController, _eventController) {\\n        this._eventController = _eventController;\\n        this._configuration = configuration;\\n        this._logger = logger;\\n        this.checkBrowserSupportAndFeatureConfiguration();\\n        CSPMonitor_1.default.addLogger(this._logger);\\n        CSPMonitor_1.default.register();\\n        if (!this._eventController) {\\n            this._eventController = new DefaultEventController_1.default(configuration, logger);\\n        }\\n        /* istanbul ignore else */\\n        if (!deviceController.eventController) {\\n            deviceController.eventController = this.eventController;\\n        }\\n        this.audioVideoController = new DefaultAudioVideoController_1.default(this._configuration, this._logger, new DefaultWebSocketAdapter_1.default(this._logger), deviceController, new DefaultReconnectController_1.default(this._configuration.reconnectTimeoutMs, new FullJitterBackoff_1.default(this._configuration.reconnectFixedWaitMs, this._configuration.reconnectShortBackOffMs, this._configuration.reconnectLongBackOffMs)), this.eventController);\\n        this._deviceController = deviceController;\\n        const contentShareMediaStreamBroker = new ContentShareMediaStreamBroker_1.default(this._logger);\\n        this.contentShareController = new DefaultContentShareController_1.default(contentShareMediaStreamBroker, new DefaultAudioVideoController_1.default(DefaultContentShareController_1.default.createContentShareMeetingSessionConfigure(this._configuration), this._logger, new DefaultWebSocketAdapter_1.default(this._logger), contentShareMediaStreamBroker, new DefaultReconnectController_1.default(this._configuration.reconnectTimeoutMs, new FullJitterBackoff_1.default(this._configuration.reconnectFixedWaitMs, this._configuration.reconnectShortBackOffMs, this._configuration.reconnectLongBackOffMs))), this.audioVideoController);\\n        this.audioVideoFacade = new DefaultAudioVideoFacade_1.default(this.audioVideoController, this.audioVideoController.videoTileController, this.audioVideoController.realtimeController, this.audioVideoController.audioMixController, this._deviceController, this.contentShareController);\\n    }\\n    get configuration() {\\n        return this._configuration;\\n    }\\n    get logger() {\\n        return this._logger;\\n    }\\n    get audioVideo() {\\n        return this.audioVideoFacade;\\n    }\\n    get contentShare() {\\n        return this.contentShareController;\\n    }\\n    get deviceController() {\\n        return this._deviceController;\\n    }\\n    get eventController() {\\n        return this._eventController;\\n    }\\n    /**\\n     * Clean up this instance and resources that it created.\\n     *\\n     * After calling `destroy`, internal fields like `audioVideoController` will be unavailable.\\n     */\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (Destroyable_1.isDestroyable(this.contentShareController)) {\\n                yield this.contentShareController.destroy();\\n            }\\n            if (Destroyable_1.isDestroyable(this.audioVideoController)) {\\n                yield this.audioVideoController.destroy();\\n            }\\n            if (Destroyable_1.isDestroyable(this.eventController)) {\\n                yield this.eventController.destroy();\\n            }\\n            CSPMonitor_1.default.removeLogger(this._logger);\\n            this._logger = undefined;\\n            this._configuration = undefined;\\n            this._deviceController = undefined;\\n            this.audioVideoFacade = undefined;\\n            this.audioVideoController = undefined;\\n            this.contentShareController = undefined;\\n            this._eventController = undefined;\\n        });\\n    }\\n    checkBrowserSupportAndFeatureConfiguration() {\\n        const browserBehavior = new DefaultBrowserBehavior_1.default();\\n        const browser = `${browserBehavior.name()} ${browserBehavior.majorVersion()} (${browserBehavior.version()})`;\\n        this.logger.info(`browser is ${browser}`);\\n        if (!browserBehavior.isSupported()) {\\n            this.logger.warn('this browser is not currently supported. ' +\\n                'Stability may suffer. ' +\\n                `Supported browsers are: ${browserBehavior.supportString()}.`);\\n        }\\n        // Validation if a custom video uplink policy is specified\\n        if (this._configuration.videoUplinkBandwidthPolicy) {\\n            if (this.isSimulcastUplinkPolicy(this._configuration.videoUplinkBandwidthPolicy)) {\\n                if (!browserBehavior.hasChromiumWebRTC()) {\\n                    throw new Error('Simulcast is only supported on Chromium-based browsers');\\n                }\\n                this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = true;\\n            }\\n            else {\\n                this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = false;\\n            }\\n        }\\n        if (this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers) {\\n            if (browserBehavior.hasChromiumWebRTC()) {\\n                this.logger.info(`Simulcast is enabled for ${browserBehavior.name()}`);\\n            }\\n            else {\\n                this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = false;\\n                this.logger.info('Simulcast is only supported on Chromium-based browsers');\\n            }\\n        }\\n    }\\n    isSimulcastUplinkPolicy(policy) {\\n        return !!(policy && policy.addObserver);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultMeetingSession;\\n//# sourceMappingURL=DefaultMeetingSession.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/DefaultMeetingSession.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js ***!\n  \\**********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ConnectionHealthPolicyConfiguration_1 = __webpack_require__(/*! ../connectionhealthpolicy/ConnectionHealthPolicyConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ConnectionHealthPolicyConfiguration.js\\\");\\nconst Utils_1 = __webpack_require__(/*! ../utils/Utils */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Utils.js\\\");\\nconst MeetingSessionCredentials_1 = __webpack_require__(/*! ./MeetingSessionCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js\\\");\\nconst MeetingSessionURLs_1 = __webpack_require__(/*! ./MeetingSessionURLs */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js\\\");\\n/**\\n * [[MeetingSessionConfiguration]] contains the information necessary to start\\n * a session.\\n */\\nclass MeetingSessionConfiguration {\\n    /**\\n     * Constructs a MeetingSessionConfiguration optionally with a chime:CreateMeeting and\\n     * chime:CreateAttendee response. You can pass in either a JSON object containing the\\n     * responses, or a JSON object containing the information in the Meeting and Attendee\\n     * root-level fields. Examples:\\n     *\\n     * ```\\n     * const configuration = new MeetingSessionConfiguration({\\n     *   \\\"Meeting\\\": {\\n     *      \\\"MeetingId\\\": \\\"...\\\",\\n     *      \\\"MediaPlacement\\\": {\\n     *        \\\"AudioHostUrl\\\": \\\"...\\\",\\n     *        \\\"SignalingUrl\\\": \\\"...\\\",\\n     *        \\\"TurnControlUrl\\\": \\\"...\\\"\\n     *      }\\n     *    }\\n     *   }\\n     * }, {\\n     *   \\\"Attendee\\\": {\\n     *     \\\"ExternalUserId\\\": \\\"...\\\",\\n     *     \\\"AttendeeId\\\": \\\"...\\\",\\n     *     \\\"JoinToken\\\": \\\"...\\\"\\n     *   }\\n     * });\\n     * ```\\n     *\\n     * ```\\n     * const configuration = new MeetingSessionConfiguration({\\n     *   \\\"MeetingId\\\": \\\"...\\\",\\n     *   \\\"MediaPlacement\\\": {\\n     *     \\\"AudioHostUrl\\\": \\\"...\\\",\\n     *     \\\"SignalingUrl\\\": \\\"...\\\",\\n     *     \\\"TurnControlUrl\\\": \\\"...\\\"\\n     *   }\\n     * }, {\\n     *   \\\"ExternalUserId\\\": \\\"...\\\",\\n     *   \\\"AttendeeId\\\": \\\"...\\\",\\n     *   \\\"JoinToken\\\": \\\"...\\\"\\n     * });\\n     * ```\\n     */\\n    constructor(createMeetingResponse, createAttendeeResponse) {\\n        /**\\n         * The id of the meeting the session is joining.\\n         */\\n        this.meetingId = null;\\n        /**\\n         * The external meeting id of the meeting the session is joining.\\n         */\\n        this.externalMeetingId = null;\\n        /**\\n         * The credentials used to authenticate the session.\\n         */\\n        this.credentials = null;\\n        /**\\n         * The URLs the session uses to reach the meeting service.\\n         */\\n        this.urls = null;\\n        /**\\n         * Maximum amount of time in milliseconds to allow for connecting.\\n         */\\n        this.connectionTimeoutMs = 15000;\\n        /**\\n         * Maximum amount of time in milliseconds to wait for the current attendee to be present\\n         * after initial connection.\\n         */\\n        this.attendeePresenceTimeoutMs = 0;\\n        /**\\n         * Configuration for connection health policies: reconnection, unusable audio warning connection,\\n         * and signal strength bars connection.\\n         */\\n        this.connectionHealthPolicyConfiguration = new ConnectionHealthPolicyConfiguration_1.default();\\n        /**\\n         * Maximum amount of time in milliseconds to allow for reconnecting.\\n         */\\n        this.reconnectTimeoutMs = 120 * 1000;\\n        /**\\n         * Fixed wait amount in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectFixedWaitMs = 0;\\n        /**\\n         * The short back-off time in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectShortBackOffMs = 1 * 1000;\\n        /**\\n         * The long back-off time in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectLongBackOffMs = 5 * 1000;\\n        /**\\n         * Feature flag to enable Simulcast\\n         */\\n        this.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = false;\\n        /**\\n         * Video downlink bandwidth policy to determine which remote videos\\n         * are subscribed to.\\n         */\\n        this.videoDownlinkBandwidthPolicy = null;\\n        /**\\n         * Video uplink bandwidth policy to determine the bandwidth constraints\\n         * of the local video.\\n         */\\n        this.videoUplinkBandwidthPolicy = null;\\n        /**\\n         * Keep the last frame of the video when a remote video is paused via the pauseVideoTile API.\\n         * This is done by not clearing the srcObject property of the videoElement.\\n         */\\n        this.keepLastFrameWhenPaused = false;\\n        if (createMeetingResponse) {\\n            createMeetingResponse = Utils_1.toLowerCasePropertyNames(createMeetingResponse);\\n            if (createMeetingResponse.meeting) {\\n                createMeetingResponse = createMeetingResponse.meeting;\\n            }\\n            this.meetingId = createMeetingResponse.meetingid;\\n            this.externalMeetingId = createMeetingResponse.externalmeetingid;\\n            this.urls = new MeetingSessionURLs_1.default();\\n            this.urls.audioHostURL = createMeetingResponse.mediaplacement.audiohosturl;\\n            this.urls.signalingURL = createMeetingResponse.mediaplacement.signalingurl;\\n            this.urls.turnControlURL = createMeetingResponse.mediaplacement.turncontrolurl;\\n            if (createMeetingResponse.mediaplacement.eventingestionurl) {\\n                this.urls.eventIngestionURL = createMeetingResponse.mediaplacement.eventingestionurl;\\n            }\\n        }\\n        if (createAttendeeResponse) {\\n            createAttendeeResponse = Utils_1.toLowerCasePropertyNames(createAttendeeResponse);\\n            if (createAttendeeResponse.attendee) {\\n                createAttendeeResponse = createAttendeeResponse.attendee;\\n            }\\n            this.credentials = new MeetingSessionCredentials_1.default();\\n            this.credentials.attendeeId = createAttendeeResponse.attendeeid;\\n            this.credentials.externalUserId = createAttendeeResponse.externaluserid;\\n            this.credentials.joinToken = createAttendeeResponse.jointoken;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionConfiguration;\\n//# sourceMappingURL=MeetingSessionConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingSessionCredentials]] includes the credentials used to authenticate\\n * the attendee on the meeting\\n */\\nclass MeetingSessionCredentials {\\n    constructor() {\\n        /**\\n         * The attendee id for these credentials.\\n         */\\n        this.attendeeId = null;\\n        /**\\n         * The external user id associated with the attendee.\\n         */\\n        this.externalUserId = null;\\n        /**\\n         * If set, the session will be authenticated with a join token.\\n         */\\n        this.joinToken = null;\\n    }\\n    /**\\n     * Overrides JSON serialization so that join token is redacted.\\n     */\\n    toJSON() {\\n        return {\\n            attendeeId: this.attendeeId,\\n            joinToken: this.joinToken === null ? null : '<redacted>',\\n        };\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionCredentials;\\n//# sourceMappingURL=MeetingSessionCredentials.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionCredentials.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEvent.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEvent.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.MeetingSessionLifecycleEvent = void 0;\\n/**\\n * [[MeetingSessionLifecycleEvent]] indicates the lifecycle status.\\n * Add new enums to the bottom. We depend on these numbers for analytics.\\n */\\nvar MeetingSessionLifecycleEvent;\\n(function (MeetingSessionLifecycleEvent) {\\n    /**\\n     * The session is connecting, either to start a new call, or reconnect to an existing one.\\n     */\\n    MeetingSessionLifecycleEvent[MeetingSessionLifecycleEvent[\\\"Connecting\\\"] = 0] = \\\"Connecting\\\";\\n    /**\\n     * The session successfully arrived in the started state either for the first time or\\n     * due to a change in connection type.\\n     */\\n    MeetingSessionLifecycleEvent[MeetingSessionLifecycleEvent[\\\"Started\\\"] = 1] = \\\"Started\\\";\\n    /**\\n     * The session came to a stop, either from leaving or due to a failure.\\n     */\\n    MeetingSessionLifecycleEvent[MeetingSessionLifecycleEvent[\\\"Stopped\\\"] = 2] = \\\"Stopped\\\";\\n})(MeetingSessionLifecycleEvent = exports.MeetingSessionLifecycleEvent || (exports.MeetingSessionLifecycleEvent = {}));\\nexports[\\\"default\\\"] = MeetingSessionLifecycleEvent;\\n//# sourceMappingURL=MeetingSessionLifecycleEvent.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEvent.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEventCondition.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEventCondition.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.MeetingSessionLifecycleEventCondition = void 0;\\n/**\\n * [[MeetingSessionLifecycleEventCondition]] indicates the lifecycle event condition.\\n * Add new enums to the bottom. We depend on these numbers for analytics.\\n */\\nvar MeetingSessionLifecycleEventCondition;\\n(function (MeetingSessionLifecycleEventCondition) {\\n    /**\\n     * The session is connecting for the first time.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"ConnectingNew\\\"] = 0] = \\\"ConnectingNew\\\";\\n    /**\\n     * The session was connected before and is now reconnecting.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"ReconnectingExisting\\\"] = 1] = \\\"ReconnectingExisting\\\";\\n    /**\\n     * The session successfully arrived in the started state for the first time.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"StartedNew\\\"] = 2] = \\\"StartedNew\\\";\\n    /**\\n     * The session successfully arrived in the started state but was connected before.\\n     * This can happen, for example, when the connection type changes.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"StartedExisting\\\"] = 3] = \\\"StartedExisting\\\";\\n    /**\\n     * The session successfully arrived in the started state following a reconnect.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"StartedAfterReconnect\\\"] = 4] = \\\"StartedAfterReconnect\\\";\\n    /**\\n     * The session stopped cleanly, probably due to leaving the call.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"StoppedCleanly\\\"] = 5] = \\\"StoppedCleanly\\\";\\n    /**\\n     * The session stopped due to a failure. A status code will indicate the cause of\\n     * the failure.\\n     */\\n    MeetingSessionLifecycleEventCondition[MeetingSessionLifecycleEventCondition[\\\"StoppedWithFailure\\\"] = 6] = \\\"StoppedWithFailure\\\";\\n})(MeetingSessionLifecycleEventCondition = exports.MeetingSessionLifecycleEventCondition || (exports.MeetingSessionLifecycleEventCondition = {}));\\nexports[\\\"default\\\"] = MeetingSessionLifecycleEventCondition;\\n//# sourceMappingURL=MeetingSessionLifecycleEventCondition.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEventCondition.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js ***!\n  \\***************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ./MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\n/**\\n * [[MeetingSessionStatus]] indicates a status received regarding the session.\\n */\\nclass MeetingSessionStatus {\\n    constructor(_statusCode) {\\n        this._statusCode = _statusCode;\\n    }\\n    statusCode() {\\n        return this._statusCode;\\n    }\\n    isFailure() {\\n        switch (this._statusCode) {\\n            case MeetingSessionStatusCode_1.default.AudioAuthenticationRejected:\\n            case MeetingSessionStatusCode_1.default.AudioCallAtCapacity:\\n            case MeetingSessionStatusCode_1.default.AudioInternalServerError:\\n            case MeetingSessionStatusCode_1.default.AudioServiceUnavailable:\\n            case MeetingSessionStatusCode_1.default.AudioDisconnected:\\n            case MeetingSessionStatusCode_1.default.VideoCallAtSourceCapacity:\\n            case MeetingSessionStatusCode_1.default.SignalingBadRequest:\\n            case MeetingSessionStatusCode_1.default.SignalingInternalServerError:\\n            case MeetingSessionStatusCode_1.default.SignalingRequestFailed:\\n            case MeetingSessionStatusCode_1.default.ICEGatheringTimeoutWorkaround:\\n            case MeetingSessionStatusCode_1.default.ConnectionHealthReconnect:\\n            case MeetingSessionStatusCode_1.default.RealtimeApiFailed:\\n            case MeetingSessionStatusCode_1.default.TaskFailed:\\n            case MeetingSessionStatusCode_1.default.NoAttendeePresent:\\n                return true;\\n            default:\\n                return false;\\n        }\\n    }\\n    isTerminal() {\\n        switch (this._statusCode) {\\n            case MeetingSessionStatusCode_1.default.Left:\\n            case MeetingSessionStatusCode_1.default.AudioJoinedFromAnotherDevice:\\n            case MeetingSessionStatusCode_1.default.AudioAuthenticationRejected:\\n            case MeetingSessionStatusCode_1.default.AudioCallAtCapacity:\\n            case MeetingSessionStatusCode_1.default.MeetingEnded:\\n            case MeetingSessionStatusCode_1.default.AudioDisconnected:\\n            case MeetingSessionStatusCode_1.default.TURNCredentialsForbidden:\\n            case MeetingSessionStatusCode_1.default.SignalingBadRequest:\\n            case MeetingSessionStatusCode_1.default.SignalingRequestFailed:\\n            case MeetingSessionStatusCode_1.default.VideoCallAtSourceCapacity:\\n            case MeetingSessionStatusCode_1.default.RealtimeApiFailed:\\n            case MeetingSessionStatusCode_1.default.AudioAttendeeRemoved:\\n                return true;\\n            default:\\n                return false;\\n        }\\n    }\\n    isAudioConnectionFailure() {\\n        switch (this._statusCode) {\\n            case MeetingSessionStatusCode_1.default.AudioAuthenticationRejected:\\n            case MeetingSessionStatusCode_1.default.AudioInternalServerError:\\n            case MeetingSessionStatusCode_1.default.AudioServiceUnavailable:\\n            case MeetingSessionStatusCode_1.default.ICEGatheringTimeoutWorkaround:\\n            case MeetingSessionStatusCode_1.default.SignalingBadRequest:\\n            case MeetingSessionStatusCode_1.default.SignalingInternalServerError:\\n            case MeetingSessionStatusCode_1.default.SignalingRequestFailed:\\n            case MeetingSessionStatusCode_1.default.RealtimeApiFailed:\\n            case MeetingSessionStatusCode_1.default.NoAttendeePresent:\\n                return true;\\n            default:\\n                return false;\\n        }\\n    }\\n    toString() {\\n        switch (this._statusCode) {\\n            case MeetingSessionStatusCode_1.default.OK:\\n                return 'Everything is OK so far.';\\n            case MeetingSessionStatusCode_1.default.Left:\\n                return 'The attendee left the meeting.';\\n            case MeetingSessionStatusCode_1.default.AudioJoinedFromAnotherDevice:\\n                return 'The attendee joined from another device.';\\n            case MeetingSessionStatusCode_1.default.AudioAuthenticationRejected:\\n                return 'The meeting rejected the attendee.';\\n            case MeetingSessionStatusCode_1.default.AudioCallAtCapacity:\\n                return \\\"The attendee couldn't join because the meeting was at capacity.\\\";\\n            case MeetingSessionStatusCode_1.default.MeetingEnded:\\n                return 'The meeting ended.';\\n            case MeetingSessionStatusCode_1.default.AudioInternalServerError:\\n            case MeetingSessionStatusCode_1.default.AudioServiceUnavailable:\\n            case MeetingSessionStatusCode_1.default.AudioDisconnected:\\n                return 'The audio connection failed.';\\n            case MeetingSessionStatusCode_1.default.VideoCallSwitchToViewOnly:\\n                return \\\"The attendee couldn't start the local video because the maximum video capacity was reached.\\\";\\n            case MeetingSessionStatusCode_1.default.VideoCallAtSourceCapacity:\\n                return 'The connection failed due to an internal server error.';\\n            case MeetingSessionStatusCode_1.default.SignalingBadRequest:\\n            case MeetingSessionStatusCode_1.default.SignalingInternalServerError:\\n            case MeetingSessionStatusCode_1.default.SignalingRequestFailed:\\n                return 'The signaling connection failed.';\\n            case MeetingSessionStatusCode_1.default.ICEGatheringTimeoutWorkaround:\\n                return 'Gathering ICE candidates timed out. In Chrome, this might indicate that the browser is in a bad state after reconnecting to VPN.';\\n            case MeetingSessionStatusCode_1.default.ConnectionHealthReconnect:\\n                return 'The meeting was reconnected.';\\n            case MeetingSessionStatusCode_1.default.RealtimeApiFailed:\\n                return 'The real-time API failed. This status code might indicate that the callback you passed to the real-time API threw an exception.';\\n            case MeetingSessionStatusCode_1.default.TaskFailed:\\n                return 'The connection failed. See the error message for more details.';\\n            case MeetingSessionStatusCode_1.default.IncompatibleSDP:\\n                return 'The connection failed due to incompatible SDP.';\\n            case MeetingSessionStatusCode_1.default.TURNCredentialsForbidden:\\n                return 'The meeting ended, or the attendee was removed.';\\n            case MeetingSessionStatusCode_1.default.NoAttendeePresent:\\n                return 'The attendee was not present.';\\n            case MeetingSessionStatusCode_1.default.AudioAttendeeRemoved:\\n                return 'The meeting ended because attendee removed.';\\n            case MeetingSessionStatusCode_1.default.AudioVideoWasRemovedFromPrimaryMeeting:\\n                return 'The Primary meeting credentials provided are no longer valid. chime::DeleteAttendee may have been called on them.';\\n            case MeetingSessionStatusCode_1.default.AudioDisconnectAudio:\\n                return 'The audio connection failed.';\\n            /* istanbul ignore next */\\n            default: {\\n                // You get a compile-time error if you do not handle any status code.\\n                const exhaustiveCheck = this._statusCode;\\n                throw new Error(`Unhandled case: ${exhaustiveCheck}`);\\n            }\\n        }\\n    }\\n    static fromSignalFrame(frame) {\\n        if (frame.error && frame.error.status) {\\n            return this.fromSignalingStatus(frame.error.status);\\n        }\\n        else if (frame.type === SignalingProtocol_js_1.SdkSignalFrame.Type.AUDIO_STATUS) {\\n            if (frame.audioStatus) {\\n                return this.fromAudioStatus(frame.audioStatus.audioStatus);\\n            }\\n            return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.SignalingRequestFailed);\\n        }\\n        else if (frame.type === SignalingProtocol_js_1.SdkSignalFrame.Type.PRIMARY_MEETING_LEAVE) {\\n            return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioVideoWasRemovedFromPrimaryMeeting);\\n        }\\n        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.OK);\\n    }\\n    static fromAudioStatus(status) {\\n        // TODO: Add these numbers to proto definition and reference them here.\\n        switch (status) {\\n            case 200:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.OK);\\n            case 301:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioJoinedFromAnotherDevice);\\n            case 302:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioDisconnectAudio);\\n            case 403:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioAuthenticationRejected);\\n            case 409:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioCallAtCapacity);\\n            case 410:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.MeetingEnded);\\n            case 411:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioAttendeeRemoved);\\n            case 500:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioInternalServerError);\\n            case 503:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioServiceUnavailable);\\n            default:\\n                switch (Math.floor(status / 100)) {\\n                    case 2:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.OK);\\n                    default:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioDisconnected);\\n                }\\n        }\\n    }\\n    static fromSignalingStatus(status) {\\n        // TODO: Add these numbers to proto definition and reference them here.\\n        //\\n        // We don't bother adding additional codes with different prefixes, and we probably\\n        // shouldn't be prefixing all these errors (e.g. `AuthenticationRejected`) with the media type\\n        // since that doesn't make sense.\\n        switch (status) {\\n            case 206:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.VideoCallSwitchToViewOnly);\\n            case 509:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.VideoCallAtSourceCapacity);\\n            case 403:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioAuthenticationRejected);\\n            case 409:\\n                return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.AudioCallAtCapacity);\\n            default:\\n                switch (Math.floor(status / 100)) {\\n                    case 2:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.OK);\\n                    case 4:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.SignalingBadRequest);\\n                    case 5:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.SignalingInternalServerError);\\n                    default:\\n                        return new MeetingSessionStatus(MeetingSessionStatusCode_1.default.SignalingRequestFailed);\\n                }\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionStatus;\\n//# sourceMappingURL=MeetingSessionStatus.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.MeetingSessionStatusCode = void 0;\\n/**\\n * [[MeetingSessionStatusCode]] gives the underlying reason for a given [[MeetingSessionStatus]]. Though some codes are used for\\n * [[MeetingSessionStatus]] internally, the primary use of these is in `AudioVideoObserver.audioVideoDidStop`, and their docstrings\\n * will be specific to that usage. Other functions that use [[MeetingSessionStatus]] (mainly\\n * `AudioVideoControllerFacade.promoteToPrimaryMeeting` and `AudioVideoObserver.audioVideoWasDemotedFromPrimaryMeeting` will document\\n * their usage separately).\\n *\\n * These status codes can be used for logging, debugging, and notification to end users, but in most cases should not\\n * be used for any retry behavior, as the audio video controller will already be retrying non-terminal errors (i.e. regardless\\n * of `MeetingSessionStatus.isTerminal`, your application should not try to immediately restart or recreate the\\n * audio video controller). For error codes that indicate issues with the Chime service, please create a github issue\\n * with browser logs if they occur frequently.\\n *\\n * If `MeetingSessionStatus.isTerminal` returns `true`, you should remove any meeting UX in addition to notifying the user,\\n * as the audio video controller will not be retrying the connection. When notifying users, more general failure messages are\\n * recommended unless otherwise noted.\\n */\\nvar MeetingSessionStatusCode;\\n(function (MeetingSessionStatusCode) {\\n    /**\\n     * There is no error. This code is used internally but will never be returned by `audioVideoDidStop`\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"OK\\\"] = 0] = \\\"OK\\\";\\n    /**\\n     * The attendee left the meeting normally via `AudioVideoConftrollerFacade.stop`\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"Left\\\"] = 1] = \\\"Left\\\";\\n    /**\\n     * The attendee joined from another device (e.g. another browser window/tab or on mobile) using the\\n     * same credentials. `Audio` prefix is irrelevant. The end-user may want to be notified of this\\n     * type of error.\\n     *\\n     * This also can occur if your application unintentionally creates two meeting sessions.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioJoinedFromAnotherDevice\\\"] = 2] = \\\"AudioJoinedFromAnotherDevice\\\";\\n    /**\\n     * Authentication was rejected as the attendee information in `MeetingSessionCredentials` did\\n     * not match that of an attendee created via `chime::CreateAttendee`.\\n     *\\n     * This error may imply an issue with your credential providing service. The `Audio` prefix is irrelevant.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioAuthenticationRejected\\\"] = 3] = \\\"AudioAuthenticationRejected\\\";\\n    /**\\n     * The client can not join because the meeting is at capacity. The service supports up to 250 attendees. The\\n     * end user may want to be notified of this type of error. The `Audio` prefix is irrelevant.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioCallAtCapacity\\\"] = 4] = \\\"AudioCallAtCapacity\\\";\\n    /**\\n     * The attendee attempted to join a meeting that has already ended. See\\n     * [this FAQ](https://aws.github.io/amazon-chime-sdk-js/modules/faqs.html#when-does-an-amazon-chime-sdk-meeting-end)\\n     * for more information. The end user may want to be notified of this type of error.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"MeetingEnded\\\"] = 5] = \\\"MeetingEnded\\\";\\n    /**\\n     * There was an internal server error related to audio. This may indicate some issue with the audio device, or an issue with\\n     * the Amazon Chime SDK service itself.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioInternalServerError\\\"] = 6] = \\\"AudioInternalServerError\\\";\\n    /**\\n     * There was an internal server error related to audio. This may indicate some issue with the audio device, or an issue with\\n     * the Amazon Chime SDK service itself.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioServiceUnavailable\\\"] = 7] = \\\"AudioServiceUnavailable\\\";\\n    /**\\n     * There was an internal server error related to audio. This may indicate some issue with the audio device, or an issue with\\n     * the Amazon Chime SDK service itself.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioDisconnected\\\"] = 8] = \\\"AudioDisconnected\\\";\\n    /**\\n     * This is only used internally and will not be provided in any `audioVideoDidStop` calls.\\n     *\\n     * The client has asked to send and receive video, but it is only possible to\\n     * continue in view-only mode (receiving video). This should be handled by\\n     * explicitly switching to view-only mode.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"VideoCallSwitchToViewOnly\\\"] = 9] = \\\"VideoCallSwitchToViewOnly\\\";\\n    /**\\n     * This is only used internally and will not be provided in any `audioVideoDidStop` calls.\\n     *\\n     * This can happen when you attempt to join a video meeting in \\\"send only\\\" mode\\n     * (transmitting your camera, but not receiving anything -- this isn't something\\n     * we ever do in practice, but it is supported on the server). It should be\\n     * treated as \\\"fatal\\\" and probably should not be retried (despite the 5xx nature).\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"VideoCallAtSourceCapacity\\\"] = 10] = \\\"VideoCallAtSourceCapacity\\\";\\n    /**\\n     * The Amazon Chime SDK for JavaScript failed to establish a signaling connection because\\n     * you or someone else deleted the attendee using the\\n     * [DeleteAttendee](https://docs.aws.amazon.com/chime/latest/APIReference/API_DeleteAttendee.html)\\n     * API action in your server application. You also should not use the attendee response from\\n     * the ended meeting that you created with the same ClientRequestToken parameter\\n     * before.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"SignalingBadRequest\\\"] = 11] = \\\"SignalingBadRequest\\\";\\n    /**\\n     * The Chime SDK for JavaScript either failed to establish a signaling connection to the Chime\\n     * backend due to an internal server error or the connection was lost mid-call.\\n     *\\n     * This may indicate an issue with the Chime service, but also often indicates a network issue impacting the end user,\\n     * who may want to be notified of their unstable network during the reconnection.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"SignalingInternalServerError\\\"] = 12] = \\\"SignalingInternalServerError\\\";\\n    /**\\n     * Received unknown signaling error frame without a status. This code is nearly impossible to occur\\n     * and indicates an issue with the Chime service.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"SignalingRequestFailed\\\"] = 13] = \\\"SignalingRequestFailed\\\";\\n    /**\\n     * Timed out gathering ICE candidates. If in Chrome, this could be an\\n     * indication that the browser is in a bad state due to a VPN reconnect and\\n     * the user should try quitting and relaunching the app. See:\\n     * https://bugs.chromium.org/p/webrtc/issues/detail?id=9097\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"ICEGatheringTimeoutWorkaround\\\"] = 14] = \\\"ICEGatheringTimeoutWorkaround\\\";\\n    /**\\n     * Due to connection health as determined by [[ConnectionHealthPolicyConfiguration]], a reconnect has been triggered.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"ConnectionHealthReconnect\\\"] = 15] = \\\"ConnectionHealthReconnect\\\";\\n    /**\\n     * The [[RealtimeController]] failed in some way. This indicates an issue with the callback function provided to RealtimeController APIs (e.g. a callback is throwing an error).\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"RealtimeApiFailed\\\"] = 16] = \\\"RealtimeApiFailed\\\";\\n    /**\\n     * A step in the connection to the Amazon Chime SDK backends failed without a more specific reason. This may indicate end-user connection issues\\n     * and should be retried.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"TaskFailed\\\"] = 17] = \\\"TaskFailed\\\";\\n    /**\\n     * There was an issue with media negotiation. This may indicate an issue with Amazon Chime SDK, or that the end user is using an unsupported\\n     * browser. Please use `new DefaultBrowserBehavior().isSupported()` pre-call to check the support of end-user browsers\\n     * and warn them of possible issues.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"IncompatibleSDP\\\"] = 18] = \\\"IncompatibleSDP\\\";\\n    /**\\n     * This can happen when you attempt to join a meeting which has ended or attendee got removed. This is analogous to `MeetingEnded` except\\n     * determined through the media channel rather then the signaling channel.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"TURNCredentialsForbidden\\\"] = 19] = \\\"TURNCredentialsForbidden\\\";\\n    /**\\n     * The attendee did not show up on the roster. This may indicate an issue with the end user audio device or and issue with Amazon Chime SDK.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"NoAttendeePresent\\\"] = 20] = \\\"NoAttendeePresent\\\";\\n    /**\\n     * The session was ended because the attendee has been removed via `chime::DeleteAttendee`. The end user may want to be notified\\n     * of this error.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioAttendeeRemoved\\\"] = 21] = \\\"AudioAttendeeRemoved\\\";\\n    /**\\n     * This is only used in promotion functions and will not be provided in any `audioVideoDidStop` calls.\\n     *\\n     * The attendees Primary meeting credentials have been revoked or deleted.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioVideoWasRemovedFromPrimaryMeeting\\\"] = 22] = \\\"AudioVideoWasRemovedFromPrimaryMeeting\\\";\\n    /**\\n     * This is only used internally and will not be provided in any `audioVideoDidStop` calls.\\n     *\\n     * Reserved.\\n     */\\n    MeetingSessionStatusCode[MeetingSessionStatusCode[\\\"AudioDisconnectAudio\\\"] = 23] = \\\"AudioDisconnectAudio\\\";\\n})(MeetingSessionStatusCode = exports.MeetingSessionStatusCode || (exports.MeetingSessionStatusCode = {}));\\nexports[\\\"default\\\"] = MeetingSessionStatusCode;\\n//# sourceMappingURL=MeetingSessionStatusCode.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingSessionTURNCredentials]] contains TURN credentials from the TURN server.\\n */\\nclass MeetingSessionTURNCredentials {\\n    constructor() {\\n        this.username = null;\\n        this.password = null;\\n        this.ttl = null;\\n        this.uris = null;\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionTURNCredentials;\\n//# sourceMappingURL=MeetingSessionTURNCredentials.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js ***!\n  \\*************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingSessionURLs]] contains the URLs that will be used to reach the\\n * meeting service.\\n */\\nclass MeetingSessionURLs {\\n    constructor() {\\n        /**\\n         * The audio host URL of the session\\n         */\\n        this._audioHostURL = null;\\n        /**\\n         * The signaling URL of the session\\n         */\\n        this._signalingURL = null;\\n        /**\\n         * The TURN control URL of the session\\n         */\\n        this._turnControlURL = null;\\n        /**\\n         * The event ingestion URL to send the meeting events.\\n         */\\n        this._eventIngestionURL = null;\\n        /**\\n         * Function to transform URLs. Use this to rewrite URLs to traverse proxies.\\n         * The default implementation returns the original URL unchanged.\\n         */\\n        this.urlRewriter = (url) => {\\n            return url;\\n        };\\n    }\\n    /**\\n     * Gets or sets the audio host URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.\\n     */\\n    get audioHostURL() {\\n        return this.urlRewriter(this._audioHostURL);\\n    }\\n    set audioHostURL(value) {\\n        this._audioHostURL = value;\\n    }\\n    /**\\n     * Gets or sets the signaling URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.\\n     */\\n    get signalingURL() {\\n        return this.urlRewriter(this._signalingURL);\\n    }\\n    set signalingURL(value) {\\n        this._signalingURL = value;\\n    }\\n    /**\\n     * Gets or sets the TURN control URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.\\n     */\\n    get turnControlURL() {\\n        return this.urlRewriter(this._turnControlURL);\\n    }\\n    set turnControlURL(value) {\\n        this._turnControlURL = value;\\n    }\\n    /**\\n     * Gets or sets the events ingestion URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.\\n     */\\n    get eventIngestionURL() {\\n        return this.urlRewriter(this._eventIngestionURL);\\n    }\\n    set eventIngestionURL(value) {\\n        this._eventIngestionURL = value;\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionURLs;\\n//# sourceMappingURL=MeetingSessionURLs.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionURLs.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MeetingSessionVideoAvailability]] contains the video availability information.\\n */\\nclass MeetingSessionVideoAvailability {\\n    constructor() {\\n        /**\\n         * Indicates whether one or more remote video streams\\n         * are available for streaming. This can be used to decide whether or not to\\n         * switch the connection type to include video.\\n         */\\n        this.remoteVideoAvailable = false;\\n        /**\\n         * Indicates whether the server has a slot available for\\n         * this client's local video tile. If the client is already sending a local\\n         * video tile, then this will be true. This property can be used to decide\\n         * whether to offer the option to start the local video tile.\\n         */\\n        this.canStartLocalVideo = false;\\n    }\\n    /**\\n     * Returns whether the fields are the same as that of another availability object.\\n     */\\n    equal(other) {\\n        return (this.remoteVideoAvailable === other.remoteVideoAvailable &&\\n            this.canStartLocalVideo === other.canStartLocalVideo);\\n    }\\n    /**\\n     * Returns a deep copy of this object.\\n     */\\n    clone() {\\n        const cloned = new MeetingSessionVideoAvailability();\\n        cloned.remoteVideoAvailable = this.remoteVideoAvailable;\\n        cloned.canStartLocalVideo = this.canStartLocalVideo;\\n        return cloned;\\n    }\\n}\\nexports[\\\"default\\\"] = MeetingSessionVideoAvailability;\\n//# sourceMappingURL=MeetingSessionVideoAvailability.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/message/Message.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/message/Message.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass Message {\\n    constructor(type, // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\\n    headers, payload) {\\n        this.type = type;\\n        this.headers = headers;\\n        this.payload = payload;\\n    }\\n}\\nexports[\\\"default\\\"] = Message;\\n//# sourceMappingURL=Message.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/message/Message.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/messagingsession/DefaultMessagingSession.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/messagingsession/DefaultMessagingSession.js ***!\n  \\********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst client_chime_sdk_messaging_1 = __webpack_require__(/*! @aws-sdk/client-chime-sdk-messaging */ \\\"./node_modules/@aws-sdk/client-chime-sdk-messaging/dist-es/index.js\\\");\\nconst FullJitterBackoff_1 = __webpack_require__(/*! ../backoff/FullJitterBackoff */ \\\"./node_modules/amazon-chime-sdk-js/build/backoff/FullJitterBackoff.js\\\");\\nconst CSPMonitor_1 = __webpack_require__(/*! ../cspmonitor/CSPMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/cspmonitor/CSPMonitor.js\\\");\\nconst Message_1 = __webpack_require__(/*! ../message/Message */ \\\"./node_modules/amazon-chime-sdk-js/build/message/Message.js\\\");\\nconst DefaultReconnectController_1 = __webpack_require__(/*! ../reconnectcontroller/DefaultReconnectController */ \\\"./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst DefaultSigV4_1 = __webpack_require__(/*! ../sigv4/DefaultSigV4 */ \\\"./node_modules/amazon-chime-sdk-js/build/sigv4/DefaultSigV4.js\\\");\\nconst DefaultWebSocketAdapter_1 = __webpack_require__(/*! ../websocketadapter/DefaultWebSocketAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js\\\");\\nconst WebSocketReadyState_1 = __webpack_require__(/*! ../websocketadapter/WebSocketReadyState */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js\\\");\\nconst PrefetchOn_1 = __webpack_require__(/*! ./PrefetchOn */ \\\"./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchOn.js\\\");\\nclass DefaultMessagingSession {\\n    constructor(configuration, logger, webSocket, reconnectController, sigV4) {\\n        this.configuration = configuration;\\n        this.logger = logger;\\n        this.webSocket = webSocket;\\n        this.reconnectController = reconnectController;\\n        this.sigV4 = sigV4;\\n        this.observerQueue = new Set();\\n        if (!this.webSocket) {\\n            this.webSocket = new DefaultWebSocketAdapter_1.default(this.logger);\\n        }\\n        if (!this.reconnectController) {\\n            this.reconnectController = new DefaultReconnectController_1.default(configuration.reconnectTimeoutMs, new FullJitterBackoff_1.default(configuration.reconnectFixedWaitMs, configuration.reconnectShortBackoffMs, configuration.reconnectLongBackoffMs));\\n        }\\n        if (!this.sigV4) {\\n            this.sigV4 = new DefaultSigV4_1.default(this.configuration.chimeClient);\\n        }\\n        CSPMonitor_1.default.addLogger(this.logger);\\n        CSPMonitor_1.default.register();\\n        this.preBootstrapMessages = [];\\n    }\\n    addObserver(observer) {\\n        this.logger.info('adding messaging observer');\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.logger.info('removing messaging observer');\\n        this.observerQueue.delete(observer);\\n    }\\n    start() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.isClosed()) {\\n                yield this.startConnecting(false);\\n            }\\n            else {\\n                this.logger.info('messaging session already started');\\n            }\\n        });\\n    }\\n    stop() {\\n        if (!this.isClosed()) {\\n            this.isClosing = true;\\n            this.webSocket.close();\\n            CSPMonitor_1.default.removeLogger(this.logger);\\n        }\\n        else {\\n            this.logger.info('no existing messaging session needs closing');\\n        }\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                if (this.observerQueue.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    setUpEventListeners() {\\n        this.webSocket.addEventListener('open', () => {\\n            this.openEventHandler();\\n        });\\n        this.webSocket.addEventListener('message', (event) => {\\n            this.receiveMessageHandler(event.data);\\n        });\\n        this.webSocket.addEventListener('close', (event) => {\\n            this.closeEventHandler(event);\\n        });\\n        this.webSocket.addEventListener('error', () => {\\n            this.logger.error(`WebSocket error`);\\n        });\\n    }\\n    startConnecting(reconnecting) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            yield this.startConnectingInternal(reconnecting);\\n            return yield new Promise((resolve, reject) => {\\n                this.bootstrapResolved = resolve;\\n                this.bootstrapRejected = reject;\\n            });\\n        });\\n    }\\n    startConnectingInternal(reconnecting) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let endpointUrl = this.configuration.endpointUrl;\\n            // Moving this reconnect logic can potentially result into an infinite reconnect loop on errors.\\n            // Check https://github.com/aws/amazon-chime-sdk-js/issues/2372 for details.\\n            if (!reconnecting) {\\n                this.reconnectController.reset();\\n            }\\n            if (this.reconnectController.hasStartedConnectionAttempt()) {\\n                this.reconnectController.startedConnectionAttempt(false);\\n            }\\n            else {\\n                this.reconnectController.startedConnectionAttempt(true);\\n            }\\n            // reconnect needs to re-resolve endpoint url, which will also refresh credentials on client if they are expired\\n            if (reconnecting || endpointUrl === undefined) {\\n                try {\\n                    if (this.configuration.chimeClient.getMessagingSessionEndpoint instanceof Function) {\\n                        const response = yield this.configuration.chimeClient.getMessagingSessionEndpoint();\\n                        // Check for aws sdk v3 with v2 style compatibility first\\n                        if ((_a = response.Endpoint) === null || _a === void 0 ? void 0 : _a.Url) {\\n                            endpointUrl = response.Endpoint.Url;\\n                        }\\n                        else {\\n                            // Make aws sdk v2 call\\n                            const endpoint = yield this.configuration.chimeClient\\n                                .getMessagingSessionEndpoint()\\n                                .promise();\\n                            endpointUrl = endpoint.Endpoint.Url;\\n                        }\\n                    }\\n                    else {\\n                        endpointUrl = (yield this.configuration.chimeClient.send(new client_chime_sdk_messaging_1.GetMessagingSessionEndpointCommand({}))).Endpoint.Url;\\n                    }\\n                    this.logger.debug(`Messaging endpoint resolved to: ${endpointUrl}`);\\n                }\\n                catch (e) {\\n                    // send artificial close code event so the\\n                    // re-connect logic of underlying websocket client is\\n                    // triggered in the close handler\\n                    this.logger.error(`Messaging Session failed to resolve endpoint: ${e}`);\\n                    const closeEvent = new CloseEvent('close', {\\n                        wasClean: false,\\n                        code: 4999,\\n                        reason: 'Failed to get messaging session endpoint URL',\\n                        bubbles: false,\\n                    });\\n                    this.closeEventHandler(closeEvent);\\n                    return;\\n                }\\n            }\\n            const signedUrl = yield this.prepareWebSocketUrl(endpointUrl);\\n            this.logger.info(`opening connection to ${signedUrl}`);\\n            if (!reconnecting) {\\n                this.reconnectController.reset();\\n            }\\n            if (this.reconnectController.hasStartedConnectionAttempt()) {\\n                this.reconnectController.startedConnectionAttempt(false);\\n            }\\n            else {\\n                this.reconnectController.startedConnectionAttempt(true);\\n            }\\n            this.webSocket.create(signedUrl, [], true);\\n            this.forEachObserver(observer => {\\n                if (observer.messagingSessionDidStartConnecting) {\\n                    observer.messagingSessionDidStartConnecting(reconnecting);\\n                }\\n            });\\n            this.setUpEventListeners();\\n        });\\n    }\\n    prepareWebSocketUrl(endpointUrl) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const queryParams = new Map();\\n            queryParams.set('userArn', [this.configuration.userArn]);\\n            queryParams.set('sessionId', [this.configuration.messagingSessionId]);\\n            if (this.configuration.prefetchOn === PrefetchOn_1.default.Connect) {\\n                queryParams.set('prefetch-on', [PrefetchOn_1.default.Connect]);\\n            }\\n            if (this.configuration.prefetchSortBy) {\\n                queryParams.set('prefetch-sort-by', [this.configuration.prefetchSortBy]);\\n            }\\n            return yield this.sigV4.signURL('GET', 'wss', 'chime', endpointUrl, '/connect', '', queryParams);\\n        });\\n    }\\n    isClosed() {\\n        return (this.webSocket.readyState() === WebSocketReadyState_1.default.None ||\\n            this.webSocket.readyState() === WebSocketReadyState_1.default.Closed);\\n    }\\n    openEventHandler() {\\n        this.reconnectController.reset();\\n        this.isSessionEstablished = false;\\n    }\\n    receiveMessageHandler(data) {\\n        try {\\n            const jsonData = JSON.parse(data);\\n            const messageType = jsonData.Headers['x-amz-chime-event-type'];\\n            const message = new Message_1.default(messageType, jsonData.Headers, jsonData.Payload || null);\\n            if (!this.isSessionEstablished && messageType === 'SESSION_ESTABLISHED') {\\n                // Backend connects WebSocket and then either\\n                // (1) Closes with WebSocket error code to reflect failure to authorize or other connection error OR\\n                // (2) Sends SESSION_ESTABLISHED. SESSION_ESTABLISHED indicates that all messages and events on a channel\\n                // the app instance user is a member of is guaranteed to be delivered on this WebSocket as long as the WebSocket\\n                // connection stays opened.\\n                this.forEachObserver(observer => {\\n                    if (observer.messagingSessionDidStart) {\\n                        observer.messagingSessionDidStart();\\n                    }\\n                });\\n                this.bootstrapResolved();\\n                this.isSessionEstablished = true;\\n                // Send message and flush the queue.\\n                const preBootstrapMessageLength = this.preBootstrapMessages.length;\\n                for (let iter = 0; iter < preBootstrapMessageLength; iter++) {\\n                    const preBootstrapMessage = this.preBootstrapMessages.shift();\\n                    this.forEachObserver(observer => {\\n                        this.sendMessageToObserver(observer, preBootstrapMessage);\\n                    });\\n                }\\n            }\\n            else if (!this.isSessionEstablished) {\\n                // SESSION_ESTABLISHED is not guaranteed to be the first message, and in rare conditions a message or event from\\n                // a channel the member is a member of might arrive prior to SESSION_ESTABLISHED.  Because SESSION_ESTABLISHED indicates\\n                // it is safe to bootstrap the user application without any race conditions in losing events we opt to store messages prior\\n                // to SESSION_ESTABLISHED being received and send when once SESSION_ESTABLISHED.\\n                this.preBootstrapMessages.push(message);\\n                return;\\n            }\\n            this.forEachObserver(observer => {\\n                this.sendMessageToObserver(observer, message);\\n            });\\n        }\\n        catch (error) {\\n            this.logger.error(`Messaging parsing failed: ${error}`);\\n        }\\n    }\\n    sendMessageToObserver(observer, message) {\\n        if (observer.messagingSessionDidReceiveMessage) {\\n            observer.messagingSessionDidReceiveMessage(message);\\n        }\\n    }\\n    retryConnection() {\\n        return this.reconnectController.retryWithBackoff(() => __awaiter(this, void 0, void 0, function* () {\\n            yield this.startConnecting(true);\\n        }), null);\\n    }\\n    closeEventHandler(event) {\\n        this.logger.info(`WebSocket close: ${event.code} ${event.reason}`);\\n        if (event.code !== 4999) {\\n            this.webSocket.destroy();\\n        }\\n        if (!this.isClosing && this.canReconnect(event.code) && this.retryConnection()) {\\n            return;\\n        }\\n        this.isClosing = false;\\n        if (this.isSessionEstablished) {\\n            this.forEachObserver(observer => {\\n                if (observer.messagingSessionDidStop) {\\n                    observer.messagingSessionDidStop(event);\\n                }\\n            });\\n        }\\n        else {\\n            this.bootstrapRejected(event);\\n        }\\n    }\\n    canReconnect(closeCode) {\\n        // 4003 is Kicked closing event from the back end\\n        return (closeCode === 1001 ||\\n            closeCode === 1006 ||\\n            (closeCode >= 1011 && closeCode <= 1014) ||\\n            (closeCode > 4000 && closeCode !== 4002 && closeCode !== 4003 && closeCode !== 4401));\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultMessagingSession;\\n//# sourceMappingURL=DefaultMessagingSession.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/messagingsession/DefaultMessagingSession.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/messagingsession/MessagingSessionConfiguration.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/messagingsession/MessagingSessionConfiguration.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[MessagingSessionConfiguration]] contains the information necessary to start\\n * a messaging session.\\n */\\n/* eslint  @typescript-eslint/no-explicit-any: 0, @typescript-eslint/explicit-module-boundary-types: 0 */\\nclass MessagingSessionConfiguration {\\n    /**\\n     * Constructs a MessagingSessionConfiguration optionally with userArn, messaging session id, a messaging session\\n     * endpoint URL, and the chimeClient.\\n     *\\n     * endpointUrl is deprecated and should not be used. Internally it is resolved on connect via chimeClient if undefined, and\\n     * always re-resolved on reconnect.\\n     *\\n     * The messaging session id is to uniquely identify this messaging session for the userArn.\\n     * If messaging session id is passed in as null, it will be automatically generated.\\n     */\\n    constructor(userArn, messagingSessionId, endpointUrl, chimeClient) {\\n        this.userArn = userArn;\\n        this.messagingSessionId = messagingSessionId;\\n        this.endpointUrl = endpointUrl;\\n        this.chimeClient = chimeClient;\\n        /**\\n         * Maximum amount of time in milliseconds to allow for reconnecting.\\n         */\\n        this.reconnectTimeoutMs = 10 * 1000;\\n        /**\\n         * Fixed wait amount in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectFixedWaitMs = 0;\\n        /**\\n         * The short back off time in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectShortBackoffMs = 1 * 1000;\\n        /**\\n         * The long back off time in milliseconds between reconnecting attempts.\\n         */\\n        this.reconnectLongBackoffMs = 5 * 1000;\\n        /**\\n         * The enum to indicate if we want to turn on prefetch feature. Prefetch feature will send out CHANNEL_DETAILS event\\n         * upon websocket connection, which includes information about channel, channel messages, channel memberships etc.\\n         */\\n        this.prefetchOn = undefined;\\n        /**\\n         * The enum to indicate the sorting mechanism to use when deciding which channels to Prefetch. Prefetch feature will send out\\n         * CHANNEL_DETAILS event upon websocket connection, which includes information about channel, channel messages, channel memberships etc.\\n         * The first 50 channels matching the PrefetchSortBy will be sent.  If not set, channels will be returned first by those\\n         * with unread messages and then those with the latest last sent message timestamp.\\n         */\\n        this.prefetchSortBy = undefined;\\n        if (!this.messagingSessionId) {\\n            this.messagingSessionId = this.generateSessionId();\\n        }\\n    }\\n    generateSessionId() {\\n        const num = new Uint32Array(1);\\n        const randomNum = window.crypto.getRandomValues(num);\\n        return randomNum[0].toString();\\n    }\\n}\\nexports[\\\"default\\\"] = MessagingSessionConfiguration;\\n//# sourceMappingURL=MessagingSessionConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/messagingsession/MessagingSessionConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchOn.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchOn.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n// Using an enum here to make sure we can expand on future features\\nvar PrefetchOn;\\n(function (PrefetchOn) {\\n    PrefetchOn[\\\"Connect\\\"] = \\\"connect\\\";\\n})(PrefetchOn || (PrefetchOn = {}));\\nexports[\\\"default\\\"] = PrefetchOn;\\n//# sourceMappingURL=PrefetchOn.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchOn.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchSortBy.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchSortBy.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n// Using an enum here to make sure we can expand on future features\\nvar PrefetchSortBy;\\n(function (PrefetchSortBy) {\\n    PrefetchSortBy[\\\"Unread\\\"] = \\\"unread\\\";\\n    PrefetchSortBy[\\\"LastMessageTimestamp\\\"] = \\\"last-message-timestamp\\\";\\n})(PrefetchSortBy || (PrefetchSortBy = {}));\\nexports[\\\"default\\\"] = PrefetchSortBy;\\n//# sourceMappingURL=PrefetchSortBy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/messagingsession/PrefetchSortBy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ContentShareConstants_1 = __webpack_require__(/*! ../contentsharecontroller/ContentShareConstants */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\\\");\\nclass DefaultModality {\\n    constructor(_id) {\\n        this._id = _id;\\n    }\\n    id() {\\n        return this._id;\\n    }\\n    base() {\\n        if (!this._id) {\\n            return '';\\n        }\\n        return this._id.split(DefaultModality.MODALITY_SEPARATOR)[0];\\n    }\\n    modality() {\\n        if (!this._id) {\\n            return '';\\n        }\\n        const components = this._id.split(DefaultModality.MODALITY_SEPARATOR);\\n        if (components.length === 2) {\\n            return components[1];\\n        }\\n        return '';\\n    }\\n    hasModality(modality) {\\n        return modality !== '' && this.modality() === modality;\\n    }\\n    withModality(modality) {\\n        const m = new DefaultModality(this.base() + DefaultModality.MODALITY_SEPARATOR + modality);\\n        if (modality === '' ||\\n            this.base() === '' ||\\n            new DefaultModality(m._id).modality() !== modality) {\\n            return new DefaultModality(this.base());\\n        }\\n        return m;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultModality;\\nDefaultModality.MODALITY_SEPARATOR = ContentShareConstants_1.default.Modality[0];\\nDefaultModality.MODALITY_CONTENT = ContentShareConstants_1.default.Modality.substr(1);\\n//# sourceMappingURL=DefaultModality.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/pingpong/DefaultPingPong.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/pingpong/DefaultPingPong.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\n/**\\n * [[DefaultPingPong]] implements the PingPong and SignalingClientObserver interface.\\n */\\nclass DefaultPingPong {\\n    constructor(signalingClient, intervalMs, logger) {\\n        this.signalingClient = signalingClient;\\n        this.intervalMs = intervalMs;\\n        this.logger = logger;\\n        this.observerQueue = new Set();\\n        this.consecutivePongsUnaccountedFor = 0;\\n        this.intervalScheduler = new IntervalScheduler_1.default(this.intervalMs);\\n        this.pingId = 0;\\n    }\\n    addObserver(observer) {\\n        this.logger.info('adding a ping-pong observer');\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.logger.info('removing a ping-pong observer');\\n        this.observerQueue.delete(observer);\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            AsyncScheduler_1.default.nextTick(() => {\\n                if (this.observerQueue.has(observer)) {\\n                    observerFunc(observer);\\n                }\\n            });\\n        }\\n    }\\n    start() {\\n        this.stop();\\n        this.signalingClient.registerObserver(this);\\n        if (this.signalingClient.ready()) {\\n            this.startPingInterval();\\n        }\\n    }\\n    stop() {\\n        this.stopPingInterval();\\n        this.signalingClient.removeObserver(this);\\n    }\\n    startPingInterval() {\\n        this.intervalScheduler.start(() => {\\n            this.ping();\\n        });\\n        this.ping();\\n    }\\n    stopPingInterval() {\\n        this.intervalScheduler.stop();\\n        this.pingId = 0;\\n        this.consecutivePongsUnaccountedFor = 0;\\n    }\\n    ping() {\\n        if (this.consecutivePongsUnaccountedFor > 0) {\\n            this.logger.warn(`missed pong ${this.consecutivePongsUnaccountedFor} time(s)`);\\n            this.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.didMissPongs).map(f => f.bind(observer)(this.consecutivePongsUnaccountedFor));\\n            });\\n        }\\n        this.consecutivePongsUnaccountedFor += 1;\\n        this.pingId = (this.pingId + 1) & 0xffffffff;\\n        const ping = SignalingProtocol_js_1.SdkPingPongFrame.create();\\n        ping.pingId = this.pingId;\\n        ping.type = SignalingProtocol_js_1.SdkPingPongType.PING;\\n        this.pingTimestampLocalMs = this.signalingClient.pingPong(ping);\\n        this.logger.debug(() => {\\n            return `sent ping ${this.pingId}`;\\n        });\\n    }\\n    pong(pingId) {\\n        const pong = SignalingProtocol_js_1.SdkPingPongFrame.create();\\n        pong.pingId = pingId;\\n        pong.type = SignalingProtocol_js_1.SdkPingPongType.PONG;\\n        this.signalingClient.pingPong(pong);\\n    }\\n    handleSignalingClientEvent(event) {\\n        switch (event.type) {\\n            case SignalingClientEventType_1.default.WebSocketOpen:\\n                this.startPingInterval();\\n                break;\\n            case SignalingClientEventType_1.default.WebSocketFailed:\\n            case SignalingClientEventType_1.default.WebSocketError:\\n                this.logger.warn(`stopped pinging (${SignalingClientEventType_1.default[event.type]})`);\\n                this.stopPingInterval();\\n                break;\\n            case SignalingClientEventType_1.default.WebSocketClosing:\\n            case SignalingClientEventType_1.default.WebSocketClosed:\\n                this.logger.info(`stopped pinging (${SignalingClientEventType_1.default[event.type]})`);\\n                this.stopPingInterval();\\n                break;\\n            case SignalingClientEventType_1.default.ReceivedSignalFrame:\\n                if (event.message.type !== SignalingProtocol_js_1.SdkSignalFrame.Type.PING_PONG) {\\n                    break;\\n                }\\n                if (event.message.pingPong.type === SignalingProtocol_js_1.SdkPingPongType.PONG) {\\n                    const pingId = event.message.pingPong.pingId;\\n                    if (pingId !== this.pingId) {\\n                        this.logger.warn(`unexpected ping id ${pingId} (expected ${this.pingId})`);\\n                        break;\\n                    }\\n                    this.consecutivePongsUnaccountedFor = 0;\\n                    let pongTimestampRemoteMs;\\n                    if (typeof event.message.timestampMs === 'number') {\\n                        pongTimestampRemoteMs = event.message.timestampMs;\\n                    }\\n                    else {\\n                        break;\\n                    }\\n                    this.logger.debug(() => {\\n                        return `received pong ${pingId} with timestamp ${pongTimestampRemoteMs}`;\\n                    });\\n                    const pongTimestampLocalMs = event.timestampMs;\\n                    const pingPongLocalIntervalMs = pongTimestampLocalMs - this.pingTimestampLocalMs;\\n                    const estimatedPingTimestampRemoteMs = Math.round(pongTimestampRemoteMs - pingPongLocalIntervalMs / 2);\\n                    const estimatedClockSkewMs = this.pingTimestampLocalMs - estimatedPingTimestampRemoteMs;\\n                    this.logger.info(`local clock skew estimate=${estimatedClockSkewMs}ms from ping-pong time=${pingPongLocalIntervalMs}ms`);\\n                    this.forEachObserver((observer) => {\\n                        Types_1.Maybe.of(observer.didReceivePong).map(f => f.bind(observer)(pingId, estimatedClockSkewMs, pingPongLocalIntervalMs));\\n                    });\\n                }\\n                else {\\n                    this.pong(event.message.pingPong.pingId);\\n                }\\n                break;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultPingPong;\\n//# sourceMappingURL=DefaultPingPong.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/pingpong/DefaultPingPong.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/DefaultRealtimeController.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/realtimecontroller/DefaultRealtimeController.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultTranscriptionController_1 = __webpack_require__(/*! ../transcript/DefaultTranscriptionController */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/DefaultTranscriptionController.js\\\");\\nconst RealtimeState_1 = __webpack_require__(/*! ./RealtimeState */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeState.js\\\");\\nconst RealtimeVolumeIndicator_1 = __webpack_require__(/*! ./RealtimeVolumeIndicator */ \\\"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeVolumeIndicator.js\\\");\\n/**\\n * [[DefaultRealtimeController]] is written to adhere to the following tenets to\\n * make privacy and performance bugs significantly less likely.\\n *\\n * 1. Any call to the object is guaranteed to succeed from the caller's\\n *    perspective to the maximum extent that this can be ensured. However, all\\n *    failures of the object are reported as fatal errors. For example, if local\\n *    mute fails, then that is a privacy issue and we must tear down the\\n *    connection and try starting over.\\n *\\n * 2. State is owned by the object and is considered authoritative at all times.\\n *    For example, if [[realtimeIsLocalAudioMuted]] is true then the user *is*\\n *    muted.\\n *\\n * 3. Callbacks are fired synchronously and do their work synchronously. Any\\n *    unnecessary asynchronous implementation only invites latency and\\n *    increases the surface error for potential errors.\\n *\\n * 4. Mutation only occurs when state changes. All state-changing functions are\\n *    idempotent.\\n *\\n * 5. Every conditional branch gets its own if statement and test coverage is\\n *    100% for this object.\\n *\\n * 6. Function parameters and returns use primitives only (no classes or enums).\\n *    This minimizes the number of dependencies that consumers have to take on\\n *    and allows the object to be more easily wrapped. Values are normalized\\n *    where possible.\\n *\\n * 7. The object takes no other non-realtime dependencies.\\n *\\n * 8. Interface functions begin with `realtime` to make boundaries between the\\n *    RealtimeController interface and the UI or business logic explicit and\\n *    auditable.\\n *\\n * 9. Local state overrides remote state but not vice-versa. For example, if\\n *    locally muted with an active audio input and a remote state indicates the\\n *    same user is unmuted because the muted state has not yet propagated, then\\n *    the volume indicator update for the user would show the remote mute state\\n *    as muted. However, if locally muted without an active audio input and a\\n *    remote state indicates the user is unmuted (since they are dialed in), the\\n *    remote state persists but does not override the local state so\\n *    [[realtimeIsLocalAudioMuted]] still returns true.\\n */\\nclass DefaultRealtimeController {\\n    constructor(mediaStreamBroker, transcriptionController) {\\n        this.mediaStreamBroker = mediaStreamBroker;\\n        this.state = new RealtimeState_1.default();\\n        this._transcriptionController =\\n            transcriptionController || new DefaultTranscriptionController_1.default(this);\\n    }\\n    realtimeSetLocalAttendeeId(attendeeId, externalUserId) {\\n        this.state.localAttendeeId = attendeeId;\\n        this.state.localExternalUserId = externalUserId;\\n    }\\n    realtimeSetAttendeeIdPresence(attendeeId, present, externalUserId, dropped, posInFrame) {\\n        try {\\n            if (present) {\\n                this.state.attendeeIdToExternalUserId[attendeeId] = externalUserId;\\n            }\\n            for (const fn of this.state.attendeeIdChangesCallbacks) {\\n                fn(attendeeId, present, externalUserId, dropped, posInFrame);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSubscribeToAttendeeIdPresence(callback) {\\n        try {\\n            this.state.attendeeIdChangesCallbacks.push(callback);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeToAttendeeIdPresence(callback) {\\n        try {\\n            const index = this.state.attendeeIdChangesCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.attendeeIdChangesCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    // Muting\\n    realtimeSetCanUnmuteLocalAudio(canUnmute) {\\n        try {\\n            if (this.state.canUnmute === canUnmute) {\\n                return;\\n            }\\n            this.state.canUnmute = canUnmute;\\n            for (const fn of this.state.setCanUnmuteLocalAudioCallbacks) {\\n                fn(canUnmute);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSubscribeToSetCanUnmuteLocalAudio(callback) {\\n        try {\\n            this.state.setCanUnmuteLocalAudioCallbacks.push(callback);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeToSetCanUnmuteLocalAudio(callback) {\\n        try {\\n            const index = this.state.setCanUnmuteLocalAudioCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.setCanUnmuteLocalAudioCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeCanUnmuteLocalAudio() {\\n        return this.state.canUnmute;\\n    }\\n    realtimeMuteLocalAudio() {\\n        if (this.state.muted) {\\n            return;\\n        }\\n        try {\\n            this.setAudioInputEnabled(false);\\n            this.state.muted = true;\\n            this.realtimeUpdateVolumeIndicator(this.state.localAttendeeId, null, null, null, this.state.localExternalUserId);\\n            for (const fn of this.state.muteAndUnmuteLocalAudioCallbacks) {\\n                fn(true);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnmuteLocalAudio() {\\n        if (!this.state.muted) {\\n            return true;\\n        }\\n        if (!this.state.canUnmute) {\\n            return false;\\n        }\\n        try {\\n            this.setAudioInputEnabled(true);\\n            this.state.muted = false;\\n            this.realtimeUpdateVolumeIndicator(this.state.localAttendeeId, null, null, null, this.state.localExternalUserId);\\n            for (const fn of this.state.muteAndUnmuteLocalAudioCallbacks) {\\n                fn(false);\\n            }\\n            return true;\\n        }\\n        catch (e) {\\n            this.onError(e);\\n            return false;\\n        }\\n    }\\n    realtimeSubscribeToMuteAndUnmuteLocalAudio(callback) {\\n        try {\\n            this.state.muteAndUnmuteLocalAudioCallbacks.push(callback);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeToMuteAndUnmuteLocalAudio(callback) {\\n        try {\\n            const index = this.state.muteAndUnmuteLocalAudioCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.muteAndUnmuteLocalAudioCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeIsLocalAudioMuted() {\\n        return this.state.muted;\\n    }\\n    // Volume Indicators\\n    realtimeSubscribeToVolumeIndicator(attendeeId, callback) {\\n        try {\\n            if (!this.state.volumeIndicatorCallbacks.hasOwnProperty(attendeeId)) {\\n                this.state.volumeIndicatorCallbacks[attendeeId] = [];\\n            }\\n            this.state.volumeIndicatorCallbacks[attendeeId].push(callback);\\n            this.sendVolumeIndicatorChange(attendeeId, true, true, true, this.state.attendeeIdToExternalUserId[attendeeId]);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeFromVolumeIndicator(attendeeId, callback) {\\n        const callbacks = this.state.volumeIndicatorCallbacks[attendeeId];\\n        if (!callbacks) {\\n            return;\\n        }\\n        if (callback) {\\n            const index = this.state.volumeIndicatorCallbacks[attendeeId].indexOf(callback);\\n            if (index >= 0) {\\n                this.state.volumeIndicatorCallbacks[attendeeId].splice(index, 1);\\n            }\\n        }\\n        else {\\n            delete this.state.volumeIndicatorCallbacks[attendeeId];\\n        }\\n    }\\n    realtimeUpdateVolumeIndicator(attendeeId, volume, muted, signalStrength, externalUserId) {\\n        try {\\n            muted = this.applyLocalMuteOverride(attendeeId, muted);\\n            const state = this.getVolumeIndicatorState(attendeeId);\\n            let volumeUpdated = false;\\n            let mutedUpdated = false;\\n            let signalStrengthUpdated = false;\\n            if (muted !== null) {\\n                if (state.muted !== muted) {\\n                    state.muted = muted;\\n                    mutedUpdated = true;\\n                    if (state.muted && state.volume !== 0.0) {\\n                        state.volume = 0.0;\\n                        volumeUpdated = true;\\n                    }\\n                }\\n            }\\n            if (!state.muted && volume !== null) {\\n                if (state.volume !== volume) {\\n                    state.volume = volume;\\n                    volumeUpdated = true;\\n                }\\n                if (state.muted === null) {\\n                    state.muted = false;\\n                    mutedUpdated = true;\\n                }\\n            }\\n            if (signalStrength !== null) {\\n                if (state.signalStrength !== signalStrength) {\\n                    state.signalStrength = signalStrength;\\n                    signalStrengthUpdated = true;\\n                }\\n            }\\n            this.sendVolumeIndicatorChange(attendeeId, volumeUpdated, mutedUpdated, signalStrengthUpdated, externalUserId);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSubscribeToLocalSignalStrengthChange(callback) {\\n        try {\\n            this.state.localSignalStrengthChangeCallbacks.push(callback);\\n            if (this.state.localAttendeeId === null) {\\n                return;\\n            }\\n            this.sendLocalSignalStrengthChange(this.state.localAttendeeId, true);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeToLocalSignalStrengthChange(callback) {\\n        try {\\n            const index = this.state.localSignalStrengthChangeCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.localSignalStrengthChangeCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSubscribeToSendDataMessage(\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    callback) {\\n        try {\\n            this.state.sendDataMessageCallbacks.push(callback);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeFromSendDataMessage(\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    callback) {\\n        try {\\n            const index = this.state.sendDataMessageCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.sendDataMessageCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSendDataMessage(topic, data, // eslint-disable-line @typescript-eslint/no-explicit-any\\n    lifetimeMs) {\\n        try {\\n            for (const fn of this.state.sendDataMessageCallbacks) {\\n                fn(topic, data, lifetimeMs);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeSubscribeToReceiveDataMessage(topic, callback) {\\n        try {\\n            if (this.state.receiveDataMessageCallbacks.has(topic)) {\\n                this.state.receiveDataMessageCallbacks.get(topic).push(callback);\\n            }\\n            else {\\n                this.state.receiveDataMessageCallbacks.set(topic, [callback]);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeFromReceiveDataMessage(topic) {\\n        try {\\n            this.state.receiveDataMessageCallbacks.delete(topic);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeReceiveDataMessage(dataMessage) {\\n        try {\\n            if (this.state.receiveDataMessageCallbacks.has(dataMessage.topic)) {\\n                for (const fn of this.state.receiveDataMessageCallbacks.get(dataMessage.topic)) {\\n                    fn(dataMessage);\\n                }\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    // Error Handling\\n    realtimeSubscribeToFatalError(callback) {\\n        try {\\n            this.state.fatalErrorCallbacks.push(callback);\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    realtimeUnsubscribeToFatalError(callback) {\\n        try {\\n            const index = this.state.fatalErrorCallbacks.indexOf(callback);\\n            if (index !== -1) {\\n                this.state.fatalErrorCallbacks.splice(index, 1);\\n            }\\n        }\\n        catch (e) {\\n            this.onError(e);\\n        }\\n    }\\n    get transcriptionController() {\\n        return this._transcriptionController;\\n    }\\n    // Internals\\n    setAudioInputEnabled(enabled) {\\n        if (enabled) {\\n            this.mediaStreamBroker.unmuteLocalAudioInputStream();\\n        }\\n        else {\\n            this.mediaStreamBroker.muteLocalAudioInputStream();\\n        }\\n    }\\n    applyLocalMuteOverride(attendeeIdRemote, mutedRemote) {\\n        const attendeeIdLocal = this.state.localAttendeeId;\\n        const mutedLocal = this.state.muted;\\n        if (attendeeIdRemote !== attendeeIdLocal) {\\n            return mutedRemote;\\n        }\\n        // This is a workaround to check if no audio input then just use the remote value\\n        if (\\n        // @ts-ignore\\n        !('activeDevices' in this.mediaStreamBroker && this.mediaStreamBroker.activeDevices['audio'])) {\\n            return mutedRemote;\\n        }\\n        return mutedLocal;\\n    }\\n    sendVolumeIndicatorChange(attendeeId, volumeUpdated, mutedUpdated, signalStrengthUpdated, externalUserId) {\\n        this.sendLocalSignalStrengthChange(attendeeId, signalStrengthUpdated);\\n        if (!this.state.volumeIndicatorCallbacks.hasOwnProperty(attendeeId)) {\\n            return;\\n        }\\n        const state = this.getVolumeIndicatorState(attendeeId);\\n        const updateState = new RealtimeVolumeIndicator_1.default();\\n        if (volumeUpdated) {\\n            updateState.volume = state.volume;\\n        }\\n        if (mutedUpdated) {\\n            updateState.muted = state.muted;\\n        }\\n        if (signalStrengthUpdated) {\\n            updateState.signalStrength = state.signalStrength;\\n        }\\n        if (this.stateIsEmpty(updateState)) {\\n            return;\\n        }\\n        for (const fn of this.state.volumeIndicatorCallbacks[attendeeId]) {\\n            fn(attendeeId, updateState.volume, updateState.muted, updateState.signalStrength, externalUserId);\\n        }\\n    }\\n    sendLocalSignalStrengthChange(attendeeId, signalStrengthUpdated) {\\n        if (!signalStrengthUpdated) {\\n            return;\\n        }\\n        if (attendeeId !== this.state.localAttendeeId) {\\n            return;\\n        }\\n        const state = this.getVolumeIndicatorState(attendeeId);\\n        const signalStrength = state.signalStrength;\\n        if (signalStrength === null) {\\n            return;\\n        }\\n        for (const fn of this.state.localSignalStrengthChangeCallbacks) {\\n            fn(signalStrength);\\n        }\\n    }\\n    getVolumeIndicatorState(id) {\\n        if (!this.state.volumeIndicatorState.hasOwnProperty(id)) {\\n            this.state.volumeIndicatorState[id] = new RealtimeVolumeIndicator_1.default();\\n        }\\n        return this.state.volumeIndicatorState[id];\\n    }\\n    stateIsEmpty(state) {\\n        return state.volume === null && state.muted === null && state.signalStrength === null;\\n    }\\n    onError(error) {\\n        try {\\n            // 1) try the fatal error callbacks so that the issue is reported in\\n            //    logs and to give the handler a chance to clean up and reset.\\n            for (const callback of this.state.fatalErrorCallbacks) {\\n                callback(error);\\n            }\\n        }\\n        catch (eventError) {\\n            try {\\n                // 2) if the error event fails, fall back to console.error so that\\n                //    it at least prints out to the console before moving on.\\n                console.error(error);\\n                console.error(eventError);\\n            }\\n            catch (consoleError) {\\n                // 3) if all else fails, swallow the error and give up to guarantee\\n                //    that the API call returns cleanly.\\n            }\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultRealtimeController;\\n//# sourceMappingURL=DefaultRealtimeController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/realtimecontroller/DefaultRealtimeController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeAttendeePositionInFrame.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeAttendeePositionInFrame.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[RealtimeAttendeePositionInFrame]] information about the attendee's place in the frame.\\n */\\nclass RealtimeAttendeePositionInFrame {\\n    constructor() {\\n        /**\\n         * Index of attendee update in the frame starting at zero\\n         */\\n        this.attendeeIndex = null;\\n        /**\\n         * Number of total attendee updates in the frame\\n         */\\n        this.attendeesInFrame = null;\\n    }\\n}\\nexports[\\\"default\\\"] = RealtimeAttendeePositionInFrame;\\n//# sourceMappingURL=RealtimeAttendeePositionInFrame.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeAttendeePositionInFrame.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeState.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeState.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[RealtimeState]] stores all realtime persistent state.\\n */\\nclass RealtimeState {\\n    constructor() {\\n        /**\\n         * Stores the attendee id of the current user\\n         */\\n        this.localAttendeeId = null;\\n        /**\\n         * Stores the external user id of the current user\\n         */\\n        this.localExternalUserId = null;\\n        /**\\n         * Callbacks to listen for attendee id changes\\n         */\\n        this.attendeeIdChangesCallbacks = [];\\n        /**\\n         * Stores whether the user can transition from muted to unmuted\\n         */\\n        this.canUnmute = true;\\n        /**\\n         * Callbacks to listen for changes to can-unmute local audio state\\n         */\\n        this.setCanUnmuteLocalAudioCallbacks = [];\\n        /**\\n         * Stores whether the user is presently muted\\n         */\\n        this.muted = false;\\n        /**\\n         * Callbacks to listen for local audio mutes and unmutes\\n         */\\n        this.muteAndUnmuteLocalAudioCallbacks = [];\\n        /**\\n         * Stores per-attendee id volume indicator state\\n         */\\n        this.volumeIndicatorState = {};\\n        /**\\n         * Stores attendee id to external user id mappings\\n         */\\n        this.attendeeIdToExternalUserId = {};\\n        /**\\n         * Stores per-attendee id callbacks called when volume indicators change\\n         */\\n        this.volumeIndicatorCallbacks = {};\\n        /**\\n         * Callbacks to listen for changes to local signal strength\\n         */\\n        this.localSignalStrengthChangeCallbacks = [];\\n        /**\\n         * Callbacks to listen for fatal errors\\n         */\\n        this.fatalErrorCallbacks = [];\\n        /**\\n         * Callbacks to trigger when sending message\\n         */\\n        this.sendDataMessageCallbacks = [];\\n        /**\\n         * Callbacks to listen for receiving message from data channel based on given topic\\n         */\\n        this.receiveDataMessageCallbacks = new Map();\\n    }\\n}\\nexports[\\\"default\\\"] = RealtimeState;\\n//# sourceMappingURL=RealtimeState.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeState.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeVolumeIndicator.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeVolumeIndicator.js ***!\n  \\**********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[RealtimeVolumeIndicator]] stores the current volume, mute, and\\n * signal strength for an attendee.\\n */\\nclass RealtimeVolumeIndicator {\\n    constructor() {\\n        this.volume = null;\\n        this.muted = null;\\n        this.signalStrength = null;\\n    }\\n}\\nexports[\\\"default\\\"] = RealtimeVolumeIndicator;\\n//# sourceMappingURL=RealtimeVolumeIndicator.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/realtimecontroller/RealtimeVolumeIndicator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst TimeoutScheduler_1 = __webpack_require__(/*! ../scheduler/TimeoutScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\\\");\\nclass DefaultReconnectController {\\n    constructor(reconnectTimeoutMs, backoffPolicy) {\\n        this.reconnectTimeoutMs = reconnectTimeoutMs;\\n        this.backoffPolicy = backoffPolicy;\\n        this.shouldReconnect = true;\\n        this.onlyRestartPeerConnection = false;\\n        this.firstConnectionAttempted = false;\\n        this.firstConnectionAttemptTimestampMs = 0;\\n        this.lastActiveTimestampMs = Infinity;\\n        this._isFirstConnection = true;\\n        this.backoffTimer = null;\\n        this.backoffCancel = null;\\n        this.reset();\\n    }\\n    timeSpentReconnectingMs() {\\n        if (!this.firstConnectionAttempted) {\\n            return 0;\\n        }\\n        return Date.now() - this.firstConnectionAttemptTimestampMs;\\n    }\\n    hasPastReconnectDeadline() {\\n        if (Date.now() - this.lastActiveTimestampMs >= this.reconnectTimeoutMs) {\\n            return true;\\n        }\\n        return this.timeSpentReconnectingMs() >= this.reconnectTimeoutMs;\\n    }\\n    reset() {\\n        this.cancel();\\n        this.shouldReconnect = true;\\n        this.onlyRestartPeerConnection = false;\\n        this.firstConnectionAttempted = false;\\n        this.firstConnectionAttemptTimestampMs = 0;\\n        this.lastActiveTimestampMs = Infinity;\\n        this.backoffPolicy.reset();\\n    }\\n    startedConnectionAttempt(isFirstConnection) {\\n        this._isFirstConnection = isFirstConnection;\\n        if (!this.firstConnectionAttempted) {\\n            this.firstConnectionAttempted = true;\\n            this.firstConnectionAttemptTimestampMs = Date.now();\\n        }\\n    }\\n    hasStartedConnectionAttempt() {\\n        return this.firstConnectionAttempted;\\n    }\\n    isFirstConnection() {\\n        return this._isFirstConnection;\\n    }\\n    disableReconnect() {\\n        this.shouldReconnect = false;\\n    }\\n    enableRestartPeerConnection() {\\n        this.onlyRestartPeerConnection = true;\\n    }\\n    cancel() {\\n        this.disableReconnect();\\n        if (this.backoffTimer) {\\n            this.backoffTimer.stop();\\n            if (this.backoffCancel) {\\n                this.backoffCancel();\\n                this.backoffCancel = null;\\n            }\\n        }\\n    }\\n    retryWithBackoff(retryFunc, cancelFunc) {\\n        const willRetry = this.shouldReconnect && !this.hasPastReconnectDeadline();\\n        if (willRetry) {\\n            this.backoffCancel = cancelFunc;\\n            this.backoffTimer = new TimeoutScheduler_1.default(this.backoffPolicy.nextBackoffAmountMs());\\n            this.backoffTimer.start(() => {\\n                this.backoffCancel = null;\\n                retryFunc();\\n            });\\n        }\\n        return willRetry;\\n    }\\n    shouldOnlyRestartPeerConnection() {\\n        return this.onlyRestartPeerConnection;\\n    }\\n    clone() {\\n        return new DefaultReconnectController(this.reconnectTimeoutMs, this.backoffPolicy);\\n    }\\n    setLastActiveTimestampMs(timestampMs) {\\n        this.lastActiveTimestampMs = timestampMs;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultReconnectController;\\n//# sourceMappingURL=DefaultReconnectController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/reconnectcontroller/DefaultReconnectController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst TimeoutScheduler_1 = __webpack_require__(/*! ./TimeoutScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\\\");\\n/**\\n * [[AsyncScheduler]] enqueues the callback for the soonest available run of the\\n * event loop.\\n */\\nclass AsyncScheduler extends TimeoutScheduler_1.default {\\n    constructor() {\\n        super(0);\\n    }\\n    /**\\n     * Execute the provided callback on the next tick of the event loop.\\n     * This is semantically equivalent to\\n     *\\n     * ```typescript\\n     * new AsyncScheduler(callback).start();\\n     * ```\\n     *\\n     * but with less overhead.\\n     *\\n     * @param callback the code to run.\\n     */\\n    static nextTick(callback) {\\n        setTimeout(callback, 0);\\n    }\\n}\\nexports[\\\"default\\\"] = AsyncScheduler;\\n//# sourceMappingURL=AsyncScheduler.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[IntervalScheduler]] calls the callback every intervalMs milliseconds.\\n */\\nclass IntervalScheduler {\\n    constructor(intervalMs) {\\n        this.intervalMs = intervalMs;\\n    }\\n    start(callback) {\\n        this.stop();\\n        this.timer = setInterval(callback, this.intervalMs);\\n    }\\n    stop() {\\n        if (this.timer === undefined) {\\n            return;\\n        }\\n        clearInterval(this.timer);\\n        this.timer = undefined;\\n    }\\n    running() {\\n        return this.timer !== undefined;\\n    }\\n}\\nexports[\\\"default\\\"] = IntervalScheduler;\\n//# sourceMappingURL=IntervalScheduler.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[TimeoutScheduler]] calls the callback once after timeoutMs milliseconds.\\n */\\nclass TimeoutScheduler {\\n    constructor(timeoutMs) {\\n        this.timeoutMs = timeoutMs;\\n        // eslint-disable-next-line\\n        this.timer = null;\\n    }\\n    start(callback) {\\n        this.stop();\\n        this.timer = setTimeout(() => {\\n            clearTimeout(this.timer);\\n            callback();\\n        }, this.timeoutMs);\\n    }\\n    stop() {\\n        if (this.timer !== null) {\\n            clearTimeout(this.timer);\\n            this.timer = null;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = TimeoutScheduler;\\n//# sourceMappingURL=TimeoutScheduler.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SDPCandidateType_1 = __webpack_require__(/*! ./SDPCandidateType */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDPCandidateType.js\\\");\\nconst SDPMediaSection_1 = __webpack_require__(/*! ./SDPMediaSection */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDPMediaSection.js\\\");\\nconst VideoCodecCapability_1 = __webpack_require__(/*! ./VideoCodecCapability */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js\\\");\\n/**\\n * [[SDP]] includes a few helper functions for parsing sdp string.\\n */\\nclass SDP {\\n    /**\\n     * Construts a new [[SDP]] object\\n     */\\n    constructor(sdp) {\\n        this.sdp = sdp;\\n    }\\n    /**\\n     * Clones an SDP\\n     */\\n    clone() {\\n        return new SDP(this.sdp);\\n    }\\n    /**\\n     * Checks if the candidate is a valid RTP candidate\\n     */\\n    static isRTPCandidate(candidate) {\\n        const match = /candidate[:](\\\\S+) (\\\\d+)/g.exec(candidate);\\n        if (match === null || match[2] !== '1') {\\n            return false;\\n        }\\n        return true;\\n    }\\n    /**\\n     * Constructs a new SDP with the given set of SDP lines.\\n     */\\n    static linesToSDP(lines) {\\n        return new SDP(lines.join(SDP.CRLF));\\n    }\\n    /**\\n     * Returns an enum of [[candidateType]] for the given string.\\n     */\\n    static candidateTypeFromString(candidateType) {\\n        switch (candidateType) {\\n            case SDPCandidateType_1.default.Host:\\n                return SDPCandidateType_1.default.Host;\\n            case SDPCandidateType_1.default.ServerReflexive:\\n                return SDPCandidateType_1.default.ServerReflexive;\\n            case SDPCandidateType_1.default.PeerReflexive:\\n                return SDPCandidateType_1.default.PeerReflexive;\\n            case SDPCandidateType_1.default.Relay:\\n                return SDPCandidateType_1.default.Relay;\\n        }\\n        return null;\\n    }\\n    /**\\n     * Returns the candidate type assocaited with the sdpline.\\n     */\\n    static candidateType(sdpLine) {\\n        const match = /a[=]candidate[:].* typ ([a-z]+) /g.exec(sdpLine);\\n        if (match === null) {\\n            return null;\\n        }\\n        return SDP.candidateTypeFromString(match[1]);\\n    }\\n    /**\\n     * Returns the media type associated with the sdp line.\\n     */\\n    static mediaType(sdpLine) {\\n        const match = /m=(audio|video)/g.exec(sdpLine);\\n        if (match === null) {\\n            return undefined;\\n        }\\n        return match[1];\\n    }\\n    /**\\n     * Erase out \\\"a=mid\\\"  from the sdp line.\\n     */\\n    static mid(sdpLine) {\\n        if (!sdpLine.includes('a=mid:')) {\\n            return undefined;\\n        }\\n        return sdpLine.replace(/^(a=mid:)/, '');\\n    }\\n    /**\\n     * Return the direction associated with the sdp line.\\n     */\\n    static direction(sdpLine) {\\n        const match = /a=(sendrecv|sendonly|recvonly|inactive)/g.exec(sdpLine);\\n        if (match === null) {\\n            return undefined;\\n        }\\n        return match[1];\\n    }\\n    /**\\n     * Format the sdp string into separate lines.\\n     */\\n    static splitLines(blob) {\\n        return blob\\n            .trim()\\n            .split('\\\\n')\\n            .map((line) => {\\n            return line.trim();\\n        });\\n    }\\n    /**\\n     * split the different sdp sections\\n     */\\n    static splitSections(sdp) {\\n        // each section starts with \\\"m=\\\"\\n        const sections = sdp.split('\\\\nm=');\\n        return sections.map((section, index) => {\\n            return (index > 0 ? 'm=' + section : section).trim() + SDP.CRLF;\\n        });\\n    }\\n    /**\\n     * split the different sdp sections\\n     */\\n    static findActiveCameraSection(sections) {\\n        let cameraLineIndex = 0;\\n        let hasCamera = false;\\n        for (const sec of sections) {\\n            if (/^m=video/.test(sec)) {\\n                if (sec.indexOf('sendrecv') > -1 ||\\n                    // RFC 4566: If none of the attributes \\\"sendonly\\\", \\\"recvonly\\\", \\\"inactive\\\",\\n                    // and \\\"sendrecv\\\" is present, \\\"sendrecv\\\" SHOULD be assumed as the\\n                    // default for sessions\\n                    (sec.indexOf('sendonly') === -1 &&\\n                        sec.indexOf('recvonly') === -1 &&\\n                        sec.indexOf('inactive') === -1)) {\\n                    hasCamera = true;\\n                    break;\\n                }\\n            }\\n            cameraLineIndex++;\\n        }\\n        if (hasCamera === false) {\\n            cameraLineIndex = -1;\\n        }\\n        return cameraLineIndex;\\n    }\\n    /**\\n     * Extract the SSRCs from the group line.\\n     *\\n     * a=ssrc-group:<semantics> <ssrc-id> ...\\n     */\\n    static extractSSRCsFromFIDGroupLine(figGroupLine) {\\n        const ssrcStringMatch = /^a=ssrc-group:FID\\\\s(.+)/.exec(figGroupLine);\\n        return ssrcStringMatch[1];\\n    }\\n    /**\\n     * Extracts the lines from the sdp blob that matches the given prefix.\\n     */\\n    static matchPrefix(blob, prefix) {\\n        return SDP.splitLines(blob).filter((line) => {\\n            return line.indexOf(prefix) === 0;\\n        });\\n    }\\n    /**\\n     * Splits SDP string into lines\\n     */\\n    lines() {\\n        return this.sdp.split(SDP.CRLF);\\n    }\\n    /**\\n     * Checks if SDP has a video section.\\n     */\\n    hasVideo() {\\n        return /^m=video/gm.exec(this.sdp) !== null;\\n    }\\n    /**\\n     * Checks whether the SDP has candidates for any m-line\\n     */\\n    hasCandidates() {\\n        const match = /a[=]candidate[:]/g.exec(this.sdp);\\n        if (match === null) {\\n            return false;\\n        }\\n        return true;\\n    }\\n    /**\\n     * Checks whether the SDP has candidates for all m-lines\\n     */\\n    hasCandidatesForAllMLines() {\\n        const isAnyCLineUsingLocalHost = this.sdp.indexOf('c=IN IP4 0.0.0.0') > -1;\\n        const mLinesHaveCandidates = !isAnyCLineUsingLocalHost;\\n        return mLinesHaveCandidates;\\n    }\\n    /**\\n     * Removes candidates of a given type from SDP\\n     */\\n    withoutCandidateType(candidateTypeToExclude) {\\n        return SDP.linesToSDP(this.lines().filter(line => SDP.candidateType(line) !== candidateTypeToExclude));\\n    }\\n    /**\\n     * Removes server reflexive candidate from SDP\\n     */\\n    withoutServerReflexiveCandidates() {\\n        return this.withoutCandidateType(SDPCandidateType_1.default.ServerReflexive);\\n    }\\n    /**\\n     * Inserts a parameter to the SDP local offer setting the desired average audio bitrate\\n     */\\n    withAudioMaxAverageBitrate(maxAverageBitrate) {\\n        if (!maxAverageBitrate) {\\n            return this.clone();\\n        }\\n        maxAverageBitrate = Math.trunc(Math.min(Math.max(maxAverageBitrate, SDP.rfc7587LowestBitrate), SDP.rfc7587HighestBitrate));\\n        const srcLines = this.lines();\\n        const fmtpAttributes = SDP.findOpusFmtpAttributes(srcLines);\\n        const dstLines = SDP.updateOpusFmtpAttributes(srcLines, fmtpAttributes, [\\n            `maxaveragebitrate=${maxAverageBitrate}`,\\n        ]);\\n        return SDP.linesToSDP(dstLines);\\n    }\\n    /**\\n     * Update the SDP to include stereo\\n     */\\n    withStereoAudio() {\\n        const srcLines = this.lines();\\n        const fmtpAttributes = SDP.findOpusFmtpAttributes(srcLines);\\n        const dstLines = SDP.updateOpusFmtpAttributes(srcLines, fmtpAttributes, [\\n            'stereo=1',\\n            'sprop-stereo=1',\\n        ]);\\n        return SDP.linesToSDP(dstLines);\\n    }\\n    /**\\n     * Here we loop through each line in the SDP\\n     * and construct an array containing the fmtp\\n     * attribute for all the audio m lines that use\\n     * the opus codec. If it doesn't use opus codec\\n     * we add null to the array which tells\\n     * updateOpusFmtpAttributes that no update is\\n     * needed for that particular fmtp attribute line\\n     */\\n    static findOpusFmtpAttributes(sdpLines) {\\n        const opusRtpMapRegex = /^a=rtpmap:\\\\s*(\\\\d+)\\\\s+opus\\\\/48000/;\\n        let lookingForOpusRtpMap = false;\\n        const fmtpAttributes = [];\\n        for (const line of sdpLines) {\\n            if (line.startsWith('m=audio')) {\\n                fmtpAttributes.push(null);\\n                lookingForOpusRtpMap = true;\\n            }\\n            if (line.startsWith('m=video')) {\\n                // Opus rtpmap is only part of audio m lines section\\n                // Set this to false as we don't need to perform regex\\n                // matches for video section\\n                lookingForOpusRtpMap = false;\\n            }\\n            if (lookingForOpusRtpMap) {\\n                const match = opusRtpMapRegex.exec(line);\\n                if (match !== null) {\\n                    fmtpAttributes[fmtpAttributes.length - 1] = `a=fmtp:${match[1]} `;\\n                }\\n            }\\n        }\\n        return fmtpAttributes;\\n    }\\n    /**\\n     * Update the fmtp lines in each audio m section\\n     * that correspond to the opus codec with the parameters\\n     * specifief in additionalParams\\n     */\\n    static updateOpusFmtpAttributes(srcLines, fmtpAttributes, additionalParams) {\\n        const dstLines = [];\\n        let fmtpIndex = 0;\\n        let currFmtpAttribute = null;\\n        for (const line of srcLines) {\\n            if (line.startsWith('m=audio')) {\\n                currFmtpAttribute = fmtpAttributes[fmtpIndex];\\n                fmtpIndex++;\\n            }\\n            if (line.startsWith('m=video')) {\\n                currFmtpAttribute = null;\\n            }\\n            if (currFmtpAttribute && line.startsWith(currFmtpAttribute)) {\\n                const oldParameters = line.slice(currFmtpAttribute.length).split(';');\\n                const newParameters = [];\\n                // If an existing parameter is in additionalParams\\n                // dont add it to newParameters as it will be replaced\\n                for (const parameter of oldParameters) {\\n                    const index = additionalParams.findIndex(element => element.startsWith(parameter.split('=')[0]));\\n                    if (index < 0) {\\n                        newParameters.push(parameter);\\n                    }\\n                }\\n                for (const parameter of additionalParams) {\\n                    newParameters.push(parameter);\\n                }\\n                dstLines.push(currFmtpAttribute + newParameters.join(';'));\\n            }\\n            else {\\n                dstLines.push(line);\\n            }\\n        }\\n        return dstLines;\\n    }\\n    /**\\n     * Munges Unified-Plan SDP from different browsers to conform to one format\\n     * TODO: will remove this soon.\\n     */\\n    withUnifiedPlanFormat() {\\n        let originalSdp = this.sdp;\\n        if (originalSdp.includes('mozilla')) {\\n            return this.clone();\\n        }\\n        else {\\n            originalSdp = originalSdp.replace('o=-', 'o=mozilla-chrome');\\n        }\\n        return new SDP(originalSdp);\\n    }\\n    /**\\n     * Returns the total number of unique Rtp header extensions.\\n     */\\n    getUniqueRtpHeaderExtensionId(srcLines) {\\n        const headerExtensionIds = [];\\n        for (const line of srcLines) {\\n            if (/^a=extmap:/.test(line.trim())) {\\n                const headerExtension = line.split('a=extmap:')[1].split(' ');\\n                const id = +headerExtension[0];\\n                if (!headerExtensionIds.includes(id)) {\\n                    headerExtensionIds.push(id);\\n                }\\n            }\\n        }\\n        headerExtensionIds.sort((a, b) => a - b);\\n        let previousId = 0; // header extension cannot be 0, refer https://datatracker.ietf.org/doc/html/rfc5285\\n        for (const id of headerExtensionIds) {\\n            if (id - previousId > 1) {\\n                return previousId + 1;\\n            }\\n            previousId = id;\\n        }\\n        // One-Byte Header header extension cannot be bigger than 14, refer https://datatracker.ietf.org/doc/html/rfc5285\\n        return previousId === 14 ? -1 : previousId + 1;\\n    }\\n    /**\\n     * To avoid resubscribing to preemptively turn off simulcast streams or to switch layers\\n     * negotiate with the back end to determine whether to use layers allocation header extension\\n     * this will not add the packet overhead unless negotiated to avoid waste\\n     */\\n    withVideoLayersAllocationRtpHeaderExtension(previousSdp) {\\n        const url = `http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00`;\\n        // According to https://webrtc.googlesource.com/src/+/b62ee8ce94e5f10e0a94d6f112e715cc4d0cd9dc,\\n        // RTP header extension ID change would result in a hard failure. Therefore if the extension exists\\n        // in the previous SDP, use the same extension ID to avoid the failure. Otherwise use a new ID\\n        const previousId = previousSdp ? previousSdp.getRtpHeaderExtensionId(url) : -1;\\n        const id = previousId === -1 ? this.getUniqueRtpHeaderExtensionId(SDP.splitLines(this.sdp)) : previousId;\\n        const sections = SDP.splitSections(this.sdp);\\n        const newSections = [];\\n        for (let section of sections) {\\n            if (/^m=video/.test(section) && SDP.getRtpHeaderExtensionIdInSection(section, url) === -1) {\\n                // Add RTP header extension when it does not already exist\\n                const srcLines = SDP.splitLines(section);\\n                const dstLines = [];\\n                if (id === -1 || this.hasRtpHeaderExtensionId(id)) {\\n                    // if all ids are used or the id is already used, we won't add new line to it\\n                    newSections.push(section);\\n                    continue;\\n                }\\n                for (const line of srcLines) {\\n                    dstLines.push(line);\\n                    if (/^a=sendrecv/.test(line.trim())) {\\n                        const targetLine = `a=extmap:` + id + ` ` + url;\\n                        dstLines.push(targetLine);\\n                    }\\n                }\\n                section = dstLines.join(SDP.CRLF) + SDP.CRLF;\\n            }\\n            else if (previousId !== -1 &&\\n                /^m=video/.test(section) &&\\n                SDP.getRtpHeaderExtensionIdInSection(section, url) !== previousId) {\\n                // Override extension ID if it does not match previous SDP\\n                const srcLines = SDP.splitLines(section);\\n                const dstLines = [];\\n                for (const line of srcLines) {\\n                    if (/^a=extmap:/.test(line.trim())) {\\n                        const headerExtension = line.split('a=extmap:')[1].split(' ');\\n                        if (headerExtension[1] === url) {\\n                            if (!this.hasRtpHeaderExtensionId(previousId)) {\\n                                // If previous ID is used by another extension, remove it from this SDP\\n                                const targetLine = `a=extmap:` + previousId + ` ` + url;\\n                                dstLines.push(targetLine);\\n                            }\\n                            continue;\\n                        }\\n                    }\\n                    dstLines.push(line);\\n                }\\n                section = dstLines.join(SDP.CRLF) + SDP.CRLF;\\n            }\\n            newSections.push(section);\\n        }\\n        const newSdp = newSections.join('');\\n        return new SDP(newSdp);\\n    }\\n    /**\\n     * Extracts the ssrc for the sendrecv video media section in SDP\\n     */\\n    ssrcForVideoSendingSection() {\\n        const srcSDP = this.sdp;\\n        const sections = SDP.splitSections(srcSDP);\\n        if (sections.length < 2) {\\n            return '';\\n        }\\n        const cameraLineIndex = SDP.findActiveCameraSection(sections);\\n        if (cameraLineIndex === -1) {\\n            return '';\\n        }\\n        // TODO: match for Firefox. Currently all failures are not Firefox induced.\\n        const fidGroupMatch = SDP.matchPrefix(sections[cameraLineIndex], 'a=ssrc-group:FID ');\\n        if (fidGroupMatch.length < 1) {\\n            return '';\\n        }\\n        const fidGroup = SDP.extractSSRCsFromFIDGroupLine(fidGroupMatch[0]);\\n        const [videoSSRC1] = fidGroup.split(' ').map(ssrc => parseInt(ssrc, 10));\\n        return videoSSRC1.toString();\\n    }\\n    /**\\n     * Returns whether the sendrecv video sections if exist have two different SSRCs in SDPs\\n     */\\n    videoSendSectionHasDifferentSSRC(prevSdp) {\\n        const ssrc1 = this.ssrcForVideoSendingSection();\\n        const ssrc2 = prevSdp.ssrcForVideoSendingSection();\\n        if (ssrc1 === '' || ssrc2 === '') {\\n            return false;\\n        }\\n        const ssrc1InNumber = parseInt(ssrc1, 10);\\n        const ssrc2InNumber = parseInt(ssrc2, 10);\\n        if (ssrc1InNumber === ssrc2InNumber) {\\n            return false;\\n        }\\n        return true;\\n    }\\n    /**\\n     * Removes H.264 from the send section.\\n     */\\n    removeH264SupportFromSendSection() {\\n        const srcSDP = this.sdp;\\n        const sections = SDP.splitSections(srcSDP);\\n        const cameraLineIndex = SDP.findActiveCameraSection(sections);\\n        if (cameraLineIndex === -1) {\\n            return new SDP(this.sdp);\\n        }\\n        const cameraSection = sections[cameraLineIndex];\\n        const cameraSectionLines = SDP.splitLines(cameraSection);\\n        const payloadTypesForH264 = [];\\n        const primaryPayloadTypeToFeedbackPayloadTypes = new Map();\\n        // Loop through camera section (m=video)\\n        cameraSectionLines.forEach(attribute => {\\n            // Find the payload type with H264 codec line (e.g., a=rtpmap:<payload> H264/90000)\\n            if (/^a=rtpmap:/.test(attribute)) {\\n                const payloadMatch = /^a=rtpmap:([0-9]+)\\\\s/.exec(attribute);\\n                if (payloadMatch && attribute.toLowerCase().includes('h264')) {\\n                    payloadTypesForH264.push(parseInt(payloadMatch[1], 10));\\n                }\\n            }\\n            // Loop through the rtx payload and create a mapping between it and the primary payload.\\n            // a=fmtp:<rtx payload> apt=<primary payload>\\n            if (/^a=fmtp:/.test(attribute)) {\\n                const feedbackMatches = /^a=fmtp:([0-9]+) apt=([0-9]+)/.exec(attribute);\\n                if (feedbackMatches && feedbackMatches.length === 3) {\\n                    const feedbackPayloadType = parseInt(feedbackMatches[1], 10);\\n                    const primaryPayloadType = parseInt(feedbackMatches[2], 10);\\n                    if (primaryPayloadTypeToFeedbackPayloadTypes.has(primaryPayloadType)) {\\n                        primaryPayloadTypeToFeedbackPayloadTypes\\n                            .get(primaryPayloadType)\\n                            .push(feedbackPayloadType);\\n                    }\\n                    else {\\n                        primaryPayloadTypeToFeedbackPayloadTypes.set(primaryPayloadType, [feedbackPayloadType]);\\n                    }\\n                }\\n            }\\n        });\\n        // Add the rtx payloads corresponding to the H264 codec to the remove list\\n        const payloadTypesToRemove = new Set();\\n        for (const type of payloadTypesForH264) {\\n            payloadTypesToRemove.add(type);\\n            const feedbackTypes = primaryPayloadTypeToFeedbackPayloadTypes.get(type);\\n            if (feedbackTypes) {\\n                for (const feedbackType of feedbackTypes) {\\n                    payloadTypesToRemove.add(feedbackType);\\n                }\\n            }\\n        }\\n        // Remove H264 payload from the media line. m=video 9 UDP/+++ <payload> <payload> <payload>\\n        if (payloadTypesForH264.length > 0) {\\n            const mline = cameraSectionLines[0].split(' ');\\n            cameraSectionLines[0] = mline\\n                .filter((text) => !payloadTypesToRemove.has(parseInt(text)))\\n                .join(' ');\\n        }\\n        // Filter out lines with H264 payload\\n        const filteredLines = cameraSectionLines.filter((line) => {\\n            if (!line.includes('rtpmap') && !line.includes('rtcp-fb') && !line.includes('fmtp')) {\\n                return true;\\n            }\\n            for (const type of payloadTypesToRemove) {\\n                if (line.includes(type.toString())) {\\n                    return false;\\n                }\\n            }\\n            return true;\\n        });\\n        sections[cameraLineIndex] = filteredLines.join(SDP.CRLF) + SDP.CRLF;\\n        const newSDP = sections.join('');\\n        return new SDP(newSDP);\\n    }\\n    /**\\n     * List of parsed media sections sections in order they occur on SDP.\\n     */\\n    mediaSections() {\\n        const sections = SDP.splitSections(this.sdp);\\n        if (sections.length < 2) {\\n            return [];\\n        }\\n        const parsedMediaSections = [];\\n        for (let i = 1; i < sections.length; i++) {\\n            const section = new SDPMediaSection_1.default();\\n            const lines = SDP.splitLines(sections[i]);\\n            for (const line of lines) {\\n                const mediaType = SDP.mediaType(line);\\n                if (mediaType !== undefined) {\\n                    section.mediaType = mediaType;\\n                    continue;\\n                }\\n                const direction = SDP.direction(line);\\n                if (direction !== undefined) {\\n                    section.direction = direction;\\n                    continue;\\n                }\\n                const mid = SDP.mid(line);\\n                if (mid !== undefined) {\\n                    section.mid = mid;\\n                    continue;\\n                }\\n            }\\n            parsedMediaSections.push(section);\\n        }\\n        return parsedMediaSections;\\n    }\\n    /**\\n     * Return RTP header extension ID if the extension exists in section. Return -1 otherwise\\n     */\\n    static getRtpHeaderExtensionIdInSection(section, url) {\\n        const lines = SDP.splitLines(section);\\n        for (const line of lines) {\\n            if (/^a=extmap:/.test(line.trim())) {\\n                const headerExtension = line.split('a=extmap:')[1].split(' ');\\n                const id = +headerExtension[0];\\n                if (headerExtension[1] === url) {\\n                    return id;\\n                }\\n            }\\n        }\\n        return -1;\\n    }\\n    /**\\n     * Return RTP header extension ID if the extension exists in SDP. Return -1 otherwise\\n     */\\n    getRtpHeaderExtensionId(url) {\\n        const sections = SDP.splitSections(this.sdp);\\n        for (const section of sections) {\\n            if (/^m=video/.test(section)) {\\n                const id = SDP.getRtpHeaderExtensionIdInSection(section, url);\\n                if (id !== -1) {\\n                    return id;\\n                }\\n            }\\n        }\\n        return -1;\\n    }\\n    /**\\n     * Return if extension ID exists in the SDP\\n     */\\n    hasRtpHeaderExtensionId(targetId) {\\n        const lines = SDP.splitLines(this.sdp);\\n        for (const line of lines) {\\n            if (/^a=extmap:/.test(line.trim())) {\\n                const headerExtension = line.split('a=extmap:')[1].split(' ');\\n                const id = +headerExtension[0];\\n                if (id === targetId) {\\n                    return true;\\n                }\\n            }\\n        }\\n        return false;\\n    }\\n    /**\\n     * Based off the provided preferences, this function will reorder the payload types listed in the `m=video` line.\\n     *\\n     * This will be applied to the `a=sendrecv` section so it can be applied on either local or remote SDPs. It can be used to\\n     * 'polyfill' `RTCRtpSender.setCodecPreferences' on the offer, but it can also be used on remote SDPs to force the\\n     * codec actually being send, since the send codec is currently dependent on the remote answer (i.e. `setCodecPreferences` doesn't actually\\n     * have any impact unless the remote side respects the order of codecs).\\n     */\\n    withVideoSendCodecPreferences(preferences) {\\n        const srcSDP = this.sdp;\\n        const sections = SDP.splitSections(srcSDP);\\n        // Note `findActiveCameraSection` looks for `sendrecv` video sections so it\\n        // works on both local and remote SDPs.\\n        const cameraLineIndex = SDP.findActiveCameraSection(sections);\\n        if (cameraLineIndex === -1) {\\n            return new SDP(this.sdp);\\n        }\\n        sections[cameraLineIndex] = this.sectionWithCodecPreferences(sections[cameraLineIndex], preferences);\\n        const newSDP = sections.join('');\\n        return new SDP(newSDP);\\n    }\\n    // Based off the provided preferences, this function will reorder the payload types listed in the `m=video` line.\\n    sectionWithCodecPreferences(section, preferences) {\\n        const codecNamesToPayloadTypes = new Map();\\n        const lines = SDP.splitLines(section);\\n        // First we get the payload types and their respective `a=rtpmap` lines for our provided preferences\\n        lines.forEach(line => {\\n            if (!/^a=rtpmap:/.test(line)) {\\n                return;\\n            }\\n            for (const preference of preferences) {\\n                // Check if theres a match for the encoding name and clock rate as defined in 'RFC 4566 Section 6':\\n                // a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>]\\n                // E.g. 'a=rtpmap:125 H264/90000'\\n                if (!line.includes(`${preference.codecName}/${preference.codecCapability.clockRate}`)) {\\n                    continue;\\n                }\\n                const payloadMatch = /^a=rtpmap:([0-9]+)\\\\s/.exec(line); // Get the payload type\\n                // We may need to check other parameters (e.g. fmtp line) in addition to the codec name\\n                let codecMatches = false;\\n                if (preference.codecCapability.sdpFmtpLine !== undefined) {\\n                    // Check the fmtp line\\n                    for (const prospectiveFmtpLine of lines) {\\n                        if (prospectiveFmtpLine.startsWith(`a=fmtp:${payloadMatch[1]} ${preference.codecCapability.sdpFmtpLine}`)) {\\n                            codecMatches = true;\\n                            break;\\n                        }\\n                    }\\n                }\\n                else {\\n                    // No 'fmtp' line, nothing else to check\\n                    codecMatches = true;\\n                }\\n                if (codecMatches) {\\n                    codecNamesToPayloadTypes.set(preference.codecName, payloadMatch[1]);\\n                    break;\\n                }\\n            }\\n        });\\n        // RFC 4566 5.14\\n        // When a list of payload type numbers is given, this implies that all of these\\n        // payload formats MAY be used in the session, but the first of these\\n        // formats SHOULD be used as the default format for the session.\\n        const payloadTypesToRemove = new Set(codecNamesToPayloadTypes.values());\\n        // Remove payloads from the media line. m=video 9 UDP/+++ <payload> <payload> <payload> ...\\n        const mline = lines[0].split(' ').filter((text) => !payloadTypesToRemove.has(text));\\n        // Then splice them back in, in preferred order at the start of the list\\n        const orderedPreferedPayloadTypes = Array.from(codecNamesToPayloadTypes.values()).sort((name1, name2) => {\\n            const priority1 = preferences.findIndex(capability => {\\n                return codecNamesToPayloadTypes.get(capability.codecName) === name1;\\n            });\\n            const priority2 = preferences.findIndex(capability => {\\n                return codecNamesToPayloadTypes.get(capability.codecName) === name2;\\n            });\\n            return priority1 - priority2;\\n        });\\n        // Start from 3 to skip `m=video 9 UDP/+++`\\n        mline.splice(3, 0, ...orderedPreferedPayloadTypes.values());\\n        lines[0] = mline.join(' ');\\n        // Note that nothing in the RFCs require `a=rtpmap` lines to be reordered\\n        return lines.join(SDP.CRLF) + SDP.CRLF;\\n    }\\n    /**\\n     * Returns the `VideoCodecCapability` which corresponds to the first payload type in the\\n     * m-line (e.g. `m=video 9 UDP/+++ <highest priority payload type> <payload type> <payload type> ...`),\\n     * parsing the rest of the SDP for relevant information to construct it.\\n     *\\n     * Returns undefined if there is no video send section or no codecs in the send section\\n     */\\n    highestPriorityVideoSendCodec() {\\n        const srcSDP = this.sdp;\\n        const sections = SDP.splitSections(srcSDP);\\n        // Note `findActiveCameraSection` looks for `sendrecv` video sections so it\\n        // works on both local and remote SDPs.\\n        const cameraLineIndex = SDP.findActiveCameraSection(sections);\\n        if (cameraLineIndex === -1) {\\n            return undefined;\\n        }\\n        const lines = SDP.splitLines(sections[cameraLineIndex]);\\n        // m=video 9 UDP/+++ <payload> <payload> <payload> ...\\n        const mlineTokens = lines[0].split(' ');\\n        if (mlineTokens.length < 4) {\\n            return undefined;\\n        }\\n        // Start from 3 to skip `m=video 9 UDP/+++`\\n        const highestPriorityPayloadType = mlineTokens[3];\\n        let highestPriorityCodecName = undefined;\\n        let highestPriorityClockRate = undefined;\\n        let highestPriorityFmtpLine = undefined;\\n        for (const line of lines) {\\n            // E.g. 'a=rtpmap:125 H264/90000'\\n            const payloadMatch = /^a=rtpmap:([0-9]+)\\\\s/.exec(line); // Get the payload type\\n            if (payloadMatch === null ||\\n                payloadMatch.length < 2 ||\\n                payloadMatch[1] !== highestPriorityPayloadType) {\\n                continue;\\n            }\\n            const lineTokens = line.split(' '); // Previous check guarantees this to be valid\\n            const nameAndClockRate = lineTokens[1].split('/');\\n            if (nameAndClockRate === undefined || nameAndClockRate.length < 2) {\\n                continue;\\n            }\\n            highestPriorityCodecName = nameAndClockRate[0];\\n            highestPriorityClockRate = nameAndClockRate[1];\\n            for (const prospectiveFmtpLine of lines) {\\n                if (prospectiveFmtpLine.startsWith(`a=fmtp:${highestPriorityPayloadType}`)) {\\n                    const fmtpLineTokens = prospectiveFmtpLine.split(' ');\\n                    if (fmtpLineTokens === undefined || fmtpLineTokens.length < 2) {\\n                        return undefined; // Bail out of broken SDP\\n                    }\\n                    highestPriorityFmtpLine = fmtpLineTokens[1];\\n                    continue;\\n                }\\n            }\\n            break;\\n        }\\n        if (highestPriorityCodecName !== undefined) {\\n            return new VideoCodecCapability_1.default(highestPriorityCodecName, {\\n                clockRate: parseInt(highestPriorityClockRate),\\n                mimeType: `video/${highestPriorityCodecName}`,\\n                sdpFmtpLine: highestPriorityFmtpLine,\\n            });\\n        }\\n        return undefined;\\n    }\\n}\\nexports[\\\"default\\\"] = SDP;\\nSDP.CRLF = '\\\\r\\\\n';\\nSDP.rfc7587LowestBitrate = 6000;\\nSDP.rfc7587HighestBitrate = 510000;\\n//# sourceMappingURL=SDP.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sdp/SDPCandidateType.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sdp/SDPCandidateType.js ***!\n  \\************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SDPCandidateType = void 0;\\nvar SDPCandidateType;\\n(function (SDPCandidateType) {\\n    SDPCandidateType[\\\"Host\\\"] = \\\"host\\\";\\n    SDPCandidateType[\\\"ServerReflexive\\\"] = \\\"srflx\\\";\\n    SDPCandidateType[\\\"PeerReflexive\\\"] = \\\"prflx\\\";\\n    SDPCandidateType[\\\"Relay\\\"] = \\\"relay\\\";\\n})(SDPCandidateType = exports.SDPCandidateType || (exports.SDPCandidateType = {}));\\nexports[\\\"default\\\"] = SDPCandidateType;\\n//# sourceMappingURL=SDPCandidateType.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sdp/SDPCandidateType.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sdp/SDPMediaSection.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sdp/SDPMediaSection.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * Represents parsed attributes of a media section (i.e. associated with a single m-line)\\n */\\nclass SDPMediaSection {\\n}\\nexports[\\\"default\\\"] = SDPMediaSection;\\n//# sourceMappingURL=SDPMediaSection.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sdp/SDPMediaSection.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\n/**\\n * `VideoCodecCapability` represents a higher level type to wrap `RTCRtpCodecCapability`\\n * and the codec name used in the SDP, while also namespacing static create functions\\n * for codecs supported in the SDK.\\n *\\n * Note that `codecName` is different then `codecCapability.mimeType`\\n */\\nclass VideoCodecCapability {\\n    constructor(codecName, codecCapability) {\\n        this.codecName = codecName;\\n        this.codecCapability = codecCapability;\\n    }\\n    equals(other) {\\n        return (other !== undefined &&\\n            this.codecName === other.codecName &&\\n            this.codecCapability.mimeType === other.codecCapability.mimeType &&\\n            this.codecCapability.clockRate === other.codecCapability.clockRate &&\\n            this.codecCapability.sdpFmtpLine === other.codecCapability.sdpFmtpLine);\\n    }\\n    /**\\n     * Returns the configuration of VP8 supported by the SDK\\n     */\\n    static vp8() {\\n        return new VideoCodecCapability('VP8', {\\n            clockRate: 90000,\\n            mimeType: 'video/VP8',\\n        });\\n    }\\n    /**\\n     * Returns the configuration of H.264 CBP supported by the SDK\\n     */\\n    static h264ConstrainedBaselineProfile() {\\n        return new VideoCodecCapability('H264', {\\n            clockRate: 90000,\\n            mimeType: 'video/H264',\\n            sdpFmtpLine: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f',\\n        });\\n    }\\n    /**\\n     * Returns the configuration of H.264 recommended by the SDK\\n     */\\n    static h264() {\\n        return this.h264ConstrainedBaselineProfile();\\n    }\\n    /**\\n     * Returns the configuration of codec corresponding to the signaled capability\\n     */\\n    static fromSignaled(capability) {\\n        switch (capability) {\\n            case SignalingProtocol_1.SdkVideoCodecCapability.VP8:\\n                return this.vp8();\\n            case SignalingProtocol_1.SdkVideoCodecCapability.H264_CONSTRAINED_BASELINE_PROFILE:\\n                return this.h264ConstrainedBaselineProfile();\\n            default:\\n                return undefined;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VideoCodecCapability;\\n//# sourceMappingURL=VideoCodecCapability.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sdp/ZLIBTextCompressor.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sdp/ZLIBTextCompressor.js ***!\n  \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst pako = __webpack_require__(/*! pako */ \\\"./node_modules/pako/index.js\\\");\\n/**\\n * [[ZLIBTextCompressor]] Performs the text compression and decompression using zlib\\n */\\nclass ZLIBTextCompressor {\\n    /**\\n     * Constructs an instance of [[ZLIBTextCompressor]]\\n     * @param logger\\n     */\\n    constructor(logger) {\\n        this.logger = logger;\\n    }\\n    /**\\n     * Compresses the given text.\\n     *\\n     * Note: The dictionary used during compression should be the same as\\n     * that being used during decompression.\\n     *\\n     * @param text - the text that needs to be compressed\\n     * @param dictionary - that will be used to seed the compression\\n     *      library to improve compression's performance\\n     * @returns a compressed text\\n     */\\n    compress(text, dictionary) {\\n        if (dictionary.length > 0) {\\n            const dictionarySize = Math.min(dictionary.length, ZLIBTextCompressor.MAX_DICTIONARY_SIZE);\\n            dictionary = dictionary.slice(0, dictionarySize);\\n        }\\n        const options = {\\n            memLevel: ZLIBTextCompressor.Z_MEM_LEVEL,\\n            dictionary: dictionary,\\n        };\\n        const compressedText = pako.deflateRaw(text, options);\\n        return compressedText;\\n    }\\n    /**\\n     * Decompresses the given text and returns the original text.\\n     *\\n     * Note: The dictionary used during compression should be the same as\\n     * that being used during decompression.\\n     *\\n     * @param compressedText that will be decompressed\\n     * @param dictionary that will be used to seed the compression library to improve\\n     *      decompression's performance\\n     * @returns decompressed string\\n     */\\n    decompress(compressedText, dictionary) {\\n        if (dictionary.length > 0) {\\n            const dictionarySize = Math.min(dictionary.length, ZLIBTextCompressor.MAX_DICTIONARY_SIZE);\\n            dictionary = dictionary.slice(0, dictionarySize);\\n        }\\n        const options = {\\n            to: 'string',\\n            dictionary: dictionary,\\n            chunkSize: 4096,\\n        };\\n        let decompressedText = '';\\n        try {\\n            decompressedText = pako.inflateRaw(compressedText, options);\\n        }\\n        catch (ex) {\\n            this.logger.error(`failed to decompress the string with error: [${ex}]`);\\n        }\\n        return decompressedText;\\n    }\\n}\\nexports[\\\"default\\\"] = ZLIBTextCompressor;\\n// The memory Level parameter specifies how much memory to use for the internal state.\\n// Smaller values use less memory but are slower, while higher values use more memory\\n// to gain compression speed.\\n// Range is between 1 to 9\\nZLIBTextCompressor.Z_MEM_LEVEL = 9;\\n// 32kB is the maximum dictionary size supported by the zlib format.\\nZLIBTextCompressor.MAX_DICTIONARY_SIZE = 31744; // 31 KB\\n//# sourceMappingURL=ZLIBTextCompressor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sdp/ZLIBTextCompressor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/DefaultSessionStateController.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/DefaultSessionStateController.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SessionStateControllerAction_1 = __webpack_require__(/*! ./SessionStateControllerAction */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js\\\");\\nconst SessionStateControllerDeferPriority_1 = __webpack_require__(/*! ./SessionStateControllerDeferPriority */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerDeferPriority.js\\\");\\nconst SessionStateControllerState_1 = __webpack_require__(/*! ./SessionStateControllerState */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js\\\");\\nconst SessionStateControllerTransitionResult_1 = __webpack_require__(/*! ./SessionStateControllerTransitionResult */ \\\"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js\\\");\\nclass DefaultSessionStateController {\\n    constructor(logger) {\\n        this.logger = logger;\\n        this.currentState = SessionStateControllerState_1.SessionStateControllerState.NotConnected;\\n        this.deferredAction = null;\\n        this.deferredWork = null;\\n    }\\n    perform(action, work) {\\n        const state = this.currentState;\\n        if (state === SessionStateControllerState_1.SessionStateControllerState.NotConnected &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Connect) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Connecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connecting &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Fail) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connecting &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.FinishConnecting) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Connected, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connected &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Disconnect) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connected &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Reconnect) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Connecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connected &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Fail) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Connected &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Update) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Updating, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Updating &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.Fail) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Updating &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.FinishUpdating) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.Connected, action);\\n        }\\n        else if (state === SessionStateControllerState_1.SessionStateControllerState.Disconnecting &&\\n            action === SessionStateControllerAction_1.SessionStateControllerAction.FinishDisconnecting) {\\n            this.transition(SessionStateControllerState_1.SessionStateControllerState.NotConnected, action);\\n        }\\n        else if (this.canDefer(action)) {\\n            this.logger.info(`deferring transition from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with ${SessionStateControllerAction_1.SessionStateControllerAction[action]}`);\\n            this.deferAction(action, work);\\n            return SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.DeferredTransition;\\n        }\\n        else {\\n            this.logger.warn(`no transition found from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with ${SessionStateControllerAction_1.SessionStateControllerAction[action]}`);\\n            return SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.NoTransitionAvailable;\\n        }\\n        try {\\n            work();\\n        }\\n        catch (e) {\\n            this.logger.error(`error during state ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with action ${SessionStateControllerAction_1.SessionStateControllerAction[action]}: ${e}`);\\n            this.logger.info(`rolling back transition to ${SessionStateControllerState_1.SessionStateControllerState[state]}`);\\n            this.currentState = state;\\n            return SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.TransitionFailed;\\n        }\\n        this.performDeferredAction();\\n        return SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.Transitioned;\\n    }\\n    state() {\\n        return this.currentState;\\n    }\\n    transition(newState, action) {\\n        this.logger.info(`transitioning from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} to ${SessionStateControllerState_1.SessionStateControllerState[newState]} with ${SessionStateControllerAction_1.SessionStateControllerAction[action]}`);\\n        this.currentState = newState;\\n    }\\n    deferPriority(action) {\\n        switch (action) {\\n            case SessionStateControllerAction_1.SessionStateControllerAction.Disconnect:\\n                return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.VeryHigh;\\n            case SessionStateControllerAction_1.SessionStateControllerAction.Fail:\\n                return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.High;\\n            case SessionStateControllerAction_1.SessionStateControllerAction.Reconnect:\\n                return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.Medium;\\n            case SessionStateControllerAction_1.SessionStateControllerAction.Update:\\n                return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.Low;\\n            default:\\n                return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.DoNotDefer;\\n        }\\n    }\\n    deferAction(action, work) {\\n        if (this.deferredAction !== null &&\\n            this.deferPriority(this.deferredAction) > this.deferPriority(action)) {\\n            return;\\n        }\\n        this.deferredAction = action;\\n        this.deferredWork = work;\\n    }\\n    canDefer(action) {\\n        return (this.deferPriority(action) !== SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.DoNotDefer &&\\n            (this.currentState === SessionStateControllerState_1.SessionStateControllerState.Connecting ||\\n                this.currentState === SessionStateControllerState_1.SessionStateControllerState.Updating));\\n    }\\n    performDeferredAction() {\\n        if (!this.deferredAction) {\\n            return;\\n        }\\n        const deferredAction = this.deferredAction;\\n        const deferredWork = this.deferredWork;\\n        this.deferredAction = null;\\n        this.deferredWork = null;\\n        this.logger.info(`performing deferred action ${SessionStateControllerAction_1.SessionStateControllerAction[deferredAction]}`);\\n        if (this.perform(deferredAction, deferredWork) !==\\n            SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.Transitioned) {\\n            this.logger.info(`unable to perform deferred action ${SessionStateControllerAction_1.SessionStateControllerAction[deferredAction]} in state ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]}`);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultSessionStateController;\\n//# sourceMappingURL=DefaultSessionStateController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/DefaultSessionStateController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js\":\n/*!*******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js ***!\n  \\*******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SessionStateControllerAction = void 0;\\n/**\\n * [[SessionStateControllerAction]] is a state-changing action to perform.\\n */\\nvar SessionStateControllerAction;\\n(function (SessionStateControllerAction) {\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"Connect\\\"] = 0] = \\\"Connect\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"FinishConnecting\\\"] = 1] = \\\"FinishConnecting\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"Update\\\"] = 2] = \\\"Update\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"FinishUpdating\\\"] = 3] = \\\"FinishUpdating\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"Reconnect\\\"] = 4] = \\\"Reconnect\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"Disconnect\\\"] = 5] = \\\"Disconnect\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"Fail\\\"] = 6] = \\\"Fail\\\";\\n    SessionStateControllerAction[SessionStateControllerAction[\\\"FinishDisconnecting\\\"] = 7] = \\\"FinishDisconnecting\\\";\\n})(SessionStateControllerAction = exports.SessionStateControllerAction || (exports.SessionStateControllerAction = {}));\\nexports[\\\"default\\\"] = SessionStateControllerAction;\\n//# sourceMappingURL=SessionStateControllerAction.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerAction.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerDeferPriority.js\":\n/*!**************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerDeferPriority.js ***!\n  \\**************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SessionStateControllerDeferPriority = void 0;\\n/**\\n * [[SessionStateControllerDeferPriority]] indicates the priority level of the action\\n * being deferred. For example, stop is more important than update so if forced\\n * to pick between the two stop should be chosen.\\n */\\nvar SessionStateControllerDeferPriority;\\n(function (SessionStateControllerDeferPriority) {\\n    SessionStateControllerDeferPriority[SessionStateControllerDeferPriority[\\\"DoNotDefer\\\"] = 0] = \\\"DoNotDefer\\\";\\n    SessionStateControllerDeferPriority[SessionStateControllerDeferPriority[\\\"Low\\\"] = 1] = \\\"Low\\\";\\n    SessionStateControllerDeferPriority[SessionStateControllerDeferPriority[\\\"Medium\\\"] = 2] = \\\"Medium\\\";\\n    SessionStateControllerDeferPriority[SessionStateControllerDeferPriority[\\\"High\\\"] = 3] = \\\"High\\\";\\n    SessionStateControllerDeferPriority[SessionStateControllerDeferPriority[\\\"VeryHigh\\\"] = 4] = \\\"VeryHigh\\\";\\n})(SessionStateControllerDeferPriority = exports.SessionStateControllerDeferPriority || (exports.SessionStateControllerDeferPriority = {}));\\nexports[\\\"default\\\"] = SessionStateControllerDeferPriority;\\n//# sourceMappingURL=SessionStateControllerDeferPriority.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerDeferPriority.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js ***!\n  \\******************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SessionStateControllerState = void 0;\\n/**\\n * [[SessionStateControllerState]] reflects the current connection state of the session.\\n */\\nvar SessionStateControllerState;\\n(function (SessionStateControllerState) {\\n    SessionStateControllerState[SessionStateControllerState[\\\"NotConnected\\\"] = 0] = \\\"NotConnected\\\";\\n    SessionStateControllerState[SessionStateControllerState[\\\"Connecting\\\"] = 1] = \\\"Connecting\\\";\\n    SessionStateControllerState[SessionStateControllerState[\\\"Connected\\\"] = 2] = \\\"Connected\\\";\\n    SessionStateControllerState[SessionStateControllerState[\\\"Updating\\\"] = 3] = \\\"Updating\\\";\\n    SessionStateControllerState[SessionStateControllerState[\\\"Disconnecting\\\"] = 4] = \\\"Disconnecting\\\";\\n})(SessionStateControllerState = exports.SessionStateControllerState || (exports.SessionStateControllerState = {}));\\nexports[\\\"default\\\"] = SessionStateControllerState;\\n//# sourceMappingURL=SessionStateControllerState.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerState.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js\":\n/*!*****************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js ***!\n  \\*****************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SessionStateControllerTransitionResult = void 0;\\n/**\\n * Indicates the result of an attempted state transition.\\n */\\nvar SessionStateControllerTransitionResult;\\n(function (SessionStateControllerTransitionResult) {\\n    /**\\n     * The transition was successful.\\n     */\\n    SessionStateControllerTransitionResult[SessionStateControllerTransitionResult[\\\"Transitioned\\\"] = 0] = \\\"Transitioned\\\";\\n    /**\\n     * No transition is available from the current state using that action.\\n     */\\n    SessionStateControllerTransitionResult[SessionStateControllerTransitionResult[\\\"NoTransitionAvailable\\\"] = 1] = \\\"NoTransitionAvailable\\\";\\n    /**\\n     * The transition will be tried on the next state.\\n     */\\n    SessionStateControllerTransitionResult[SessionStateControllerTransitionResult[\\\"DeferredTransition\\\"] = 2] = \\\"DeferredTransition\\\";\\n    /**\\n     * An unexpected error occurred while transitioning to the next state.\\n     */\\n    SessionStateControllerTransitionResult[SessionStateControllerTransitionResult[\\\"TransitionFailed\\\"] = 3] = \\\"TransitionFailed\\\";\\n})(SessionStateControllerTransitionResult = exports.SessionStateControllerTransitionResult || (exports.SessionStateControllerTransitionResult = {}));\\nexports[\\\"default\\\"] = SessionStateControllerTransitionResult;\\n//# sourceMappingURL=SessionStateControllerTransitionResult.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sessionstatecontroller/SessionStateControllerTransitionResult.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/DefaultSignalingClient.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/DefaultSignalingClient.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst TimeoutScheduler_1 = __webpack_require__(/*! ../scheduler/TimeoutScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nconst WebSocketReadyState_1 = __webpack_require__(/*! ../websocketadapter/WebSocketReadyState */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js\\\");\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ./ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\nconst SignalingClientEvent_1 = __webpack_require__(/*! ./SignalingClientEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEvent.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ./SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\n/**\\n * [[DefaultSignalingClient]] implements the SignalingClient interface.\\n */\\nclass DefaultSignalingClient {\\n    constructor(webSocket, logger) {\\n        this.webSocket = webSocket;\\n        this.logger = logger;\\n        this.unloadHandler = null;\\n        this.closeEventHandler = (event) => {\\n            this.deactivatePageUnloadHandler();\\n            this.resetConnection();\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketClosed, null, event.code, event.reason));\\n            this.serviceConnectionRequestQueue();\\n        };\\n        this.observerQueue = new Set();\\n        this.connectionRequestQueue = [];\\n        this.resetConnection();\\n        this.logger.debug(() => 'signaling client init');\\n        this.audioSessionId = this.generateNewAudioSessionId();\\n    }\\n    registerObserver(observer) {\\n        this.logger.debug(() => 'registering signaling client observer');\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.logger.debug(() => 'removing signaling client observer');\\n        this.observerQueue.delete(observer);\\n    }\\n    openConnection(request) {\\n        this.logger.info('adding connection request to queue: ' + request.url());\\n        this.connectionRequestQueue.push(request);\\n        this.closeConnection();\\n    }\\n    pingPong(pingPongFrame) {\\n        this.logger.debug(() => 'sending ping');\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.PING_PONG;\\n        message.pingPong = pingPongFrame;\\n        this.sendMessage(message);\\n        return message.timestampMs;\\n    }\\n    join(settings) {\\n        this.logger.info('sending join');\\n        const joinFrame = SignalingProtocol_js_1.SdkJoinFrame.create();\\n        joinFrame.protocolVersion = 2;\\n        joinFrame.flags = SignalingProtocol_js_1.SdkJoinFlags.HAS_STREAM_UPDATE;\\n        const browserBehavior = new DefaultBrowserBehavior_1.default();\\n        const sdkClientDetails = {\\n            platformName: browserBehavior.name(),\\n            platformVersion: browserBehavior.version(),\\n            clientSource: Versioning_1.default.sdkName,\\n            chimeSdkVersion: Versioning_1.default.sdkVersion,\\n        };\\n        if (settings.applicationMetadata) {\\n            const { appName, appVersion } = settings.applicationMetadata;\\n            sdkClientDetails.appName = appName;\\n            sdkClientDetails.appVersion = appVersion;\\n        }\\n        joinFrame.clientDetails = SignalingProtocol_js_1.SdkClientDetails.create(sdkClientDetails);\\n        joinFrame.audioSessionId = this.audioSessionId;\\n        joinFrame.wantsCompressedSdp = DefaultSignalingClient.CLIENT_SUPPORTS_COMPRESSION;\\n        joinFrame.serverSideNetworkAdaption = ServerSideNetworkAdaption_1.convertServerSideNetworkAdaptionEnumToSignaled(settings.serverSideNetworkAdaption);\\n        if (settings.serverSideNetworkAdaption === ServerSideNetworkAdaption_1.default.BandwidthProbing) {\\n            // Temporarily add deprecated signaling, to be removed later once backend is consistent\\n            joinFrame.wantsServerSideNetworkProbingOnReceiveSideEstimator = true;\\n        }\\n        joinFrame.supportedServerSideNetworkAdaptions = settings.supportedServerSideNetworkAdaptions.map(ServerSideNetworkAdaption_1.convertServerSideNetworkAdaptionEnumToSignaled);\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.JOIN;\\n        message.join = joinFrame;\\n        this.sendMessage(message);\\n    }\\n    subscribe(settings) {\\n        const subscribeFrame = SignalingProtocol_js_1.SdkSubscribeFrame.create();\\n        subscribeFrame.sendStreams = [];\\n        subscribeFrame.sdpOffer = settings.sdpOffer;\\n        if (settings.connectionTypeHasVideo) {\\n            subscribeFrame.receiveStreamIds = settings.receiveStreamIds;\\n        }\\n        if (settings.audioHost) {\\n            subscribeFrame.audioCheckin = settings.audioCheckin;\\n            subscribeFrame.audioHost = settings.audioHost;\\n            subscribeFrame.audioMuted = settings.audioMuted;\\n            if (!settings.audioCheckin) {\\n                const audioStream = SignalingProtocol_js_1.SdkStreamDescriptor.create();\\n                audioStream.mediaType = SignalingProtocol_js_1.SdkStreamMediaType.AUDIO;\\n                audioStream.trackLabel = 'AmazonChimeExpressAudio';\\n                audioStream.attendeeId = settings.attendeeId;\\n                audioStream.streamId = 1;\\n                audioStream.groupId = 1;\\n                audioStream.framerate = 15;\\n                audioStream.maxBitrateKbps = 600;\\n                audioStream.avgBitrateBps = 400000;\\n                subscribeFrame.sendStreams.push(audioStream);\\n            }\\n        }\\n        subscribeFrame.compressedSdpOffer = settings.compressedSdpOffer;\\n        subscribeFrame.duplex = SignalingProtocol_js_1.SdkStreamServiceType.RX;\\n        if (settings.localVideoEnabled) {\\n            subscribeFrame.duplex = SignalingProtocol_js_1.SdkStreamServiceType.DUPLEX;\\n            for (let i = 0; i < settings.videoStreamDescriptions.length; i++) {\\n                // Non-simulcast use DefaultVideoStreamIndex.localStreamDescriptions\\n                // which is the exact old behavior\\n                const streamDescription = settings.videoStreamDescriptions[i].clone();\\n                streamDescription.attendeeId = settings.attendeeId;\\n                subscribeFrame.sendStreams.push(streamDescription.toStreamDescriptor());\\n            }\\n        }\\n        if (settings.videoSubscriptionConfiguration.length > 0) {\\n            subscribeFrame.videoSubscriptionConfiguration = settings.videoSubscriptionConfiguration.map(this.convertVideoSubscriptionConfiguration);\\n        }\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.SUBSCRIBE;\\n        message.sub = subscribeFrame;\\n        this.sendMessage(message);\\n    }\\n    remoteVideoUpdate(addedOrUpdated, removed) {\\n        const remoteVideoUpdate = SignalingProtocol_js_1.SdkRemoteVideoUpdateFrame.create();\\n        remoteVideoUpdate.addedOrUpdatedVideoSubscriptions = addedOrUpdated.map(this.convertVideoSubscriptionConfiguration);\\n        remoteVideoUpdate.removedVideoSubscriptionMids = removed;\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.REMOTE_VIDEO_UPDATE;\\n        message.remoteVideoUpdate = remoteVideoUpdate;\\n        this.sendMessage(message);\\n    }\\n    convertVideoSubscriptionConfiguration(config) {\\n        const signalConfig = new SignalingProtocol_js_1.SdkVideoSubscriptionConfiguration();\\n        signalConfig.mid = config.mid;\\n        signalConfig.attendeeId = config.attendeeId;\\n        signalConfig.streamId = config.streamId;\\n        signalConfig.groupId = config.groupId;\\n        signalConfig.priority = config.priority;\\n        signalConfig.targetBitrateKbps = config.targetBitrateKbps;\\n        return signalConfig;\\n    }\\n    leave() {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.LEAVE;\\n        message.leave = SignalingProtocol_js_1.SdkLeaveFrame.create();\\n        this.sendMessage(message);\\n        this.logger.debug(() => {\\n            return 'sent leave';\\n        });\\n    }\\n    sendClientMetrics(clientMetricFrame) {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.CLIENT_METRIC;\\n        message.clientMetric = clientMetricFrame;\\n        this.sendMessage(message);\\n    }\\n    sendDataMessage(messageFrame) {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.DATA_MESSAGE;\\n        message.dataMessage = messageFrame;\\n        this.sendMessage(message);\\n    }\\n    closeConnection() {\\n        var _a, _b;\\n        if (this.webSocket.readyState() !== WebSocketReadyState_1.default.None &&\\n            this.webSocket.readyState() !== WebSocketReadyState_1.default.Closed) {\\n            this.isClosing = true;\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketClosing, null));\\n            // Continue resetting the connection even if SDK does not receive the \\\"close\\\" event.\\n            const scheduler = new TimeoutScheduler_1.default(DefaultSignalingClient.CLOSE_EVENT_TIMEOUT_MS);\\n            const handler = (event) => {\\n                var _a, _b;\\n                /* istanbul ignore next */\\n                (_b = (_a = this.webSocket).removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'close', handler);\\n                scheduler.stop();\\n                this.closeEventHandler(event);\\n            };\\n            // Remove the existing close handler to prevent SDK from opening a new connection.\\n            /* istanbul ignore next */\\n            (_b = (_a = this.webSocket).removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'close', this.closeEventHandler);\\n            this.webSocket.addEventListener('close', handler);\\n            scheduler.start(() => {\\n                // SDK has not received the \\\"close\\\" event on WebSocket for two seconds.\\n                // Handle a fake close event with 1006 to indicate that the client abnormally closed the connection.\\n                handler(new CloseEvent('close', { wasClean: false, code: 1006, reason: '', bubbles: false }));\\n            });\\n            this.webSocket.close();\\n            this.deactivatePageUnloadHandler();\\n        }\\n        else {\\n            this.logger.info('no existing signaling client connection needs closing');\\n            this.serviceConnectionRequestQueue();\\n        }\\n    }\\n    ready() {\\n        return (this.webSocket.readyState() === WebSocketReadyState_1.default.Open && !this.isClosing && this.wasOpened);\\n    }\\n    mute(muted) {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.AUDIO_CONTROL;\\n        const audioControl = SignalingProtocol_js_1.SdkAudioControlFrame.create();\\n        audioControl.muted = muted;\\n        message.audioControl = audioControl;\\n        this.sendMessage(message);\\n    }\\n    pause(streamIds) {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.PAUSE;\\n        message.pause = SignalingProtocol_js_1.SdkPauseResumeFrame.create();\\n        message.pause.streamIds = streamIds;\\n        this.sendMessage(message);\\n    }\\n    resume(streamIds) {\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.RESUME;\\n        message.pause = SignalingProtocol_js_1.SdkPauseResumeFrame.create();\\n        message.pause.streamIds = streamIds;\\n        this.sendMessage(message);\\n    }\\n    resetConnection() {\\n        this.webSocket.destroy();\\n        this.wasOpened = false;\\n    }\\n    sendMessage(message) {\\n        message.timestampMs = Date.now();\\n        this.logger.debug(() => `sending: ${JSON.stringify(message)}`);\\n        const buffer = this.prependWithFrameTypeRTC(SignalingProtocol_js_1.SdkSignalFrame.encode(message).finish());\\n        if (this.ready()) {\\n            if (!this.webSocket.send(buffer)) {\\n                this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketSendMessageFailure, null));\\n                return;\\n            }\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketSentMessage, null));\\n        }\\n        else {\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketSkippedMessage, null));\\n        }\\n    }\\n    receiveMessage(inBuffer) {\\n        let message;\\n        try {\\n            message = SignalingProtocol_js_1.SdkSignalFrame.decode(inBuffer);\\n        }\\n        catch (e) {\\n            this.logger.info(`failed to decode: ${inBuffer}`);\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.ProtocolDecodeFailure, null));\\n            return;\\n        }\\n        this.logger.debug(() => `received: ${JSON.stringify(message)}`);\\n        if (this.webSocket.readyState() === WebSocketReadyState_1.default.Open) {\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.ReceivedSignalFrame, message));\\n        }\\n        else {\\n            this.logger.info(`skipping notification of message since WebSocket is not open: ${JSON.stringify(message)}`);\\n        }\\n    }\\n    stripFrameTypeRTC(inBuffer) {\\n        const frameType = inBuffer[0];\\n        // TODO: change server frame type to send 0x05\\n        if (frameType !== DefaultSignalingClient.FRAME_TYPE_RTC && frameType !== 0x02) {\\n            this.logger.warn(`expected FrameTypeRTC for message but got ${frameType}`);\\n        }\\n        return inBuffer.slice(1);\\n    }\\n    prependWithFrameTypeRTC(inBuffer) {\\n        const outBuffer = new Uint8Array(inBuffer.length + 1);\\n        outBuffer[0] = DefaultSignalingClient.FRAME_TYPE_RTC;\\n        outBuffer.set(inBuffer, 1);\\n        return outBuffer;\\n    }\\n    serviceConnectionRequestQueue() {\\n        if (this.connectionRequestQueue.length === 0) {\\n            this.logger.info('no connection requests to service');\\n            return;\\n        }\\n        const request = this.connectionRequestQueue.shift();\\n        this.logger.info(`opening connection to ${request.url()}`);\\n        this.isClosing = false;\\n        this.webSocket.create(request.url(), request.protocols());\\n        this.setUpEventListeners();\\n        this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketConnecting, null));\\n    }\\n    sendEvent(event) {\\n        switch (event.type) {\\n            case SignalingClientEventType_1.default.WebSocketMessage:\\n            case SignalingClientEventType_1.default.ReceivedSignalFrame:\\n            case SignalingClientEventType_1.default.WebSocketSentMessage:\\n                this.logger.debug(() => `notifying event: ${SignalingClientEventType_1.default[event.type]}`);\\n                break;\\n            case SignalingClientEventType_1.default.WebSocketSkippedMessage:\\n                this.logger.debug(() => `notifying event: ${SignalingClientEventType_1.default[event.type]}, websocket state=${WebSocketReadyState_1.default[this.webSocket.readyState()]}`);\\n                break;\\n            default:\\n                this.logger.info(`notifying event: ${SignalingClientEventType_1.default[event.type]}`);\\n                break;\\n        }\\n        for (const observer of this.observerQueue) {\\n            observer.handleSignalingClientEvent(event);\\n        }\\n    }\\n    setUpEventListeners() {\\n        this.webSocket.addEventListener('open', () => {\\n            this.activatePageUnloadHandler();\\n            this.wasOpened = true;\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketOpen, null));\\n        });\\n        this.webSocket.addEventListener('message', (event) => {\\n            this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketMessage, null));\\n            this.receiveMessage(this.stripFrameTypeRTC(new Uint8Array(event.data)));\\n        });\\n        this.webSocket.addEventListener('close', this.closeEventHandler);\\n        this.webSocket.addEventListener('error', () => {\\n            if (this.isClosing && !this.wasOpened) {\\n                this.logger.info('ignoring error closing signaling while connecting');\\n                return;\\n            }\\n            if (this.wasOpened) {\\n                this.logger.error('received error while connected');\\n                this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketError, null));\\n            }\\n            else {\\n                this.logger.error('failed to connect');\\n                this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1.default.WebSocketFailed, null));\\n            }\\n        });\\n    }\\n    activatePageUnloadHandler() {\\n        this.unloadHandler = () => {\\n            this.leave();\\n        };\\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n        const GlobalAny = __webpack_require__.g;\\n        GlobalAny['window'] &&\\n            GlobalAny['window']['addEventListener'] &&\\n            window.addEventListener('unload', this.unloadHandler);\\n    }\\n    deactivatePageUnloadHandler() {\\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n        const GlobalAny = __webpack_require__.g;\\n        GlobalAny['window'] &&\\n            GlobalAny['window']['removeEventListener'] &&\\n            window.removeEventListener('unload', this.unloadHandler);\\n        this.unloadHandler = null;\\n    }\\n    generateNewAudioSessionId() {\\n        const num = new Uint32Array(1);\\n        const randomNum = window.crypto.getRandomValues(num);\\n        return randomNum[0];\\n    }\\n    promoteToPrimaryMeeting(credentials) {\\n        const signaledCredentials = SignalingProtocol_js_1.SdkMeetingSessionCredentials.create();\\n        signaledCredentials.attendeeId = credentials.attendeeId;\\n        signaledCredentials.externalUserId = credentials.externalUserId;\\n        signaledCredentials.joinToken = credentials.joinToken;\\n        const primaryMeetingJoin = SignalingProtocol_js_1.SdkPrimaryMeetingJoinFrame.create();\\n        primaryMeetingJoin.credentials = signaledCredentials;\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN;\\n        message.primaryMeetingJoin = primaryMeetingJoin;\\n        this.sendMessage(message);\\n    }\\n    demoteFromPrimaryMeeting() {\\n        const primaryMeetingLeave = SignalingProtocol_js_1.SdkPrimaryMeetingLeaveFrame.create();\\n        const message = SignalingProtocol_js_1.SdkSignalFrame.create();\\n        message.type = SignalingProtocol_js_1.SdkSignalFrame.Type.PRIMARY_MEETING_LEAVE;\\n        message.primaryMeetingLeave = primaryMeetingLeave;\\n        this.sendMessage(message);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultSignalingClient;\\nDefaultSignalingClient.FRAME_TYPE_RTC = 0x5;\\nDefaultSignalingClient.CLOSE_EVENT_TIMEOUT_MS = 2000;\\nDefaultSignalingClient.CLIENT_SUPPORTS_COMPRESSION = true;\\n//# sourceMappingURL=DefaultSignalingClient.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/DefaultSignalingClient.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.convertServerSideNetworkAdaptionEnumToSignaled = exports.convertServerSideNetworkAdaptionEnumFromSignaled = exports.ServerSideNetworkAdaption = void 0;\\nconst SignalingProtocol_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\n/**\\n * [[ServerSideNetworkAdaption]] represents additional server side features that can be enabled for network adaption.\\n */\\nvar ServerSideNetworkAdaption;\\n(function (ServerSideNetworkAdaption) {\\n    /**\\n     * No features enabled, but can be overriden from server side values.\\n     */\\n    ServerSideNetworkAdaption[ServerSideNetworkAdaption[\\\"Default\\\"] = 0] = \\\"Default\\\";\\n    /**\\n     * No features enabled. Will not be override from server side choice.\\n     */\\n    ServerSideNetworkAdaption[ServerSideNetworkAdaption[\\\"None\\\"] = 1] = \\\"None\\\";\\n    /**\\n     * Disable the existing client side bandwidth probing methods of waiting and unpausing,\\n     * or waiting and upgrading simulcast streams (which can be large increases of bitrates\\n     * and may lead to periodic oversubscription over network capacity\\n     * and resulting video freezes) and replace it with more gradual server\\n     * side probing of increasing amounts padding packets until the\\n     * bandwidth estimate safely reaches the value needed to resume the\\n     * next video source, or upgrade to the next higher simulcast stream.\\n     *\\n     * When this is enabled, any policy 'probing' for bandwidth headroom\\n     * should be disabled. This may also enable pacing of some media packets from the server\\n     * side, and may also enable packet burst probing.\\n     *\\n     * End users should overall see reduced video freezes, reduced broken audio,\\n     * and reduced packet loss.\\n     */\\n    ServerSideNetworkAdaption[ServerSideNetworkAdaption[\\\"BandwidthProbing\\\"] = 2] = \\\"BandwidthProbing\\\";\\n})(ServerSideNetworkAdaption = exports.ServerSideNetworkAdaption || (exports.ServerSideNetworkAdaption = {}));\\nexports[\\\"default\\\"] = ServerSideNetworkAdaption;\\nfunction convertServerSideNetworkAdaptionEnumFromSignaled(adaption) {\\n    switch (adaption) {\\n        case SignalingProtocol_1.SdkServerSideNetworkAdaption.DEFAULT:\\n            return ServerSideNetworkAdaption.Default;\\n        case SignalingProtocol_1.SdkServerSideNetworkAdaption.NONE:\\n            return ServerSideNetworkAdaption.None;\\n        case SignalingProtocol_1.SdkServerSideNetworkAdaption.BANDWIDTH_PROBING:\\n            return ServerSideNetworkAdaption.BandwidthProbing;\\n    }\\n}\\nexports.convertServerSideNetworkAdaptionEnumFromSignaled = convertServerSideNetworkAdaptionEnumFromSignaled;\\nfunction convertServerSideNetworkAdaptionEnumToSignaled(adaption) {\\n    switch (adaption) {\\n        case ServerSideNetworkAdaption.Default:\\n            return SignalingProtocol_1.SdkServerSideNetworkAdaption.DEFAULT;\\n        case ServerSideNetworkAdaption.None:\\n            return SignalingProtocol_1.SdkServerSideNetworkAdaption.NONE;\\n        case ServerSideNetworkAdaption.BandwidthProbing:\\n            return SignalingProtocol_1.SdkServerSideNetworkAdaption.BANDWIDTH_PROBING;\\n    }\\n}\\nexports.convertServerSideNetworkAdaptionEnumToSignaled = convertServerSideNetworkAdaptionEnumToSignaled;\\n//# sourceMappingURL=ServerSideNetworkAdaption.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientConnectionRequest.js\":\n/*!****************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientConnectionRequest.js ***!\n  \\****************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/*\\n * [[SignalingClientConnectionRequest]] represents an connection request.\\n */\\nclass SignalingClientConnectionRequest {\\n    /** Creates a request with the given URL, conference id, and join token.\\n     *\\n     * @param signalingURL The URL of the signaling proxy.\\n     * @param joinToken The join token that will authenticate the connection.\\n     */\\n    constructor(signalingURL, joinToken) {\\n        this.signalingURL = signalingURL;\\n        this.joinToken = joinToken;\\n    }\\n    /** Gets the signaling URL representing this request.*/\\n    url() {\\n        return (this.signalingURL + '?X-Chime-Control-Protocol-Version=3&X-Amzn-Chime-Send-Close-On-Error=1');\\n    }\\n    /** Gets the protocols associated with this request.*/\\n    protocols() {\\n        return ['_aws_wt_session', this.joinToken];\\n    }\\n}\\nexports[\\\"default\\\"] = SignalingClientConnectionRequest;\\n//# sourceMappingURL=SignalingClientConnectionRequest.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientConnectionRequest.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEvent.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEvent.js ***!\n  \\****************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ./SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\n/*\\n * [[SignalingClientEvent]] stores an event that can be sent to observers of the SignalingClient.\\n */\\nclass SignalingClientEvent {\\n    /** Initializes a SignalingClientEvent with the given SignalingClientEventType.\\n     *\\n     * @param client Indicates the SignalingClient associated with the event.\\n     * @param type Indicates the kind of event.\\n     * @param message SdkSignalFrame if type is ReceivedSignalFrame\\n     */\\n    constructor(client, type, message, closeCode, closeReason) {\\n        this.client = client;\\n        this.type = type;\\n        this.message = message;\\n        this.closeCode = closeCode;\\n        this.closeReason = closeReason;\\n        this.timestampMs = Date.now();\\n    }\\n    isConnectionTerminated() {\\n        switch (this.type) {\\n            case SignalingClientEventType_1.default.WebSocketFailed:\\n            case SignalingClientEventType_1.default.WebSocketError:\\n            case SignalingClientEventType_1.default.WebSocketClosing:\\n            case SignalingClientEventType_1.default.WebSocketClosed:\\n                return true;\\n            default:\\n                return false;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = SignalingClientEvent;\\n//# sourceMappingURL=SignalingClientEvent.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEvent.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SignalingClientEventType = void 0;\\n/** Defines the event types generated by SignalingClient and the underlying WebSocket connection. */\\nvar SignalingClientEventType;\\n(function (SignalingClientEventType) {\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketConnecting\\\"] = 0] = \\\"WebSocketConnecting\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketOpen\\\"] = 1] = \\\"WebSocketOpen\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketError\\\"] = 2] = \\\"WebSocketError\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketClosing\\\"] = 3] = \\\"WebSocketClosing\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketClosed\\\"] = 4] = \\\"WebSocketClosed\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketFailed\\\"] = 5] = \\\"WebSocketFailed\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketMessage\\\"] = 6] = \\\"WebSocketMessage\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketSendMessageFailure\\\"] = 7] = \\\"WebSocketSendMessageFailure\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketSentMessage\\\"] = 8] = \\\"WebSocketSentMessage\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"ProtocolDecodeFailure\\\"] = 9] = \\\"ProtocolDecodeFailure\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"ReceivedSignalFrame\\\"] = 10] = \\\"ReceivedSignalFrame\\\";\\n    SignalingClientEventType[SignalingClientEventType[\\\"WebSocketSkippedMessage\\\"] = 11] = \\\"WebSocketSkippedMessage\\\";\\n})(SignalingClientEventType = exports.SignalingClientEventType || (exports.SignalingClientEventType = {}));\\nexports[\\\"default\\\"] = SignalingClientEventType;\\n//# sourceMappingURL=SignalingClientEventType.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientJoin.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientJoin.js ***!\n  \\***************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ./ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\n/**\\n * [[SignalingClientJoin]] contains settings for the Join SignalFrame.\\n */\\nclass SignalingClientJoin {\\n    /**\\n     * Initializes a SignalingClientJoin with the given properties.\\n     * @param applicationMetadata [[ApplicationMetadata]].\\n     */\\n    constructor(applicationMetadata) {\\n        this.applicationMetadata = applicationMetadata;\\n        this.serverSideNetworkAdaption = ServerSideNetworkAdaption_1.default.Default;\\n        this.supportedServerSideNetworkAdaptions = [];\\n    }\\n}\\nexports[\\\"default\\\"] = SignalingClientJoin;\\n//# sourceMappingURL=SignalingClientJoin.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientJoin.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientSubscribe.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientSubscribe.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[SignalingClientSubscribe]] contains settings for the Subscribe SignalFrame.\\n */\\nclass SignalingClientSubscribe {\\n    /** Initializes a SignalingClientSubscribe with the given properties.\\n     *\\n     * @param attendeeId Attendee ID of the client\\n     * @param sdpOffer SDP offer created by WebRTC\\n     * @param audioHost host\\n     * @param audioMuted Whether audio from client is muted\\n     * @param audioCheckin Whether audio is in checked-in state\\n     * @param receiveStreamIds Which video streams to receive\\n     * @param localVideoEnabled Whether to send a video stream for the local camera\\n     * @param array of local video stream description\\n     * @param connectionTypeHasVideo Whether connection type has video\\n     * @param compressedSdpOffer Compressed version of the SDP offer which was created by WebRTC\\n     */\\n    constructor(attendeeId, sdpOffer, audioHost, audioMuted, audioCheckin, receiveStreamIds, localVideoEnabled, videoStreamDescriptions, connectionTypeHasVideo, compressedSdpOffer) {\\n        this.attendeeId = attendeeId;\\n        this.sdpOffer = sdpOffer;\\n        this.audioHost = audioHost;\\n        this.audioMuted = audioMuted;\\n        this.audioCheckin = audioCheckin;\\n        this.receiveStreamIds = receiveStreamIds;\\n        this.localVideoEnabled = localVideoEnabled;\\n        this.videoStreamDescriptions = videoStreamDescriptions;\\n        this.connectionTypeHasVideo = connectionTypeHasVideo;\\n        this.compressedSdpOffer = compressedSdpOffer;\\n        this.videoSubscriptionConfiguration = [];\\n    }\\n}\\nexports[\\\"default\\\"] = SignalingClientSubscribe;\\n//# sourceMappingURL=SignalingClientSubscribe.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientSubscribe.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js\":\n/*!*****************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js ***!\n  \\*****************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[SignalingClientVideoSubscriptionConfiguration]] is an internal representation of\\n * `SignalingProtocol.VideoSubscriptionConfiguration`\\n */\\nclass SignalingClientVideoSubscriptionConfiguration {\\n}\\nexports[\\\"default\\\"] = SignalingClientVideoSubscriptionConfiguration;\\n//# sourceMappingURL=SignalingClientVideoSubscriptionConfiguration.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js ***!\n  \\***************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\\n\\n\\nvar $protobuf = __webpack_require__(/*! protobufjs/minimal */ \\\"./node_modules/protobufjs/minimal.js\\\");\\n\\n// Common aliases\\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\\n\\n// Exported root namespace\\nvar $root = $protobuf.roots[\\\"default\\\"] || ($protobuf.roots[\\\"default\\\"] = {});\\n\\n$root.SdkSignalFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkSignalFrame.\\n     * @exports ISdkSignalFrame\\n     * @interface ISdkSignalFrame\\n     * @property {number|Long} timestampMs SdkSignalFrame timestampMs\\n     * @property {SdkSignalFrame.Type} type SdkSignalFrame type\\n     * @property {ISdkErrorFrame|null} [error] SdkSignalFrame error\\n     * @property {ISdkJoinFrame|null} [join] SdkSignalFrame join\\n     * @property {ISdkJoinAckFrame|null} [joinack] SdkSignalFrame joinack\\n     * @property {ISdkSubscribeFrame|null} [sub] SdkSignalFrame sub\\n     * @property {ISdkSubscribeAckFrame|null} [suback] SdkSignalFrame suback\\n     * @property {ISdkIndexFrame|null} [index] SdkSignalFrame index\\n     * @property {ISdkPauseResumeFrame|null} [pause] SdkSignalFrame pause\\n     * @property {ISdkLeaveFrame|null} [leave] SdkSignalFrame leave\\n     * @property {ISdkLeaveAckFrame|null} [leaveAck] SdkSignalFrame leaveAck\\n     * @property {ISdkBitrateFrame|null} [bitrates] SdkSignalFrame bitrates\\n     * @property {ISdkAudioControlFrame|null} [audioControl] SdkSignalFrame audioControl\\n     * @property {ISdkAudioMetadataFrame|null} [audioMetadata] SdkSignalFrame audioMetadata\\n     * @property {ISdkAudioStreamIdInfoFrame|null} [audioStreamIdInfo] SdkSignalFrame audioStreamIdInfo\\n     * @property {ISdkPingPongFrame|null} [pingPong] SdkSignalFrame pingPong\\n     * @property {ISdkAudioStatusFrame|null} [audioStatus] SdkSignalFrame audioStatus\\n     * @property {ISdkClientMetricFrame|null} [clientMetric] SdkSignalFrame clientMetric\\n     * @property {ISdkDataMessageFrame|null} [dataMessage] SdkSignalFrame dataMessage\\n     * @property {ISdkRemoteVideoUpdateFrame|null} [remoteVideoUpdate] SdkSignalFrame remoteVideoUpdate\\n     * @property {ISdkPrimaryMeetingJoinFrame|null} [primaryMeetingJoin] SdkSignalFrame primaryMeetingJoin\\n     * @property {ISdkPrimaryMeetingJoinAckFrame|null} [primaryMeetingJoinAck] SdkSignalFrame primaryMeetingJoinAck\\n     * @property {ISdkPrimaryMeetingLeaveFrame|null} [primaryMeetingLeave] SdkSignalFrame primaryMeetingLeave\\n     */\\n\\n    /**\\n     * Constructs a new SdkSignalFrame.\\n     * @exports SdkSignalFrame\\n     * @classdesc Represents a SdkSignalFrame.\\n     * @implements ISdkSignalFrame\\n     * @constructor\\n     * @param {ISdkSignalFrame=} [properties] Properties to set\\n     */\\n    function SdkSignalFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkSignalFrame timestampMs.\\n     * @member {number|Long} timestampMs\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.timestampMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\\n\\n    /**\\n     * SdkSignalFrame type.\\n     * @member {SdkSignalFrame.Type} type\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.type = 1;\\n\\n    /**\\n     * SdkSignalFrame error.\\n     * @member {ISdkErrorFrame|null|undefined} error\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.error = null;\\n\\n    /**\\n     * SdkSignalFrame join.\\n     * @member {ISdkJoinFrame|null|undefined} join\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.join = null;\\n\\n    /**\\n     * SdkSignalFrame joinack.\\n     * @member {ISdkJoinAckFrame|null|undefined} joinack\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.joinack = null;\\n\\n    /**\\n     * SdkSignalFrame sub.\\n     * @member {ISdkSubscribeFrame|null|undefined} sub\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.sub = null;\\n\\n    /**\\n     * SdkSignalFrame suback.\\n     * @member {ISdkSubscribeAckFrame|null|undefined} suback\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.suback = null;\\n\\n    /**\\n     * SdkSignalFrame index.\\n     * @member {ISdkIndexFrame|null|undefined} index\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.index = null;\\n\\n    /**\\n     * SdkSignalFrame pause.\\n     * @member {ISdkPauseResumeFrame|null|undefined} pause\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.pause = null;\\n\\n    /**\\n     * SdkSignalFrame leave.\\n     * @member {ISdkLeaveFrame|null|undefined} leave\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.leave = null;\\n\\n    /**\\n     * SdkSignalFrame leaveAck.\\n     * @member {ISdkLeaveAckFrame|null|undefined} leaveAck\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.leaveAck = null;\\n\\n    /**\\n     * SdkSignalFrame bitrates.\\n     * @member {ISdkBitrateFrame|null|undefined} bitrates\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.bitrates = null;\\n\\n    /**\\n     * SdkSignalFrame audioControl.\\n     * @member {ISdkAudioControlFrame|null|undefined} audioControl\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.audioControl = null;\\n\\n    /**\\n     * SdkSignalFrame audioMetadata.\\n     * @member {ISdkAudioMetadataFrame|null|undefined} audioMetadata\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.audioMetadata = null;\\n\\n    /**\\n     * SdkSignalFrame audioStreamIdInfo.\\n     * @member {ISdkAudioStreamIdInfoFrame|null|undefined} audioStreamIdInfo\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.audioStreamIdInfo = null;\\n\\n    /**\\n     * SdkSignalFrame pingPong.\\n     * @member {ISdkPingPongFrame|null|undefined} pingPong\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.pingPong = null;\\n\\n    /**\\n     * SdkSignalFrame audioStatus.\\n     * @member {ISdkAudioStatusFrame|null|undefined} audioStatus\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.audioStatus = null;\\n\\n    /**\\n     * SdkSignalFrame clientMetric.\\n     * @member {ISdkClientMetricFrame|null|undefined} clientMetric\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.clientMetric = null;\\n\\n    /**\\n     * SdkSignalFrame dataMessage.\\n     * @member {ISdkDataMessageFrame|null|undefined} dataMessage\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.dataMessage = null;\\n\\n    /**\\n     * SdkSignalFrame remoteVideoUpdate.\\n     * @member {ISdkRemoteVideoUpdateFrame|null|undefined} remoteVideoUpdate\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.remoteVideoUpdate = null;\\n\\n    /**\\n     * SdkSignalFrame primaryMeetingJoin.\\n     * @member {ISdkPrimaryMeetingJoinFrame|null|undefined} primaryMeetingJoin\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.primaryMeetingJoin = null;\\n\\n    /**\\n     * SdkSignalFrame primaryMeetingJoinAck.\\n     * @member {ISdkPrimaryMeetingJoinAckFrame|null|undefined} primaryMeetingJoinAck\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.primaryMeetingJoinAck = null;\\n\\n    /**\\n     * SdkSignalFrame primaryMeetingLeave.\\n     * @member {ISdkPrimaryMeetingLeaveFrame|null|undefined} primaryMeetingLeave\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     */\\n    SdkSignalFrame.prototype.primaryMeetingLeave = null;\\n\\n    /**\\n     * Creates a new SdkSignalFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {ISdkSignalFrame=} [properties] Properties to set\\n     * @returns {SdkSignalFrame} SdkSignalFrame instance\\n     */\\n    SdkSignalFrame.create = function create(properties) {\\n        return new SdkSignalFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSignalFrame message. Does not implicitly {@link SdkSignalFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {ISdkSignalFrame} message SdkSignalFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSignalFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.timestampMs);\\n        writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type);\\n        if (message.error != null && Object.hasOwnProperty.call(message, \\\"error\\\"))\\n            $root.SdkErrorFrame.encode(message.error, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\\n        if (message.join != null && Object.hasOwnProperty.call(message, \\\"join\\\"))\\n            $root.SdkJoinFrame.encode(message.join, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\\n        if (message.joinack != null && Object.hasOwnProperty.call(message, \\\"joinack\\\"))\\n            $root.SdkJoinAckFrame.encode(message.joinack, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\\n        if (message.sub != null && Object.hasOwnProperty.call(message, \\\"sub\\\"))\\n            $root.SdkSubscribeFrame.encode(message.sub, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\\n        if (message.suback != null && Object.hasOwnProperty.call(message, \\\"suback\\\"))\\n            $root.SdkSubscribeAckFrame.encode(message.suback, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\\n        if (message.index != null && Object.hasOwnProperty.call(message, \\\"index\\\"))\\n            $root.SdkIndexFrame.encode(message.index, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\\n        if (message.pause != null && Object.hasOwnProperty.call(message, \\\"pause\\\"))\\n            $root.SdkPauseResumeFrame.encode(message.pause, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();\\n        if (message.leave != null && Object.hasOwnProperty.call(message, \\\"leave\\\"))\\n            $root.SdkLeaveFrame.encode(message.leave, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\\n        if (message.leaveAck != null && Object.hasOwnProperty.call(message, \\\"leaveAck\\\"))\\n            $root.SdkLeaveAckFrame.encode(message.leaveAck, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\\n        if (message.bitrates != null && Object.hasOwnProperty.call(message, \\\"bitrates\\\"))\\n            $root.SdkBitrateFrame.encode(message.bitrates, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();\\n        if (message.audioControl != null && Object.hasOwnProperty.call(message, \\\"audioControl\\\"))\\n            $root.SdkAudioControlFrame.encode(message.audioControl, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim();\\n        if (message.audioMetadata != null && Object.hasOwnProperty.call(message, \\\"audioMetadata\\\"))\\n            $root.SdkAudioMetadataFrame.encode(message.audioMetadata, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();\\n        if (message.audioStreamIdInfo != null && Object.hasOwnProperty.call(message, \\\"audioStreamIdInfo\\\"))\\n            $root.SdkAudioStreamIdInfoFrame.encode(message.audioStreamIdInfo, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim();\\n        if (message.pingPong != null && Object.hasOwnProperty.call(message, \\\"pingPong\\\"))\\n            $root.SdkPingPongFrame.encode(message.pingPong, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim();\\n        if (message.audioStatus != null && Object.hasOwnProperty.call(message, \\\"audioStatus\\\"))\\n            $root.SdkAudioStatusFrame.encode(message.audioStatus, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim();\\n        if (message.clientMetric != null && Object.hasOwnProperty.call(message, \\\"clientMetric\\\"))\\n            $root.SdkClientMetricFrame.encode(message.clientMetric, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim();\\n        if (message.dataMessage != null && Object.hasOwnProperty.call(message, \\\"dataMessage\\\"))\\n            $root.SdkDataMessageFrame.encode(message.dataMessage, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim();\\n        if (message.remoteVideoUpdate != null && Object.hasOwnProperty.call(message, \\\"remoteVideoUpdate\\\"))\\n            $root.SdkRemoteVideoUpdateFrame.encode(message.remoteVideoUpdate, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim();\\n        if (message.primaryMeetingJoin != null && Object.hasOwnProperty.call(message, \\\"primaryMeetingJoin\\\"))\\n            $root.SdkPrimaryMeetingJoinFrame.encode(message.primaryMeetingJoin, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();\\n        if (message.primaryMeetingJoinAck != null && Object.hasOwnProperty.call(message, \\\"primaryMeetingJoinAck\\\"))\\n            $root.SdkPrimaryMeetingJoinAckFrame.encode(message.primaryMeetingJoinAck, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim();\\n        if (message.primaryMeetingLeave != null && Object.hasOwnProperty.call(message, \\\"primaryMeetingLeave\\\"))\\n            $root.SdkPrimaryMeetingLeaveFrame.encode(message.primaryMeetingLeave, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSignalFrame message, length delimited. Does not implicitly {@link SdkSignalFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {ISdkSignalFrame} message SdkSignalFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSignalFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkSignalFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkSignalFrame} SdkSignalFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSignalFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkSignalFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.timestampMs = reader.uint64();\\n                break;\\n            case 2:\\n                message.type = reader.int32();\\n                break;\\n            case 3:\\n                message.error = $root.SdkErrorFrame.decode(reader, reader.uint32());\\n                break;\\n            case 4:\\n                message.join = $root.SdkJoinFrame.decode(reader, reader.uint32());\\n                break;\\n            case 5:\\n                message.joinack = $root.SdkJoinAckFrame.decode(reader, reader.uint32());\\n                break;\\n            case 6:\\n                message.sub = $root.SdkSubscribeFrame.decode(reader, reader.uint32());\\n                break;\\n            case 7:\\n                message.suback = $root.SdkSubscribeAckFrame.decode(reader, reader.uint32());\\n                break;\\n            case 8:\\n                message.index = $root.SdkIndexFrame.decode(reader, reader.uint32());\\n                break;\\n            case 10:\\n                message.pause = $root.SdkPauseResumeFrame.decode(reader, reader.uint32());\\n                break;\\n            case 11:\\n                message.leave = $root.SdkLeaveFrame.decode(reader, reader.uint32());\\n                break;\\n            case 12:\\n                message.leaveAck = $root.SdkLeaveAckFrame.decode(reader, reader.uint32());\\n                break;\\n            case 14:\\n                message.bitrates = $root.SdkBitrateFrame.decode(reader, reader.uint32());\\n                break;\\n            case 17:\\n                message.audioControl = $root.SdkAudioControlFrame.decode(reader, reader.uint32());\\n                break;\\n            case 18:\\n                message.audioMetadata = $root.SdkAudioMetadataFrame.decode(reader, reader.uint32());\\n                break;\\n            case 19:\\n                message.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.decode(reader, reader.uint32());\\n                break;\\n            case 20:\\n                message.pingPong = $root.SdkPingPongFrame.decode(reader, reader.uint32());\\n                break;\\n            case 21:\\n                message.audioStatus = $root.SdkAudioStatusFrame.decode(reader, reader.uint32());\\n                break;\\n            case 22:\\n                message.clientMetric = $root.SdkClientMetricFrame.decode(reader, reader.uint32());\\n                break;\\n            case 23:\\n                message.dataMessage = $root.SdkDataMessageFrame.decode(reader, reader.uint32());\\n                break;\\n            case 25:\\n                message.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.decode(reader, reader.uint32());\\n                break;\\n            case 26:\\n                message.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.decode(reader, reader.uint32());\\n                break;\\n            case 27:\\n                message.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.decode(reader, reader.uint32());\\n                break;\\n            case 28:\\n                message.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.decode(reader, reader.uint32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        if (!message.hasOwnProperty(\\\"timestampMs\\\"))\\n            throw $util.ProtocolError(\\\"missing required 'timestampMs'\\\", { instance: message });\\n        if (!message.hasOwnProperty(\\\"type\\\"))\\n            throw $util.ProtocolError(\\\"missing required 'type'\\\", { instance: message });\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkSignalFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkSignalFrame} SdkSignalFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSignalFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkSignalFrame message.\\n     * @function verify\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkSignalFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (!$util.isInteger(message.timestampMs) && !(message.timestampMs && $util.isInteger(message.timestampMs.low) && $util.isInteger(message.timestampMs.high)))\\n            return \\\"timestampMs: integer|Long expected\\\";\\n        switch (message.type) {\\n        default:\\n            return \\\"type: enum value expected\\\";\\n        case 1:\\n        case 2:\\n        case 3:\\n        case 4:\\n        case 5:\\n        case 7:\\n        case 8:\\n        case 9:\\n        case 10:\\n        case 13:\\n        case 16:\\n        case 17:\\n        case 18:\\n        case 19:\\n        case 20:\\n        case 21:\\n        case 22:\\n        case 24:\\n        case 25:\\n        case 26:\\n        case 27:\\n            break;\\n        }\\n        if (message.error != null && message.hasOwnProperty(\\\"error\\\")) {\\n            var error = $root.SdkErrorFrame.verify(message.error);\\n            if (error)\\n                return \\\"error.\\\" + error;\\n        }\\n        if (message.join != null && message.hasOwnProperty(\\\"join\\\")) {\\n            var error = $root.SdkJoinFrame.verify(message.join);\\n            if (error)\\n                return \\\"join.\\\" + error;\\n        }\\n        if (message.joinack != null && message.hasOwnProperty(\\\"joinack\\\")) {\\n            var error = $root.SdkJoinAckFrame.verify(message.joinack);\\n            if (error)\\n                return \\\"joinack.\\\" + error;\\n        }\\n        if (message.sub != null && message.hasOwnProperty(\\\"sub\\\")) {\\n            var error = $root.SdkSubscribeFrame.verify(message.sub);\\n            if (error)\\n                return \\\"sub.\\\" + error;\\n        }\\n        if (message.suback != null && message.hasOwnProperty(\\\"suback\\\")) {\\n            var error = $root.SdkSubscribeAckFrame.verify(message.suback);\\n            if (error)\\n                return \\\"suback.\\\" + error;\\n        }\\n        if (message.index != null && message.hasOwnProperty(\\\"index\\\")) {\\n            var error = $root.SdkIndexFrame.verify(message.index);\\n            if (error)\\n                return \\\"index.\\\" + error;\\n        }\\n        if (message.pause != null && message.hasOwnProperty(\\\"pause\\\")) {\\n            var error = $root.SdkPauseResumeFrame.verify(message.pause);\\n            if (error)\\n                return \\\"pause.\\\" + error;\\n        }\\n        if (message.leave != null && message.hasOwnProperty(\\\"leave\\\")) {\\n            var error = $root.SdkLeaveFrame.verify(message.leave);\\n            if (error)\\n                return \\\"leave.\\\" + error;\\n        }\\n        if (message.leaveAck != null && message.hasOwnProperty(\\\"leaveAck\\\")) {\\n            var error = $root.SdkLeaveAckFrame.verify(message.leaveAck);\\n            if (error)\\n                return \\\"leaveAck.\\\" + error;\\n        }\\n        if (message.bitrates != null && message.hasOwnProperty(\\\"bitrates\\\")) {\\n            var error = $root.SdkBitrateFrame.verify(message.bitrates);\\n            if (error)\\n                return \\\"bitrates.\\\" + error;\\n        }\\n        if (message.audioControl != null && message.hasOwnProperty(\\\"audioControl\\\")) {\\n            var error = $root.SdkAudioControlFrame.verify(message.audioControl);\\n            if (error)\\n                return \\\"audioControl.\\\" + error;\\n        }\\n        if (message.audioMetadata != null && message.hasOwnProperty(\\\"audioMetadata\\\")) {\\n            var error = $root.SdkAudioMetadataFrame.verify(message.audioMetadata);\\n            if (error)\\n                return \\\"audioMetadata.\\\" + error;\\n        }\\n        if (message.audioStreamIdInfo != null && message.hasOwnProperty(\\\"audioStreamIdInfo\\\")) {\\n            var error = $root.SdkAudioStreamIdInfoFrame.verify(message.audioStreamIdInfo);\\n            if (error)\\n                return \\\"audioStreamIdInfo.\\\" + error;\\n        }\\n        if (message.pingPong != null && message.hasOwnProperty(\\\"pingPong\\\")) {\\n            var error = $root.SdkPingPongFrame.verify(message.pingPong);\\n            if (error)\\n                return \\\"pingPong.\\\" + error;\\n        }\\n        if (message.audioStatus != null && message.hasOwnProperty(\\\"audioStatus\\\")) {\\n            var error = $root.SdkAudioStatusFrame.verify(message.audioStatus);\\n            if (error)\\n                return \\\"audioStatus.\\\" + error;\\n        }\\n        if (message.clientMetric != null && message.hasOwnProperty(\\\"clientMetric\\\")) {\\n            var error = $root.SdkClientMetricFrame.verify(message.clientMetric);\\n            if (error)\\n                return \\\"clientMetric.\\\" + error;\\n        }\\n        if (message.dataMessage != null && message.hasOwnProperty(\\\"dataMessage\\\")) {\\n            var error = $root.SdkDataMessageFrame.verify(message.dataMessage);\\n            if (error)\\n                return \\\"dataMessage.\\\" + error;\\n        }\\n        if (message.remoteVideoUpdate != null && message.hasOwnProperty(\\\"remoteVideoUpdate\\\")) {\\n            var error = $root.SdkRemoteVideoUpdateFrame.verify(message.remoteVideoUpdate);\\n            if (error)\\n                return \\\"remoteVideoUpdate.\\\" + error;\\n        }\\n        if (message.primaryMeetingJoin != null && message.hasOwnProperty(\\\"primaryMeetingJoin\\\")) {\\n            var error = $root.SdkPrimaryMeetingJoinFrame.verify(message.primaryMeetingJoin);\\n            if (error)\\n                return \\\"primaryMeetingJoin.\\\" + error;\\n        }\\n        if (message.primaryMeetingJoinAck != null && message.hasOwnProperty(\\\"primaryMeetingJoinAck\\\")) {\\n            var error = $root.SdkPrimaryMeetingJoinAckFrame.verify(message.primaryMeetingJoinAck);\\n            if (error)\\n                return \\\"primaryMeetingJoinAck.\\\" + error;\\n        }\\n        if (message.primaryMeetingLeave != null && message.hasOwnProperty(\\\"primaryMeetingLeave\\\")) {\\n            var error = $root.SdkPrimaryMeetingLeaveFrame.verify(message.primaryMeetingLeave);\\n            if (error)\\n                return \\\"primaryMeetingLeave.\\\" + error;\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkSignalFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkSignalFrame} SdkSignalFrame\\n     */\\n    SdkSignalFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkSignalFrame)\\n            return object;\\n        var message = new $root.SdkSignalFrame();\\n        if (object.timestampMs != null)\\n            if ($util.Long)\\n                (message.timestampMs = $util.Long.fromValue(object.timestampMs)).unsigned = true;\\n            else if (typeof object.timestampMs === \\\"string\\\")\\n                message.timestampMs = parseInt(object.timestampMs, 10);\\n            else if (typeof object.timestampMs === \\\"number\\\")\\n                message.timestampMs = object.timestampMs;\\n            else if (typeof object.timestampMs === \\\"object\\\")\\n                message.timestampMs = new $util.LongBits(object.timestampMs.low >>> 0, object.timestampMs.high >>> 0).toNumber(true);\\n        switch (object.type) {\\n        case \\\"JOIN\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"JOIN_ACK\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        case \\\"SUBSCRIBE\\\":\\n        case 3:\\n            message.type = 3;\\n            break;\\n        case \\\"SUBSCRIBE_ACK\\\":\\n        case 4:\\n            message.type = 4;\\n            break;\\n        case \\\"INDEX\\\":\\n        case 5:\\n            message.type = 5;\\n            break;\\n        case \\\"PAUSE\\\":\\n        case 7:\\n            message.type = 7;\\n            break;\\n        case \\\"RESUME\\\":\\n        case 8:\\n            message.type = 8;\\n            break;\\n        case \\\"LEAVE\\\":\\n        case 9:\\n            message.type = 9;\\n            break;\\n        case \\\"LEAVE_ACK\\\":\\n        case 10:\\n            message.type = 10;\\n            break;\\n        case \\\"BITRATES\\\":\\n        case 13:\\n            message.type = 13;\\n            break;\\n        case \\\"AUDIO_CONTROL\\\":\\n        case 16:\\n            message.type = 16;\\n            break;\\n        case \\\"AUDIO_METADATA\\\":\\n        case 17:\\n            message.type = 17;\\n            break;\\n        case \\\"AUDIO_STREAM_ID_INFO\\\":\\n        case 18:\\n            message.type = 18;\\n            break;\\n        case \\\"PING_PONG\\\":\\n        case 19:\\n            message.type = 19;\\n            break;\\n        case \\\"AUDIO_STATUS\\\":\\n        case 20:\\n            message.type = 20;\\n            break;\\n        case \\\"CLIENT_METRIC\\\":\\n        case 21:\\n            message.type = 21;\\n            break;\\n        case \\\"DATA_MESSAGE\\\":\\n        case 22:\\n            message.type = 22;\\n            break;\\n        case \\\"REMOTE_VIDEO_UPDATE\\\":\\n        case 24:\\n            message.type = 24;\\n            break;\\n        case \\\"PRIMARY_MEETING_JOIN\\\":\\n        case 25:\\n            message.type = 25;\\n            break;\\n        case \\\"PRIMARY_MEETING_JOIN_ACK\\\":\\n        case 26:\\n            message.type = 26;\\n            break;\\n        case \\\"PRIMARY_MEETING_LEAVE\\\":\\n        case 27:\\n            message.type = 27;\\n            break;\\n        }\\n        if (object.error != null) {\\n            if (typeof object.error !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.error: object expected\\\");\\n            message.error = $root.SdkErrorFrame.fromObject(object.error);\\n        }\\n        if (object.join != null) {\\n            if (typeof object.join !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.join: object expected\\\");\\n            message.join = $root.SdkJoinFrame.fromObject(object.join);\\n        }\\n        if (object.joinack != null) {\\n            if (typeof object.joinack !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.joinack: object expected\\\");\\n            message.joinack = $root.SdkJoinAckFrame.fromObject(object.joinack);\\n        }\\n        if (object.sub != null) {\\n            if (typeof object.sub !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.sub: object expected\\\");\\n            message.sub = $root.SdkSubscribeFrame.fromObject(object.sub);\\n        }\\n        if (object.suback != null) {\\n            if (typeof object.suback !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.suback: object expected\\\");\\n            message.suback = $root.SdkSubscribeAckFrame.fromObject(object.suback);\\n        }\\n        if (object.index != null) {\\n            if (typeof object.index !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.index: object expected\\\");\\n            message.index = $root.SdkIndexFrame.fromObject(object.index);\\n        }\\n        if (object.pause != null) {\\n            if (typeof object.pause !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.pause: object expected\\\");\\n            message.pause = $root.SdkPauseResumeFrame.fromObject(object.pause);\\n        }\\n        if (object.leave != null) {\\n            if (typeof object.leave !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.leave: object expected\\\");\\n            message.leave = $root.SdkLeaveFrame.fromObject(object.leave);\\n        }\\n        if (object.leaveAck != null) {\\n            if (typeof object.leaveAck !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.leaveAck: object expected\\\");\\n            message.leaveAck = $root.SdkLeaveAckFrame.fromObject(object.leaveAck);\\n        }\\n        if (object.bitrates != null) {\\n            if (typeof object.bitrates !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.bitrates: object expected\\\");\\n            message.bitrates = $root.SdkBitrateFrame.fromObject(object.bitrates);\\n        }\\n        if (object.audioControl != null) {\\n            if (typeof object.audioControl !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.audioControl: object expected\\\");\\n            message.audioControl = $root.SdkAudioControlFrame.fromObject(object.audioControl);\\n        }\\n        if (object.audioMetadata != null) {\\n            if (typeof object.audioMetadata !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.audioMetadata: object expected\\\");\\n            message.audioMetadata = $root.SdkAudioMetadataFrame.fromObject(object.audioMetadata);\\n        }\\n        if (object.audioStreamIdInfo != null) {\\n            if (typeof object.audioStreamIdInfo !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.audioStreamIdInfo: object expected\\\");\\n            message.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.fromObject(object.audioStreamIdInfo);\\n        }\\n        if (object.pingPong != null) {\\n            if (typeof object.pingPong !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.pingPong: object expected\\\");\\n            message.pingPong = $root.SdkPingPongFrame.fromObject(object.pingPong);\\n        }\\n        if (object.audioStatus != null) {\\n            if (typeof object.audioStatus !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.audioStatus: object expected\\\");\\n            message.audioStatus = $root.SdkAudioStatusFrame.fromObject(object.audioStatus);\\n        }\\n        if (object.clientMetric != null) {\\n            if (typeof object.clientMetric !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.clientMetric: object expected\\\");\\n            message.clientMetric = $root.SdkClientMetricFrame.fromObject(object.clientMetric);\\n        }\\n        if (object.dataMessage != null) {\\n            if (typeof object.dataMessage !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.dataMessage: object expected\\\");\\n            message.dataMessage = $root.SdkDataMessageFrame.fromObject(object.dataMessage);\\n        }\\n        if (object.remoteVideoUpdate != null) {\\n            if (typeof object.remoteVideoUpdate !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.remoteVideoUpdate: object expected\\\");\\n            message.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.fromObject(object.remoteVideoUpdate);\\n        }\\n        if (object.primaryMeetingJoin != null) {\\n            if (typeof object.primaryMeetingJoin !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.primaryMeetingJoin: object expected\\\");\\n            message.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.fromObject(object.primaryMeetingJoin);\\n        }\\n        if (object.primaryMeetingJoinAck != null) {\\n            if (typeof object.primaryMeetingJoinAck !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.primaryMeetingJoinAck: object expected\\\");\\n            message.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.fromObject(object.primaryMeetingJoinAck);\\n        }\\n        if (object.primaryMeetingLeave != null) {\\n            if (typeof object.primaryMeetingLeave !== \\\"object\\\")\\n                throw TypeError(\\\".SdkSignalFrame.primaryMeetingLeave: object expected\\\");\\n            message.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.fromObject(object.primaryMeetingLeave);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkSignalFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkSignalFrame\\n     * @static\\n     * @param {SdkSignalFrame} message SdkSignalFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkSignalFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, true);\\n                object.timestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.timestampMs = options.longs === String ? \\\"0\\\" : 0;\\n            object.type = options.enums === String ? \\\"JOIN\\\" : 1;\\n            object.error = null;\\n            object.join = null;\\n            object.joinack = null;\\n            object.sub = null;\\n            object.suback = null;\\n            object.index = null;\\n            object.pause = null;\\n            object.leave = null;\\n            object.leaveAck = null;\\n            object.bitrates = null;\\n            object.audioControl = null;\\n            object.audioMetadata = null;\\n            object.audioStreamIdInfo = null;\\n            object.pingPong = null;\\n            object.audioStatus = null;\\n            object.clientMetric = null;\\n            object.dataMessage = null;\\n            object.remoteVideoUpdate = null;\\n            object.primaryMeetingJoin = null;\\n            object.primaryMeetingJoinAck = null;\\n            object.primaryMeetingLeave = null;\\n        }\\n        if (message.timestampMs != null && message.hasOwnProperty(\\\"timestampMs\\\"))\\n            if (typeof message.timestampMs === \\\"number\\\")\\n                object.timestampMs = options.longs === String ? String(message.timestampMs) : message.timestampMs;\\n            else\\n                object.timestampMs = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMs) : options.longs === Number ? new $util.LongBits(message.timestampMs.low >>> 0, message.timestampMs.high >>> 0).toNumber(true) : message.timestampMs;\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkSignalFrame.Type[message.type] : message.type;\\n        if (message.error != null && message.hasOwnProperty(\\\"error\\\"))\\n            object.error = $root.SdkErrorFrame.toObject(message.error, options);\\n        if (message.join != null && message.hasOwnProperty(\\\"join\\\"))\\n            object.join = $root.SdkJoinFrame.toObject(message.join, options);\\n        if (message.joinack != null && message.hasOwnProperty(\\\"joinack\\\"))\\n            object.joinack = $root.SdkJoinAckFrame.toObject(message.joinack, options);\\n        if (message.sub != null && message.hasOwnProperty(\\\"sub\\\"))\\n            object.sub = $root.SdkSubscribeFrame.toObject(message.sub, options);\\n        if (message.suback != null && message.hasOwnProperty(\\\"suback\\\"))\\n            object.suback = $root.SdkSubscribeAckFrame.toObject(message.suback, options);\\n        if (message.index != null && message.hasOwnProperty(\\\"index\\\"))\\n            object.index = $root.SdkIndexFrame.toObject(message.index, options);\\n        if (message.pause != null && message.hasOwnProperty(\\\"pause\\\"))\\n            object.pause = $root.SdkPauseResumeFrame.toObject(message.pause, options);\\n        if (message.leave != null && message.hasOwnProperty(\\\"leave\\\"))\\n            object.leave = $root.SdkLeaveFrame.toObject(message.leave, options);\\n        if (message.leaveAck != null && message.hasOwnProperty(\\\"leaveAck\\\"))\\n            object.leaveAck = $root.SdkLeaveAckFrame.toObject(message.leaveAck, options);\\n        if (message.bitrates != null && message.hasOwnProperty(\\\"bitrates\\\"))\\n            object.bitrates = $root.SdkBitrateFrame.toObject(message.bitrates, options);\\n        if (message.audioControl != null && message.hasOwnProperty(\\\"audioControl\\\"))\\n            object.audioControl = $root.SdkAudioControlFrame.toObject(message.audioControl, options);\\n        if (message.audioMetadata != null && message.hasOwnProperty(\\\"audioMetadata\\\"))\\n            object.audioMetadata = $root.SdkAudioMetadataFrame.toObject(message.audioMetadata, options);\\n        if (message.audioStreamIdInfo != null && message.hasOwnProperty(\\\"audioStreamIdInfo\\\"))\\n            object.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.toObject(message.audioStreamIdInfo, options);\\n        if (message.pingPong != null && message.hasOwnProperty(\\\"pingPong\\\"))\\n            object.pingPong = $root.SdkPingPongFrame.toObject(message.pingPong, options);\\n        if (message.audioStatus != null && message.hasOwnProperty(\\\"audioStatus\\\"))\\n            object.audioStatus = $root.SdkAudioStatusFrame.toObject(message.audioStatus, options);\\n        if (message.clientMetric != null && message.hasOwnProperty(\\\"clientMetric\\\"))\\n            object.clientMetric = $root.SdkClientMetricFrame.toObject(message.clientMetric, options);\\n        if (message.dataMessage != null && message.hasOwnProperty(\\\"dataMessage\\\"))\\n            object.dataMessage = $root.SdkDataMessageFrame.toObject(message.dataMessage, options);\\n        if (message.remoteVideoUpdate != null && message.hasOwnProperty(\\\"remoteVideoUpdate\\\"))\\n            object.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.toObject(message.remoteVideoUpdate, options);\\n        if (message.primaryMeetingJoin != null && message.hasOwnProperty(\\\"primaryMeetingJoin\\\"))\\n            object.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.toObject(message.primaryMeetingJoin, options);\\n        if (message.primaryMeetingJoinAck != null && message.hasOwnProperty(\\\"primaryMeetingJoinAck\\\"))\\n            object.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.toObject(message.primaryMeetingJoinAck, options);\\n        if (message.primaryMeetingLeave != null && message.hasOwnProperty(\\\"primaryMeetingLeave\\\"))\\n            object.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.toObject(message.primaryMeetingLeave, options);\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkSignalFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkSignalFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkSignalFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    /**\\n     * Type enum.\\n     * @name SdkSignalFrame.Type\\n     * @enum {number}\\n     * @property {number} JOIN=1 JOIN value\\n     * @property {number} JOIN_ACK=2 JOIN_ACK value\\n     * @property {number} SUBSCRIBE=3 SUBSCRIBE value\\n     * @property {number} SUBSCRIBE_ACK=4 SUBSCRIBE_ACK value\\n     * @property {number} INDEX=5 INDEX value\\n     * @property {number} PAUSE=7 PAUSE value\\n     * @property {number} RESUME=8 RESUME value\\n     * @property {number} LEAVE=9 LEAVE value\\n     * @property {number} LEAVE_ACK=10 LEAVE_ACK value\\n     * @property {number} BITRATES=13 BITRATES value\\n     * @property {number} AUDIO_CONTROL=16 AUDIO_CONTROL value\\n     * @property {number} AUDIO_METADATA=17 AUDIO_METADATA value\\n     * @property {number} AUDIO_STREAM_ID_INFO=18 AUDIO_STREAM_ID_INFO value\\n     * @property {number} PING_PONG=19 PING_PONG value\\n     * @property {number} AUDIO_STATUS=20 AUDIO_STATUS value\\n     * @property {number} CLIENT_METRIC=21 CLIENT_METRIC value\\n     * @property {number} DATA_MESSAGE=22 DATA_MESSAGE value\\n     * @property {number} REMOTE_VIDEO_UPDATE=24 REMOTE_VIDEO_UPDATE value\\n     * @property {number} PRIMARY_MEETING_JOIN=25 PRIMARY_MEETING_JOIN value\\n     * @property {number} PRIMARY_MEETING_JOIN_ACK=26 PRIMARY_MEETING_JOIN_ACK value\\n     * @property {number} PRIMARY_MEETING_LEAVE=27 PRIMARY_MEETING_LEAVE value\\n     */\\n    SdkSignalFrame.Type = (function() {\\n        var valuesById = {}, values = Object.create(valuesById);\\n        values[valuesById[1] = \\\"JOIN\\\"] = 1;\\n        values[valuesById[2] = \\\"JOIN_ACK\\\"] = 2;\\n        values[valuesById[3] = \\\"SUBSCRIBE\\\"] = 3;\\n        values[valuesById[4] = \\\"SUBSCRIBE_ACK\\\"] = 4;\\n        values[valuesById[5] = \\\"INDEX\\\"] = 5;\\n        values[valuesById[7] = \\\"PAUSE\\\"] = 7;\\n        values[valuesById[8] = \\\"RESUME\\\"] = 8;\\n        values[valuesById[9] = \\\"LEAVE\\\"] = 9;\\n        values[valuesById[10] = \\\"LEAVE_ACK\\\"] = 10;\\n        values[valuesById[13] = \\\"BITRATES\\\"] = 13;\\n        values[valuesById[16] = \\\"AUDIO_CONTROL\\\"] = 16;\\n        values[valuesById[17] = \\\"AUDIO_METADATA\\\"] = 17;\\n        values[valuesById[18] = \\\"AUDIO_STREAM_ID_INFO\\\"] = 18;\\n        values[valuesById[19] = \\\"PING_PONG\\\"] = 19;\\n        values[valuesById[20] = \\\"AUDIO_STATUS\\\"] = 20;\\n        values[valuesById[21] = \\\"CLIENT_METRIC\\\"] = 21;\\n        values[valuesById[22] = \\\"DATA_MESSAGE\\\"] = 22;\\n        values[valuesById[24] = \\\"REMOTE_VIDEO_UPDATE\\\"] = 24;\\n        values[valuesById[25] = \\\"PRIMARY_MEETING_JOIN\\\"] = 25;\\n        values[valuesById[26] = \\\"PRIMARY_MEETING_JOIN_ACK\\\"] = 26;\\n        values[valuesById[27] = \\\"PRIMARY_MEETING_LEAVE\\\"] = 27;\\n        return values;\\n    })();\\n\\n    return SdkSignalFrame;\\n})();\\n\\n$root.SdkErrorFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkErrorFrame.\\n     * @exports ISdkErrorFrame\\n     * @interface ISdkErrorFrame\\n     * @property {number|null} [status] SdkErrorFrame status\\n     * @property {string|null} [description] SdkErrorFrame description\\n     */\\n\\n    /**\\n     * Constructs a new SdkErrorFrame.\\n     * @exports SdkErrorFrame\\n     * @classdesc Represents a SdkErrorFrame.\\n     * @implements ISdkErrorFrame\\n     * @constructor\\n     * @param {ISdkErrorFrame=} [properties] Properties to set\\n     */\\n    function SdkErrorFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkErrorFrame status.\\n     * @member {number} status\\n     * @memberof SdkErrorFrame\\n     * @instance\\n     */\\n    SdkErrorFrame.prototype.status = 0;\\n\\n    /**\\n     * SdkErrorFrame description.\\n     * @member {string} description\\n     * @memberof SdkErrorFrame\\n     * @instance\\n     */\\n    SdkErrorFrame.prototype.description = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkErrorFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {ISdkErrorFrame=} [properties] Properties to set\\n     * @returns {SdkErrorFrame} SdkErrorFrame instance\\n     */\\n    SdkErrorFrame.create = function create(properties) {\\n        return new SdkErrorFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkErrorFrame message. Does not implicitly {@link SdkErrorFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {ISdkErrorFrame} message SdkErrorFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkErrorFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.status != null && Object.hasOwnProperty.call(message, \\\"status\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.status);\\n        if (message.description != null && Object.hasOwnProperty.call(message, \\\"description\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.description);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkErrorFrame message, length delimited. Does not implicitly {@link SdkErrorFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {ISdkErrorFrame} message SdkErrorFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkErrorFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkErrorFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkErrorFrame} SdkErrorFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkErrorFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkErrorFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.status = reader.uint32();\\n                break;\\n            case 2:\\n                message.description = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkErrorFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkErrorFrame} SdkErrorFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkErrorFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkErrorFrame message.\\n     * @function verify\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkErrorFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.status != null && message.hasOwnProperty(\\\"status\\\"))\\n            if (!$util.isInteger(message.status))\\n                return \\\"status: integer expected\\\";\\n        if (message.description != null && message.hasOwnProperty(\\\"description\\\"))\\n            if (!$util.isString(message.description))\\n                return \\\"description: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkErrorFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkErrorFrame} SdkErrorFrame\\n     */\\n    SdkErrorFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkErrorFrame)\\n            return object;\\n        var message = new $root.SdkErrorFrame();\\n        if (object.status != null)\\n            message.status = object.status >>> 0;\\n        if (object.description != null)\\n            message.description = String(object.description);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkErrorFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkErrorFrame\\n     * @static\\n     * @param {SdkErrorFrame} message SdkErrorFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkErrorFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.status = 0;\\n            object.description = \\\"\\\";\\n        }\\n        if (message.status != null && message.hasOwnProperty(\\\"status\\\"))\\n            object.status = message.status;\\n        if (message.description != null && message.hasOwnProperty(\\\"description\\\"))\\n            object.description = message.description;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkErrorFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkErrorFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkErrorFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkErrorFrame;\\n})();\\n\\n/**\\n * SdkJoinFlags enum.\\n * @exports SdkJoinFlags\\n * @enum {number}\\n * @property {number} HAS_STREAM_UPDATE=2 HAS_STREAM_UPDATE value\\n * @property {number} COMPLETE_VIDEO_SOURCES_LIST=16 COMPLETE_VIDEO_SOURCES_LIST value\\n * @property {number} EXCLUDE_SELF_CONTENT_IN_INDEX=32 EXCLUDE_SELF_CONTENT_IN_INDEX value\\n */\\n$root.SdkJoinFlags = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[2] = \\\"HAS_STREAM_UPDATE\\\"] = 2;\\n    values[valuesById[16] = \\\"COMPLETE_VIDEO_SOURCES_LIST\\\"] = 16;\\n    values[valuesById[32] = \\\"EXCLUDE_SELF_CONTENT_IN_INDEX\\\"] = 32;\\n    return values;\\n})();\\n\\n$root.SdkClientDetails = (function() {\\n\\n    /**\\n     * Properties of a SdkClientDetails.\\n     * @exports ISdkClientDetails\\n     * @interface ISdkClientDetails\\n     * @property {string|null} [appName] SdkClientDetails appName\\n     * @property {string|null} [appVersion] SdkClientDetails appVersion\\n     * @property {string|null} [deviceModel] SdkClientDetails deviceModel\\n     * @property {string|null} [deviceMake] SdkClientDetails deviceMake\\n     * @property {string|null} [platformName] SdkClientDetails platformName\\n     * @property {string|null} [platformVersion] SdkClientDetails platformVersion\\n     * @property {string|null} [clientSource] SdkClientDetails clientSource\\n     * @property {string|null} [chimeSdkVersion] SdkClientDetails chimeSdkVersion\\n     */\\n\\n    /**\\n     * Constructs a new SdkClientDetails.\\n     * @exports SdkClientDetails\\n     * @classdesc Represents a SdkClientDetails.\\n     * @implements ISdkClientDetails\\n     * @constructor\\n     * @param {ISdkClientDetails=} [properties] Properties to set\\n     */\\n    function SdkClientDetails(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkClientDetails appName.\\n     * @member {string} appName\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.appName = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails appVersion.\\n     * @member {string} appVersion\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.appVersion = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails deviceModel.\\n     * @member {string} deviceModel\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.deviceModel = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails deviceMake.\\n     * @member {string} deviceMake\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.deviceMake = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails platformName.\\n     * @member {string} platformName\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.platformName = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails platformVersion.\\n     * @member {string} platformVersion\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.platformVersion = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails clientSource.\\n     * @member {string} clientSource\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.clientSource = \\\"\\\";\\n\\n    /**\\n     * SdkClientDetails chimeSdkVersion.\\n     * @member {string} chimeSdkVersion\\n     * @memberof SdkClientDetails\\n     * @instance\\n     */\\n    SdkClientDetails.prototype.chimeSdkVersion = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkClientDetails instance using the specified properties.\\n     * @function create\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {ISdkClientDetails=} [properties] Properties to set\\n     * @returns {SdkClientDetails} SdkClientDetails instance\\n     */\\n    SdkClientDetails.create = function create(properties) {\\n        return new SdkClientDetails(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkClientDetails message. Does not implicitly {@link SdkClientDetails.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {ISdkClientDetails} message SdkClientDetails message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkClientDetails.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.appName != null && Object.hasOwnProperty.call(message, \\\"appName\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.appName);\\n        if (message.appVersion != null && Object.hasOwnProperty.call(message, \\\"appVersion\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.appVersion);\\n        if (message.deviceModel != null && Object.hasOwnProperty.call(message, \\\"deviceModel\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.deviceModel);\\n        if (message.deviceMake != null && Object.hasOwnProperty.call(message, \\\"deviceMake\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.deviceMake);\\n        if (message.platformName != null && Object.hasOwnProperty.call(message, \\\"platformName\\\"))\\n            writer.uint32(/* id 5, wireType 2 =*/42).string(message.platformName);\\n        if (message.platformVersion != null && Object.hasOwnProperty.call(message, \\\"platformVersion\\\"))\\n            writer.uint32(/* id 6, wireType 2 =*/50).string(message.platformVersion);\\n        if (message.clientSource != null && Object.hasOwnProperty.call(message, \\\"clientSource\\\"))\\n            writer.uint32(/* id 7, wireType 2 =*/58).string(message.clientSource);\\n        if (message.chimeSdkVersion != null && Object.hasOwnProperty.call(message, \\\"chimeSdkVersion\\\"))\\n            writer.uint32(/* id 8, wireType 2 =*/66).string(message.chimeSdkVersion);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkClientDetails message, length delimited. Does not implicitly {@link SdkClientDetails.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {ISdkClientDetails} message SdkClientDetails message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkClientDetails.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkClientDetails message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkClientDetails} SdkClientDetails\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkClientDetails.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkClientDetails();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.appName = reader.string();\\n                break;\\n            case 2:\\n                message.appVersion = reader.string();\\n                break;\\n            case 3:\\n                message.deviceModel = reader.string();\\n                break;\\n            case 4:\\n                message.deviceMake = reader.string();\\n                break;\\n            case 5:\\n                message.platformName = reader.string();\\n                break;\\n            case 6:\\n                message.platformVersion = reader.string();\\n                break;\\n            case 7:\\n                message.clientSource = reader.string();\\n                break;\\n            case 8:\\n                message.chimeSdkVersion = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkClientDetails message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkClientDetails} SdkClientDetails\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkClientDetails.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkClientDetails message.\\n     * @function verify\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkClientDetails.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.appName != null && message.hasOwnProperty(\\\"appName\\\"))\\n            if (!$util.isString(message.appName))\\n                return \\\"appName: string expected\\\";\\n        if (message.appVersion != null && message.hasOwnProperty(\\\"appVersion\\\"))\\n            if (!$util.isString(message.appVersion))\\n                return \\\"appVersion: string expected\\\";\\n        if (message.deviceModel != null && message.hasOwnProperty(\\\"deviceModel\\\"))\\n            if (!$util.isString(message.deviceModel))\\n                return \\\"deviceModel: string expected\\\";\\n        if (message.deviceMake != null && message.hasOwnProperty(\\\"deviceMake\\\"))\\n            if (!$util.isString(message.deviceMake))\\n                return \\\"deviceMake: string expected\\\";\\n        if (message.platformName != null && message.hasOwnProperty(\\\"platformName\\\"))\\n            if (!$util.isString(message.platformName))\\n                return \\\"platformName: string expected\\\";\\n        if (message.platformVersion != null && message.hasOwnProperty(\\\"platformVersion\\\"))\\n            if (!$util.isString(message.platformVersion))\\n                return \\\"platformVersion: string expected\\\";\\n        if (message.clientSource != null && message.hasOwnProperty(\\\"clientSource\\\"))\\n            if (!$util.isString(message.clientSource))\\n                return \\\"clientSource: string expected\\\";\\n        if (message.chimeSdkVersion != null && message.hasOwnProperty(\\\"chimeSdkVersion\\\"))\\n            if (!$util.isString(message.chimeSdkVersion))\\n                return \\\"chimeSdkVersion: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkClientDetails message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkClientDetails} SdkClientDetails\\n     */\\n    SdkClientDetails.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkClientDetails)\\n            return object;\\n        var message = new $root.SdkClientDetails();\\n        if (object.appName != null)\\n            message.appName = String(object.appName);\\n        if (object.appVersion != null)\\n            message.appVersion = String(object.appVersion);\\n        if (object.deviceModel != null)\\n            message.deviceModel = String(object.deviceModel);\\n        if (object.deviceMake != null)\\n            message.deviceMake = String(object.deviceMake);\\n        if (object.platformName != null)\\n            message.platformName = String(object.platformName);\\n        if (object.platformVersion != null)\\n            message.platformVersion = String(object.platformVersion);\\n        if (object.clientSource != null)\\n            message.clientSource = String(object.clientSource);\\n        if (object.chimeSdkVersion != null)\\n            message.chimeSdkVersion = String(object.chimeSdkVersion);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkClientDetails message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkClientDetails\\n     * @static\\n     * @param {SdkClientDetails} message SdkClientDetails\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkClientDetails.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.appName = \\\"\\\";\\n            object.appVersion = \\\"\\\";\\n            object.deviceModel = \\\"\\\";\\n            object.deviceMake = \\\"\\\";\\n            object.platformName = \\\"\\\";\\n            object.platformVersion = \\\"\\\";\\n            object.clientSource = \\\"\\\";\\n            object.chimeSdkVersion = \\\"\\\";\\n        }\\n        if (message.appName != null && message.hasOwnProperty(\\\"appName\\\"))\\n            object.appName = message.appName;\\n        if (message.appVersion != null && message.hasOwnProperty(\\\"appVersion\\\"))\\n            object.appVersion = message.appVersion;\\n        if (message.deviceModel != null && message.hasOwnProperty(\\\"deviceModel\\\"))\\n            object.deviceModel = message.deviceModel;\\n        if (message.deviceMake != null && message.hasOwnProperty(\\\"deviceMake\\\"))\\n            object.deviceMake = message.deviceMake;\\n        if (message.platformName != null && message.hasOwnProperty(\\\"platformName\\\"))\\n            object.platformName = message.platformName;\\n        if (message.platformVersion != null && message.hasOwnProperty(\\\"platformVersion\\\"))\\n            object.platformVersion = message.platformVersion;\\n        if (message.clientSource != null && message.hasOwnProperty(\\\"clientSource\\\"))\\n            object.clientSource = message.clientSource;\\n        if (message.chimeSdkVersion != null && message.hasOwnProperty(\\\"chimeSdkVersion\\\"))\\n            object.chimeSdkVersion = message.chimeSdkVersion;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkClientDetails to JSON.\\n     * @function toJSON\\n     * @memberof SdkClientDetails\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkClientDetails.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkClientDetails;\\n})();\\n\\n/**\\n * SdkServerSideNetworkAdaption enum.\\n * @exports SdkServerSideNetworkAdaption\\n * @enum {number}\\n * @property {number} DEFAULT=1 DEFAULT value\\n * @property {number} NONE=2 NONE value\\n * @property {number} BANDWIDTH_PROBING=3 BANDWIDTH_PROBING value\\n */\\n$root.SdkServerSideNetworkAdaption = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[1] = \\\"DEFAULT\\\"] = 1;\\n    values[valuesById[2] = \\\"NONE\\\"] = 2;\\n    values[valuesById[3] = \\\"BANDWIDTH_PROBING\\\"] = 3;\\n    return values;\\n})();\\n\\n$root.SdkJoinFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkJoinFrame.\\n     * @exports ISdkJoinFrame\\n     * @interface ISdkJoinFrame\\n     * @property {number|null} [protocolVersion] SdkJoinFrame protocolVersion\\n     * @property {number|null} [maxNumOfVideos] SdkJoinFrame maxNumOfVideos\\n     * @property {number|null} [flags] SdkJoinFrame flags\\n     * @property {ISdkClientDetails|null} [clientDetails] SdkJoinFrame clientDetails\\n     * @property {number|Long|null} [audioSessionId] SdkJoinFrame audioSessionId\\n     * @property {boolean|null} [wantsCompressedSdp] SdkJoinFrame wantsCompressedSdp\\n     * @property {boolean|null} [wantsServerSideNetworkProbingOnReceiveSideEstimator] SdkJoinFrame wantsServerSideNetworkProbingOnReceiveSideEstimator\\n     * @property {SdkServerSideNetworkAdaption|null} [serverSideNetworkAdaption] SdkJoinFrame serverSideNetworkAdaption\\n     * @property {Array.<SdkServerSideNetworkAdaption>|null} [supportedServerSideNetworkAdaptions] SdkJoinFrame supportedServerSideNetworkAdaptions\\n     */\\n\\n    /**\\n     * Constructs a new SdkJoinFrame.\\n     * @exports SdkJoinFrame\\n     * @classdesc Represents a SdkJoinFrame.\\n     * @implements ISdkJoinFrame\\n     * @constructor\\n     * @param {ISdkJoinFrame=} [properties] Properties to set\\n     */\\n    function SdkJoinFrame(properties) {\\n        this.supportedServerSideNetworkAdaptions = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkJoinFrame protocolVersion.\\n     * @member {number} protocolVersion\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.protocolVersion = 2;\\n\\n    /**\\n     * SdkJoinFrame maxNumOfVideos.\\n     * @member {number} maxNumOfVideos\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.maxNumOfVideos = 0;\\n\\n    /**\\n     * SdkJoinFrame flags.\\n     * @member {number} flags\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.flags = 0;\\n\\n    /**\\n     * SdkJoinFrame clientDetails.\\n     * @member {ISdkClientDetails|null|undefined} clientDetails\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.clientDetails = null;\\n\\n    /**\\n     * SdkJoinFrame audioSessionId.\\n     * @member {number|Long} audioSessionId\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.audioSessionId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\\n\\n    /**\\n     * SdkJoinFrame wantsCompressedSdp.\\n     * @member {boolean} wantsCompressedSdp\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.wantsCompressedSdp = false;\\n\\n    /**\\n     * SdkJoinFrame wantsServerSideNetworkProbingOnReceiveSideEstimator.\\n     * @member {boolean} wantsServerSideNetworkProbingOnReceiveSideEstimator\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.wantsServerSideNetworkProbingOnReceiveSideEstimator = false;\\n\\n    /**\\n     * SdkJoinFrame serverSideNetworkAdaption.\\n     * @member {SdkServerSideNetworkAdaption} serverSideNetworkAdaption\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.serverSideNetworkAdaption = 1;\\n\\n    /**\\n     * SdkJoinFrame supportedServerSideNetworkAdaptions.\\n     * @member {Array.<SdkServerSideNetworkAdaption>} supportedServerSideNetworkAdaptions\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     */\\n    SdkJoinFrame.prototype.supportedServerSideNetworkAdaptions = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkJoinFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {ISdkJoinFrame=} [properties] Properties to set\\n     * @returns {SdkJoinFrame} SdkJoinFrame instance\\n     */\\n    SdkJoinFrame.create = function create(properties) {\\n        return new SdkJoinFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkJoinFrame message. Does not implicitly {@link SdkJoinFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {ISdkJoinFrame} message SdkJoinFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkJoinFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.protocolVersion != null && Object.hasOwnProperty.call(message, \\\"protocolVersion\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.protocolVersion);\\n        if (message.maxNumOfVideos != null && Object.hasOwnProperty.call(message, \\\"maxNumOfVideos\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.maxNumOfVideos);\\n        if (message.flags != null && Object.hasOwnProperty.call(message, \\\"flags\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.flags);\\n        if (message.clientDetails != null && Object.hasOwnProperty.call(message, \\\"clientDetails\\\"))\\n            $root.SdkClientDetails.encode(message.clientDetails, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\\n        if (message.audioSessionId != null && Object.hasOwnProperty.call(message, \\\"audioSessionId\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.audioSessionId);\\n        if (message.wantsCompressedSdp != null && Object.hasOwnProperty.call(message, \\\"wantsCompressedSdp\\\"))\\n            writer.uint32(/* id 7, wireType 0 =*/56).bool(message.wantsCompressedSdp);\\n        if (message.wantsServerSideNetworkProbingOnReceiveSideEstimator != null && Object.hasOwnProperty.call(message, \\\"wantsServerSideNetworkProbingOnReceiveSideEstimator\\\"))\\n            writer.uint32(/* id 8, wireType 0 =*/64).bool(message.wantsServerSideNetworkProbingOnReceiveSideEstimator);\\n        if (message.serverSideNetworkAdaption != null && Object.hasOwnProperty.call(message, \\\"serverSideNetworkAdaption\\\"))\\n            writer.uint32(/* id 10, wireType 0 =*/80).int32(message.serverSideNetworkAdaption);\\n        if (message.supportedServerSideNetworkAdaptions != null && message.supportedServerSideNetworkAdaptions.length)\\n            for (var i = 0; i < message.supportedServerSideNetworkAdaptions.length; ++i)\\n                writer.uint32(/* id 11, wireType 0 =*/88).int32(message.supportedServerSideNetworkAdaptions[i]);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkJoinFrame message, length delimited. Does not implicitly {@link SdkJoinFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {ISdkJoinFrame} message SdkJoinFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkJoinFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkJoinFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkJoinFrame} SdkJoinFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkJoinFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkJoinFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.protocolVersion = reader.uint32();\\n                break;\\n            case 2:\\n                message.maxNumOfVideos = reader.uint32();\\n                break;\\n            case 3:\\n                message.flags = reader.uint32();\\n                break;\\n            case 4:\\n                message.clientDetails = $root.SdkClientDetails.decode(reader, reader.uint32());\\n                break;\\n            case 6:\\n                message.audioSessionId = reader.uint64();\\n                break;\\n            case 7:\\n                message.wantsCompressedSdp = reader.bool();\\n                break;\\n            case 8:\\n                message.wantsServerSideNetworkProbingOnReceiveSideEstimator = reader.bool();\\n                break;\\n            case 10:\\n                message.serverSideNetworkAdaption = reader.int32();\\n                break;\\n            case 11:\\n                if (!(message.supportedServerSideNetworkAdaptions && message.supportedServerSideNetworkAdaptions.length))\\n                    message.supportedServerSideNetworkAdaptions = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.supportedServerSideNetworkAdaptions.push(reader.int32());\\n                } else\\n                    message.supportedServerSideNetworkAdaptions.push(reader.int32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkJoinFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkJoinFrame} SdkJoinFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkJoinFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkJoinFrame message.\\n     * @function verify\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkJoinFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.protocolVersion != null && message.hasOwnProperty(\\\"protocolVersion\\\"))\\n            if (!$util.isInteger(message.protocolVersion))\\n                return \\\"protocolVersion: integer expected\\\";\\n        if (message.maxNumOfVideos != null && message.hasOwnProperty(\\\"maxNumOfVideos\\\"))\\n            if (!$util.isInteger(message.maxNumOfVideos))\\n                return \\\"maxNumOfVideos: integer expected\\\";\\n        if (message.flags != null && message.hasOwnProperty(\\\"flags\\\"))\\n            if (!$util.isInteger(message.flags))\\n                return \\\"flags: integer expected\\\";\\n        if (message.clientDetails != null && message.hasOwnProperty(\\\"clientDetails\\\")) {\\n            var error = $root.SdkClientDetails.verify(message.clientDetails);\\n            if (error)\\n                return \\\"clientDetails.\\\" + error;\\n        }\\n        if (message.audioSessionId != null && message.hasOwnProperty(\\\"audioSessionId\\\"))\\n            if (!$util.isInteger(message.audioSessionId) && !(message.audioSessionId && $util.isInteger(message.audioSessionId.low) && $util.isInteger(message.audioSessionId.high)))\\n                return \\\"audioSessionId: integer|Long expected\\\";\\n        if (message.wantsCompressedSdp != null && message.hasOwnProperty(\\\"wantsCompressedSdp\\\"))\\n            if (typeof message.wantsCompressedSdp !== \\\"boolean\\\")\\n                return \\\"wantsCompressedSdp: boolean expected\\\";\\n        if (message.wantsServerSideNetworkProbingOnReceiveSideEstimator != null && message.hasOwnProperty(\\\"wantsServerSideNetworkProbingOnReceiveSideEstimator\\\"))\\n            if (typeof message.wantsServerSideNetworkProbingOnReceiveSideEstimator !== \\\"boolean\\\")\\n                return \\\"wantsServerSideNetworkProbingOnReceiveSideEstimator: boolean expected\\\";\\n        if (message.serverSideNetworkAdaption != null && message.hasOwnProperty(\\\"serverSideNetworkAdaption\\\"))\\n            switch (message.serverSideNetworkAdaption) {\\n            default:\\n                return \\\"serverSideNetworkAdaption: enum value expected\\\";\\n            case 1:\\n            case 2:\\n            case 3:\\n                break;\\n            }\\n        if (message.supportedServerSideNetworkAdaptions != null && message.hasOwnProperty(\\\"supportedServerSideNetworkAdaptions\\\")) {\\n            if (!Array.isArray(message.supportedServerSideNetworkAdaptions))\\n                return \\\"supportedServerSideNetworkAdaptions: array expected\\\";\\n            for (var i = 0; i < message.supportedServerSideNetworkAdaptions.length; ++i)\\n                switch (message.supportedServerSideNetworkAdaptions[i]) {\\n                default:\\n                    return \\\"supportedServerSideNetworkAdaptions: enum value[] expected\\\";\\n                case 1:\\n                case 2:\\n                case 3:\\n                    break;\\n                }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkJoinFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkJoinFrame} SdkJoinFrame\\n     */\\n    SdkJoinFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkJoinFrame)\\n            return object;\\n        var message = new $root.SdkJoinFrame();\\n        if (object.protocolVersion != null)\\n            message.protocolVersion = object.protocolVersion >>> 0;\\n        if (object.maxNumOfVideos != null)\\n            message.maxNumOfVideos = object.maxNumOfVideos >>> 0;\\n        if (object.flags != null)\\n            message.flags = object.flags >>> 0;\\n        if (object.clientDetails != null) {\\n            if (typeof object.clientDetails !== \\\"object\\\")\\n                throw TypeError(\\\".SdkJoinFrame.clientDetails: object expected\\\");\\n            message.clientDetails = $root.SdkClientDetails.fromObject(object.clientDetails);\\n        }\\n        if (object.audioSessionId != null)\\n            if ($util.Long)\\n                (message.audioSessionId = $util.Long.fromValue(object.audioSessionId)).unsigned = true;\\n            else if (typeof object.audioSessionId === \\\"string\\\")\\n                message.audioSessionId = parseInt(object.audioSessionId, 10);\\n            else if (typeof object.audioSessionId === \\\"number\\\")\\n                message.audioSessionId = object.audioSessionId;\\n            else if (typeof object.audioSessionId === \\\"object\\\")\\n                message.audioSessionId = new $util.LongBits(object.audioSessionId.low >>> 0, object.audioSessionId.high >>> 0).toNumber(true);\\n        if (object.wantsCompressedSdp != null)\\n            message.wantsCompressedSdp = Boolean(object.wantsCompressedSdp);\\n        if (object.wantsServerSideNetworkProbingOnReceiveSideEstimator != null)\\n            message.wantsServerSideNetworkProbingOnReceiveSideEstimator = Boolean(object.wantsServerSideNetworkProbingOnReceiveSideEstimator);\\n        switch (object.serverSideNetworkAdaption) {\\n        case \\\"DEFAULT\\\":\\n        case 1:\\n            message.serverSideNetworkAdaption = 1;\\n            break;\\n        case \\\"NONE\\\":\\n        case 2:\\n            message.serverSideNetworkAdaption = 2;\\n            break;\\n        case \\\"BANDWIDTH_PROBING\\\":\\n        case 3:\\n            message.serverSideNetworkAdaption = 3;\\n            break;\\n        }\\n        if (object.supportedServerSideNetworkAdaptions) {\\n            if (!Array.isArray(object.supportedServerSideNetworkAdaptions))\\n                throw TypeError(\\\".SdkJoinFrame.supportedServerSideNetworkAdaptions: array expected\\\");\\n            message.supportedServerSideNetworkAdaptions = [];\\n            for (var i = 0; i < object.supportedServerSideNetworkAdaptions.length; ++i)\\n                switch (object.supportedServerSideNetworkAdaptions[i]) {\\n                default:\\n                case \\\"DEFAULT\\\":\\n                case 1:\\n                    message.supportedServerSideNetworkAdaptions[i] = 1;\\n                    break;\\n                case \\\"NONE\\\":\\n                case 2:\\n                    message.supportedServerSideNetworkAdaptions[i] = 2;\\n                    break;\\n                case \\\"BANDWIDTH_PROBING\\\":\\n                case 3:\\n                    message.supportedServerSideNetworkAdaptions[i] = 3;\\n                    break;\\n                }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkJoinFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkJoinFrame\\n     * @static\\n     * @param {SdkJoinFrame} message SdkJoinFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkJoinFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.supportedServerSideNetworkAdaptions = [];\\n        if (options.defaults) {\\n            object.protocolVersion = 2;\\n            object.maxNumOfVideos = 0;\\n            object.flags = 0;\\n            object.clientDetails = null;\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, true);\\n                object.audioSessionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.audioSessionId = options.longs === String ? \\\"0\\\" : 0;\\n            object.wantsCompressedSdp = false;\\n            object.wantsServerSideNetworkProbingOnReceiveSideEstimator = false;\\n            object.serverSideNetworkAdaption = options.enums === String ? \\\"DEFAULT\\\" : 1;\\n        }\\n        if (message.protocolVersion != null && message.hasOwnProperty(\\\"protocolVersion\\\"))\\n            object.protocolVersion = message.protocolVersion;\\n        if (message.maxNumOfVideos != null && message.hasOwnProperty(\\\"maxNumOfVideos\\\"))\\n            object.maxNumOfVideos = message.maxNumOfVideos;\\n        if (message.flags != null && message.hasOwnProperty(\\\"flags\\\"))\\n            object.flags = message.flags;\\n        if (message.clientDetails != null && message.hasOwnProperty(\\\"clientDetails\\\"))\\n            object.clientDetails = $root.SdkClientDetails.toObject(message.clientDetails, options);\\n        if (message.audioSessionId != null && message.hasOwnProperty(\\\"audioSessionId\\\"))\\n            if (typeof message.audioSessionId === \\\"number\\\")\\n                object.audioSessionId = options.longs === String ? String(message.audioSessionId) : message.audioSessionId;\\n            else\\n                object.audioSessionId = options.longs === String ? $util.Long.prototype.toString.call(message.audioSessionId) : options.longs === Number ? new $util.LongBits(message.audioSessionId.low >>> 0, message.audioSessionId.high >>> 0).toNumber(true) : message.audioSessionId;\\n        if (message.wantsCompressedSdp != null && message.hasOwnProperty(\\\"wantsCompressedSdp\\\"))\\n            object.wantsCompressedSdp = message.wantsCompressedSdp;\\n        if (message.wantsServerSideNetworkProbingOnReceiveSideEstimator != null && message.hasOwnProperty(\\\"wantsServerSideNetworkProbingOnReceiveSideEstimator\\\"))\\n            object.wantsServerSideNetworkProbingOnReceiveSideEstimator = message.wantsServerSideNetworkProbingOnReceiveSideEstimator;\\n        if (message.serverSideNetworkAdaption != null && message.hasOwnProperty(\\\"serverSideNetworkAdaption\\\"))\\n            object.serverSideNetworkAdaption = options.enums === String ? $root.SdkServerSideNetworkAdaption[message.serverSideNetworkAdaption] : message.serverSideNetworkAdaption;\\n        if (message.supportedServerSideNetworkAdaptions && message.supportedServerSideNetworkAdaptions.length) {\\n            object.supportedServerSideNetworkAdaptions = [];\\n            for (var j = 0; j < message.supportedServerSideNetworkAdaptions.length; ++j)\\n                object.supportedServerSideNetworkAdaptions[j] = options.enums === String ? $root.SdkServerSideNetworkAdaption[message.supportedServerSideNetworkAdaptions[j]] : message.supportedServerSideNetworkAdaptions[j];\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkJoinFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkJoinFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkJoinFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkJoinFrame;\\n})();\\n\\n$root.SdkJoinAckFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkJoinAckFrame.\\n     * @exports ISdkJoinAckFrame\\n     * @interface ISdkJoinAckFrame\\n     * @property {ISdkTurnCredentials|null} [turnCredentials] SdkJoinAckFrame turnCredentials\\n     * @property {number|null} [videoSubscriptionLimit] SdkJoinAckFrame videoSubscriptionLimit\\n     * @property {boolean|null} [wantsCompressedSdp] SdkJoinAckFrame wantsCompressedSdp\\n     * @property {SdkServerSideNetworkAdaption|null} [defaultServerSideNetworkAdaption] SdkJoinAckFrame defaultServerSideNetworkAdaption\\n     */\\n\\n    /**\\n     * Constructs a new SdkJoinAckFrame.\\n     * @exports SdkJoinAckFrame\\n     * @classdesc Represents a SdkJoinAckFrame.\\n     * @implements ISdkJoinAckFrame\\n     * @constructor\\n     * @param {ISdkJoinAckFrame=} [properties] Properties to set\\n     */\\n    function SdkJoinAckFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkJoinAckFrame turnCredentials.\\n     * @member {ISdkTurnCredentials|null|undefined} turnCredentials\\n     * @memberof SdkJoinAckFrame\\n     * @instance\\n     */\\n    SdkJoinAckFrame.prototype.turnCredentials = null;\\n\\n    /**\\n     * SdkJoinAckFrame videoSubscriptionLimit.\\n     * @member {number} videoSubscriptionLimit\\n     * @memberof SdkJoinAckFrame\\n     * @instance\\n     */\\n    SdkJoinAckFrame.prototype.videoSubscriptionLimit = 0;\\n\\n    /**\\n     * SdkJoinAckFrame wantsCompressedSdp.\\n     * @member {boolean} wantsCompressedSdp\\n     * @memberof SdkJoinAckFrame\\n     * @instance\\n     */\\n    SdkJoinAckFrame.prototype.wantsCompressedSdp = false;\\n\\n    /**\\n     * SdkJoinAckFrame defaultServerSideNetworkAdaption.\\n     * @member {SdkServerSideNetworkAdaption} defaultServerSideNetworkAdaption\\n     * @memberof SdkJoinAckFrame\\n     * @instance\\n     */\\n    SdkJoinAckFrame.prototype.defaultServerSideNetworkAdaption = 1;\\n\\n    /**\\n     * Creates a new SdkJoinAckFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {ISdkJoinAckFrame=} [properties] Properties to set\\n     * @returns {SdkJoinAckFrame} SdkJoinAckFrame instance\\n     */\\n    SdkJoinAckFrame.create = function create(properties) {\\n        return new SdkJoinAckFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkJoinAckFrame message. Does not implicitly {@link SdkJoinAckFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {ISdkJoinAckFrame} message SdkJoinAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkJoinAckFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.turnCredentials != null && Object.hasOwnProperty.call(message, \\\"turnCredentials\\\"))\\n            $root.SdkTurnCredentials.encode(message.turnCredentials, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.videoSubscriptionLimit != null && Object.hasOwnProperty.call(message, \\\"videoSubscriptionLimit\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.videoSubscriptionLimit);\\n        if (message.wantsCompressedSdp != null && Object.hasOwnProperty.call(message, \\\"wantsCompressedSdp\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).bool(message.wantsCompressedSdp);\\n        if (message.defaultServerSideNetworkAdaption != null && Object.hasOwnProperty.call(message, \\\"defaultServerSideNetworkAdaption\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.defaultServerSideNetworkAdaption);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkJoinAckFrame message, length delimited. Does not implicitly {@link SdkJoinAckFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {ISdkJoinAckFrame} message SdkJoinAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkJoinAckFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkJoinAckFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkJoinAckFrame} SdkJoinAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkJoinAckFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkJoinAckFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.turnCredentials = $root.SdkTurnCredentials.decode(reader, reader.uint32());\\n                break;\\n            case 2:\\n                message.videoSubscriptionLimit = reader.uint32();\\n                break;\\n            case 3:\\n                message.wantsCompressedSdp = reader.bool();\\n                break;\\n            case 4:\\n                message.defaultServerSideNetworkAdaption = reader.int32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkJoinAckFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkJoinAckFrame} SdkJoinAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkJoinAckFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkJoinAckFrame message.\\n     * @function verify\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkJoinAckFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.turnCredentials != null && message.hasOwnProperty(\\\"turnCredentials\\\")) {\\n            var error = $root.SdkTurnCredentials.verify(message.turnCredentials);\\n            if (error)\\n                return \\\"turnCredentials.\\\" + error;\\n        }\\n        if (message.videoSubscriptionLimit != null && message.hasOwnProperty(\\\"videoSubscriptionLimit\\\"))\\n            if (!$util.isInteger(message.videoSubscriptionLimit))\\n                return \\\"videoSubscriptionLimit: integer expected\\\";\\n        if (message.wantsCompressedSdp != null && message.hasOwnProperty(\\\"wantsCompressedSdp\\\"))\\n            if (typeof message.wantsCompressedSdp !== \\\"boolean\\\")\\n                return \\\"wantsCompressedSdp: boolean expected\\\";\\n        if (message.defaultServerSideNetworkAdaption != null && message.hasOwnProperty(\\\"defaultServerSideNetworkAdaption\\\"))\\n            switch (message.defaultServerSideNetworkAdaption) {\\n            default:\\n                return \\\"defaultServerSideNetworkAdaption: enum value expected\\\";\\n            case 1:\\n            case 2:\\n            case 3:\\n                break;\\n            }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkJoinAckFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkJoinAckFrame} SdkJoinAckFrame\\n     */\\n    SdkJoinAckFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkJoinAckFrame)\\n            return object;\\n        var message = new $root.SdkJoinAckFrame();\\n        if (object.turnCredentials != null) {\\n            if (typeof object.turnCredentials !== \\\"object\\\")\\n                throw TypeError(\\\".SdkJoinAckFrame.turnCredentials: object expected\\\");\\n            message.turnCredentials = $root.SdkTurnCredentials.fromObject(object.turnCredentials);\\n        }\\n        if (object.videoSubscriptionLimit != null)\\n            message.videoSubscriptionLimit = object.videoSubscriptionLimit >>> 0;\\n        if (object.wantsCompressedSdp != null)\\n            message.wantsCompressedSdp = Boolean(object.wantsCompressedSdp);\\n        switch (object.defaultServerSideNetworkAdaption) {\\n        case \\\"DEFAULT\\\":\\n        case 1:\\n            message.defaultServerSideNetworkAdaption = 1;\\n            break;\\n        case \\\"NONE\\\":\\n        case 2:\\n            message.defaultServerSideNetworkAdaption = 2;\\n            break;\\n        case \\\"BANDWIDTH_PROBING\\\":\\n        case 3:\\n            message.defaultServerSideNetworkAdaption = 3;\\n            break;\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkJoinAckFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkJoinAckFrame\\n     * @static\\n     * @param {SdkJoinAckFrame} message SdkJoinAckFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkJoinAckFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.turnCredentials = null;\\n            object.videoSubscriptionLimit = 0;\\n            object.wantsCompressedSdp = false;\\n            object.defaultServerSideNetworkAdaption = options.enums === String ? \\\"DEFAULT\\\" : 1;\\n        }\\n        if (message.turnCredentials != null && message.hasOwnProperty(\\\"turnCredentials\\\"))\\n            object.turnCredentials = $root.SdkTurnCredentials.toObject(message.turnCredentials, options);\\n        if (message.videoSubscriptionLimit != null && message.hasOwnProperty(\\\"videoSubscriptionLimit\\\"))\\n            object.videoSubscriptionLimit = message.videoSubscriptionLimit;\\n        if (message.wantsCompressedSdp != null && message.hasOwnProperty(\\\"wantsCompressedSdp\\\"))\\n            object.wantsCompressedSdp = message.wantsCompressedSdp;\\n        if (message.defaultServerSideNetworkAdaption != null && message.hasOwnProperty(\\\"defaultServerSideNetworkAdaption\\\"))\\n            object.defaultServerSideNetworkAdaption = options.enums === String ? $root.SdkServerSideNetworkAdaption[message.defaultServerSideNetworkAdaption] : message.defaultServerSideNetworkAdaption;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkJoinAckFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkJoinAckFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkJoinAckFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkJoinAckFrame;\\n})();\\n\\n$root.SdkLeaveFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkLeaveFrame.\\n     * @exports ISdkLeaveFrame\\n     * @interface ISdkLeaveFrame\\n     */\\n\\n    /**\\n     * Constructs a new SdkLeaveFrame.\\n     * @exports SdkLeaveFrame\\n     * @classdesc Represents a SdkLeaveFrame.\\n     * @implements ISdkLeaveFrame\\n     * @constructor\\n     * @param {ISdkLeaveFrame=} [properties] Properties to set\\n     */\\n    function SdkLeaveFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * Creates a new SdkLeaveFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {ISdkLeaveFrame=} [properties] Properties to set\\n     * @returns {SdkLeaveFrame} SdkLeaveFrame instance\\n     */\\n    SdkLeaveFrame.create = function create(properties) {\\n        return new SdkLeaveFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkLeaveFrame message. Does not implicitly {@link SdkLeaveFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {ISdkLeaveFrame} message SdkLeaveFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkLeaveFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkLeaveFrame message, length delimited. Does not implicitly {@link SdkLeaveFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {ISdkLeaveFrame} message SdkLeaveFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkLeaveFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkLeaveFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkLeaveFrame} SdkLeaveFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkLeaveFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkLeaveFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkLeaveFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkLeaveFrame} SdkLeaveFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkLeaveFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkLeaveFrame message.\\n     * @function verify\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkLeaveFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkLeaveFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkLeaveFrame} SdkLeaveFrame\\n     */\\n    SdkLeaveFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkLeaveFrame)\\n            return object;\\n        return new $root.SdkLeaveFrame();\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkLeaveFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkLeaveFrame\\n     * @static\\n     * @param {SdkLeaveFrame} message SdkLeaveFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkLeaveFrame.toObject = function toObject() {\\n        return {};\\n    };\\n\\n    /**\\n     * Converts this SdkLeaveFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkLeaveFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkLeaveFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkLeaveFrame;\\n})();\\n\\n$root.SdkLeaveAckFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkLeaveAckFrame.\\n     * @exports ISdkLeaveAckFrame\\n     * @interface ISdkLeaveAckFrame\\n     */\\n\\n    /**\\n     * Constructs a new SdkLeaveAckFrame.\\n     * @exports SdkLeaveAckFrame\\n     * @classdesc Represents a SdkLeaveAckFrame.\\n     * @implements ISdkLeaveAckFrame\\n     * @constructor\\n     * @param {ISdkLeaveAckFrame=} [properties] Properties to set\\n     */\\n    function SdkLeaveAckFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * Creates a new SdkLeaveAckFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {ISdkLeaveAckFrame=} [properties] Properties to set\\n     * @returns {SdkLeaveAckFrame} SdkLeaveAckFrame instance\\n     */\\n    SdkLeaveAckFrame.create = function create(properties) {\\n        return new SdkLeaveAckFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkLeaveAckFrame message. Does not implicitly {@link SdkLeaveAckFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {ISdkLeaveAckFrame} message SdkLeaveAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkLeaveAckFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkLeaveAckFrame message, length delimited. Does not implicitly {@link SdkLeaveAckFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {ISdkLeaveAckFrame} message SdkLeaveAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkLeaveAckFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkLeaveAckFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkLeaveAckFrame} SdkLeaveAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkLeaveAckFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkLeaveAckFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkLeaveAckFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkLeaveAckFrame} SdkLeaveAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkLeaveAckFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkLeaveAckFrame message.\\n     * @function verify\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkLeaveAckFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkLeaveAckFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkLeaveAckFrame} SdkLeaveAckFrame\\n     */\\n    SdkLeaveAckFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkLeaveAckFrame)\\n            return object;\\n        return new $root.SdkLeaveAckFrame();\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkLeaveAckFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkLeaveAckFrame\\n     * @static\\n     * @param {SdkLeaveAckFrame} message SdkLeaveAckFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkLeaveAckFrame.toObject = function toObject() {\\n        return {};\\n    };\\n\\n    /**\\n     * Converts this SdkLeaveAckFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkLeaveAckFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkLeaveAckFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkLeaveAckFrame;\\n})();\\n\\n/**\\n * SdkStreamServiceType enum.\\n * @exports SdkStreamServiceType\\n * @enum {number}\\n * @property {number} RX=1 RX value\\n * @property {number} TX=2 TX value\\n * @property {number} DUPLEX=3 DUPLEX value\\n */\\n$root.SdkStreamServiceType = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[1] = \\\"RX\\\"] = 1;\\n    values[valuesById[2] = \\\"TX\\\"] = 2;\\n    values[valuesById[3] = \\\"DUPLEX\\\"] = 3;\\n    return values;\\n})();\\n\\n/**\\n * SdkStreamMediaType enum.\\n * @exports SdkStreamMediaType\\n * @enum {number}\\n * @property {number} AUDIO=1 AUDIO value\\n * @property {number} VIDEO=2 VIDEO value\\n */\\n$root.SdkStreamMediaType = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[1] = \\\"AUDIO\\\"] = 1;\\n    values[valuesById[2] = \\\"VIDEO\\\"] = 2;\\n    return values;\\n})();\\n\\n$root.SdkSubscribeFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkSubscribeFrame.\\n     * @exports ISdkSubscribeFrame\\n     * @interface ISdkSubscribeFrame\\n     * @property {SdkStreamServiceType|null} [duplex] SdkSubscribeFrame duplex\\n     * @property {Array.<ISdkStreamDescriptor>|null} [sendStreams] SdkSubscribeFrame sendStreams\\n     * @property {Array.<number>|null} [receiveStreamIds] SdkSubscribeFrame receiveStreamIds\\n     * @property {string|null} [sdpOffer] SdkSubscribeFrame sdpOffer\\n     * @property {string|null} [audioHost] SdkSubscribeFrame audioHost\\n     * @property {boolean|null} [audioCheckin] SdkSubscribeFrame audioCheckin\\n     * @property {boolean|null} [audioMuted] SdkSubscribeFrame audioMuted\\n     * @property {Uint8Array|null} [compressedSdpOffer] SdkSubscribeFrame compressedSdpOffer\\n     * @property {Array.<ISdkVideoSubscriptionConfiguration>|null} [videoSubscriptionConfiguration] SdkSubscribeFrame videoSubscriptionConfiguration\\n     */\\n\\n    /**\\n     * Constructs a new SdkSubscribeFrame.\\n     * @exports SdkSubscribeFrame\\n     * @classdesc Represents a SdkSubscribeFrame.\\n     * @implements ISdkSubscribeFrame\\n     * @constructor\\n     * @param {ISdkSubscribeFrame=} [properties] Properties to set\\n     */\\n    function SdkSubscribeFrame(properties) {\\n        this.sendStreams = [];\\n        this.receiveStreamIds = [];\\n        this.videoSubscriptionConfiguration = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkSubscribeFrame duplex.\\n     * @member {SdkStreamServiceType} duplex\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.duplex = 1;\\n\\n    /**\\n     * SdkSubscribeFrame sendStreams.\\n     * @member {Array.<ISdkStreamDescriptor>} sendStreams\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.sendStreams = $util.emptyArray;\\n\\n    /**\\n     * SdkSubscribeFrame receiveStreamIds.\\n     * @member {Array.<number>} receiveStreamIds\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.receiveStreamIds = $util.emptyArray;\\n\\n    /**\\n     * SdkSubscribeFrame sdpOffer.\\n     * @member {string} sdpOffer\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.sdpOffer = \\\"\\\";\\n\\n    /**\\n     * SdkSubscribeFrame audioHost.\\n     * @member {string} audioHost\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.audioHost = \\\"\\\";\\n\\n    /**\\n     * SdkSubscribeFrame audioCheckin.\\n     * @member {boolean} audioCheckin\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.audioCheckin = false;\\n\\n    /**\\n     * SdkSubscribeFrame audioMuted.\\n     * @member {boolean} audioMuted\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.audioMuted = false;\\n\\n    /**\\n     * SdkSubscribeFrame compressedSdpOffer.\\n     * @member {Uint8Array} compressedSdpOffer\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.compressedSdpOffer = $util.newBuffer([]);\\n\\n    /**\\n     * SdkSubscribeFrame videoSubscriptionConfiguration.\\n     * @member {Array.<ISdkVideoSubscriptionConfiguration>} videoSubscriptionConfiguration\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     */\\n    SdkSubscribeFrame.prototype.videoSubscriptionConfiguration = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkSubscribeFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {ISdkSubscribeFrame=} [properties] Properties to set\\n     * @returns {SdkSubscribeFrame} SdkSubscribeFrame instance\\n     */\\n    SdkSubscribeFrame.create = function create(properties) {\\n        return new SdkSubscribeFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSubscribeFrame message. Does not implicitly {@link SdkSubscribeFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {ISdkSubscribeFrame} message SdkSubscribeFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSubscribeFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.duplex != null && Object.hasOwnProperty.call(message, \\\"duplex\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.duplex);\\n        if (message.sendStreams != null && message.sendStreams.length)\\n            for (var i = 0; i < message.sendStreams.length; ++i)\\n                $root.SdkStreamDescriptor.encode(message.sendStreams[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        if (message.receiveStreamIds != null && message.receiveStreamIds.length)\\n            for (var i = 0; i < message.receiveStreamIds.length; ++i)\\n                writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.receiveStreamIds[i]);\\n        if (message.sdpOffer != null && Object.hasOwnProperty.call(message, \\\"sdpOffer\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.sdpOffer);\\n        if (message.audioHost != null && Object.hasOwnProperty.call(message, \\\"audioHost\\\"))\\n            writer.uint32(/* id 5, wireType 2 =*/42).string(message.audioHost);\\n        if (message.audioCheckin != null && Object.hasOwnProperty.call(message, \\\"audioCheckin\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).bool(message.audioCheckin);\\n        if (message.audioMuted != null && Object.hasOwnProperty.call(message, \\\"audioMuted\\\"))\\n            writer.uint32(/* id 7, wireType 0 =*/56).bool(message.audioMuted);\\n        if (message.compressedSdpOffer != null && Object.hasOwnProperty.call(message, \\\"compressedSdpOffer\\\"))\\n            writer.uint32(/* id 8, wireType 2 =*/66).bytes(message.compressedSdpOffer);\\n        if (message.videoSubscriptionConfiguration != null && message.videoSubscriptionConfiguration.length)\\n            for (var i = 0; i < message.videoSubscriptionConfiguration.length; ++i)\\n                $root.SdkVideoSubscriptionConfiguration.encode(message.videoSubscriptionConfiguration[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSubscribeFrame message, length delimited. Does not implicitly {@link SdkSubscribeFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {ISdkSubscribeFrame} message SdkSubscribeFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSubscribeFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkSubscribeFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkSubscribeFrame} SdkSubscribeFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSubscribeFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkSubscribeFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.duplex = reader.int32();\\n                break;\\n            case 2:\\n                if (!(message.sendStreams && message.sendStreams.length))\\n                    message.sendStreams = [];\\n                message.sendStreams.push($root.SdkStreamDescriptor.decode(reader, reader.uint32()));\\n                break;\\n            case 3:\\n                if (!(message.receiveStreamIds && message.receiveStreamIds.length))\\n                    message.receiveStreamIds = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.receiveStreamIds.push(reader.uint32());\\n                } else\\n                    message.receiveStreamIds.push(reader.uint32());\\n                break;\\n            case 4:\\n                message.sdpOffer = reader.string();\\n                break;\\n            case 5:\\n                message.audioHost = reader.string();\\n                break;\\n            case 6:\\n                message.audioCheckin = reader.bool();\\n                break;\\n            case 7:\\n                message.audioMuted = reader.bool();\\n                break;\\n            case 8:\\n                message.compressedSdpOffer = reader.bytes();\\n                break;\\n            case 9:\\n                if (!(message.videoSubscriptionConfiguration && message.videoSubscriptionConfiguration.length))\\n                    message.videoSubscriptionConfiguration = [];\\n                message.videoSubscriptionConfiguration.push($root.SdkVideoSubscriptionConfiguration.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkSubscribeFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkSubscribeFrame} SdkSubscribeFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSubscribeFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkSubscribeFrame message.\\n     * @function verify\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkSubscribeFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.duplex != null && message.hasOwnProperty(\\\"duplex\\\"))\\n            switch (message.duplex) {\\n            default:\\n                return \\\"duplex: enum value expected\\\";\\n            case 1:\\n            case 2:\\n            case 3:\\n                break;\\n            }\\n        if (message.sendStreams != null && message.hasOwnProperty(\\\"sendStreams\\\")) {\\n            if (!Array.isArray(message.sendStreams))\\n                return \\\"sendStreams: array expected\\\";\\n            for (var i = 0; i < message.sendStreams.length; ++i) {\\n                var error = $root.SdkStreamDescriptor.verify(message.sendStreams[i]);\\n                if (error)\\n                    return \\\"sendStreams.\\\" + error;\\n            }\\n        }\\n        if (message.receiveStreamIds != null && message.hasOwnProperty(\\\"receiveStreamIds\\\")) {\\n            if (!Array.isArray(message.receiveStreamIds))\\n                return \\\"receiveStreamIds: array expected\\\";\\n            for (var i = 0; i < message.receiveStreamIds.length; ++i)\\n                if (!$util.isInteger(message.receiveStreamIds[i]))\\n                    return \\\"receiveStreamIds: integer[] expected\\\";\\n        }\\n        if (message.sdpOffer != null && message.hasOwnProperty(\\\"sdpOffer\\\"))\\n            if (!$util.isString(message.sdpOffer))\\n                return \\\"sdpOffer: string expected\\\";\\n        if (message.audioHost != null && message.hasOwnProperty(\\\"audioHost\\\"))\\n            if (!$util.isString(message.audioHost))\\n                return \\\"audioHost: string expected\\\";\\n        if (message.audioCheckin != null && message.hasOwnProperty(\\\"audioCheckin\\\"))\\n            if (typeof message.audioCheckin !== \\\"boolean\\\")\\n                return \\\"audioCheckin: boolean expected\\\";\\n        if (message.audioMuted != null && message.hasOwnProperty(\\\"audioMuted\\\"))\\n            if (typeof message.audioMuted !== \\\"boolean\\\")\\n                return \\\"audioMuted: boolean expected\\\";\\n        if (message.compressedSdpOffer != null && message.hasOwnProperty(\\\"compressedSdpOffer\\\"))\\n            if (!(message.compressedSdpOffer && typeof message.compressedSdpOffer.length === \\\"number\\\" || $util.isString(message.compressedSdpOffer)))\\n                return \\\"compressedSdpOffer: buffer expected\\\";\\n        if (message.videoSubscriptionConfiguration != null && message.hasOwnProperty(\\\"videoSubscriptionConfiguration\\\")) {\\n            if (!Array.isArray(message.videoSubscriptionConfiguration))\\n                return \\\"videoSubscriptionConfiguration: array expected\\\";\\n            for (var i = 0; i < message.videoSubscriptionConfiguration.length; ++i) {\\n                var error = $root.SdkVideoSubscriptionConfiguration.verify(message.videoSubscriptionConfiguration[i]);\\n                if (error)\\n                    return \\\"videoSubscriptionConfiguration.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkSubscribeFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkSubscribeFrame} SdkSubscribeFrame\\n     */\\n    SdkSubscribeFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkSubscribeFrame)\\n            return object;\\n        var message = new $root.SdkSubscribeFrame();\\n        switch (object.duplex) {\\n        case \\\"RX\\\":\\n        case 1:\\n            message.duplex = 1;\\n            break;\\n        case \\\"TX\\\":\\n        case 2:\\n            message.duplex = 2;\\n            break;\\n        case \\\"DUPLEX\\\":\\n        case 3:\\n            message.duplex = 3;\\n            break;\\n        }\\n        if (object.sendStreams) {\\n            if (!Array.isArray(object.sendStreams))\\n                throw TypeError(\\\".SdkSubscribeFrame.sendStreams: array expected\\\");\\n            message.sendStreams = [];\\n            for (var i = 0; i < object.sendStreams.length; ++i) {\\n                if (typeof object.sendStreams[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkSubscribeFrame.sendStreams: object expected\\\");\\n                message.sendStreams[i] = $root.SdkStreamDescriptor.fromObject(object.sendStreams[i]);\\n            }\\n        }\\n        if (object.receiveStreamIds) {\\n            if (!Array.isArray(object.receiveStreamIds))\\n                throw TypeError(\\\".SdkSubscribeFrame.receiveStreamIds: array expected\\\");\\n            message.receiveStreamIds = [];\\n            for (var i = 0; i < object.receiveStreamIds.length; ++i)\\n                message.receiveStreamIds[i] = object.receiveStreamIds[i] >>> 0;\\n        }\\n        if (object.sdpOffer != null)\\n            message.sdpOffer = String(object.sdpOffer);\\n        if (object.audioHost != null)\\n            message.audioHost = String(object.audioHost);\\n        if (object.audioCheckin != null)\\n            message.audioCheckin = Boolean(object.audioCheckin);\\n        if (object.audioMuted != null)\\n            message.audioMuted = Boolean(object.audioMuted);\\n        if (object.compressedSdpOffer != null)\\n            if (typeof object.compressedSdpOffer === \\\"string\\\")\\n                $util.base64.decode(object.compressedSdpOffer, message.compressedSdpOffer = $util.newBuffer($util.base64.length(object.compressedSdpOffer)), 0);\\n            else if (object.compressedSdpOffer.length)\\n                message.compressedSdpOffer = object.compressedSdpOffer;\\n        if (object.videoSubscriptionConfiguration) {\\n            if (!Array.isArray(object.videoSubscriptionConfiguration))\\n                throw TypeError(\\\".SdkSubscribeFrame.videoSubscriptionConfiguration: array expected\\\");\\n            message.videoSubscriptionConfiguration = [];\\n            for (var i = 0; i < object.videoSubscriptionConfiguration.length; ++i) {\\n                if (typeof object.videoSubscriptionConfiguration[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkSubscribeFrame.videoSubscriptionConfiguration: object expected\\\");\\n                message.videoSubscriptionConfiguration[i] = $root.SdkVideoSubscriptionConfiguration.fromObject(object.videoSubscriptionConfiguration[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkSubscribeFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkSubscribeFrame\\n     * @static\\n     * @param {SdkSubscribeFrame} message SdkSubscribeFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkSubscribeFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.sendStreams = [];\\n            object.receiveStreamIds = [];\\n            object.videoSubscriptionConfiguration = [];\\n        }\\n        if (options.defaults) {\\n            object.duplex = options.enums === String ? \\\"RX\\\" : 1;\\n            object.sdpOffer = \\\"\\\";\\n            object.audioHost = \\\"\\\";\\n            object.audioCheckin = false;\\n            object.audioMuted = false;\\n            if (options.bytes === String)\\n                object.compressedSdpOffer = \\\"\\\";\\n            else {\\n                object.compressedSdpOffer = [];\\n                if (options.bytes !== Array)\\n                    object.compressedSdpOffer = $util.newBuffer(object.compressedSdpOffer);\\n            }\\n        }\\n        if (message.duplex != null && message.hasOwnProperty(\\\"duplex\\\"))\\n            object.duplex = options.enums === String ? $root.SdkStreamServiceType[message.duplex] : message.duplex;\\n        if (message.sendStreams && message.sendStreams.length) {\\n            object.sendStreams = [];\\n            for (var j = 0; j < message.sendStreams.length; ++j)\\n                object.sendStreams[j] = $root.SdkStreamDescriptor.toObject(message.sendStreams[j], options);\\n        }\\n        if (message.receiveStreamIds && message.receiveStreamIds.length) {\\n            object.receiveStreamIds = [];\\n            for (var j = 0; j < message.receiveStreamIds.length; ++j)\\n                object.receiveStreamIds[j] = message.receiveStreamIds[j];\\n        }\\n        if (message.sdpOffer != null && message.hasOwnProperty(\\\"sdpOffer\\\"))\\n            object.sdpOffer = message.sdpOffer;\\n        if (message.audioHost != null && message.hasOwnProperty(\\\"audioHost\\\"))\\n            object.audioHost = message.audioHost;\\n        if (message.audioCheckin != null && message.hasOwnProperty(\\\"audioCheckin\\\"))\\n            object.audioCheckin = message.audioCheckin;\\n        if (message.audioMuted != null && message.hasOwnProperty(\\\"audioMuted\\\"))\\n            object.audioMuted = message.audioMuted;\\n        if (message.compressedSdpOffer != null && message.hasOwnProperty(\\\"compressedSdpOffer\\\"))\\n            object.compressedSdpOffer = options.bytes === String ? $util.base64.encode(message.compressedSdpOffer, 0, message.compressedSdpOffer.length) : options.bytes === Array ? Array.prototype.slice.call(message.compressedSdpOffer) : message.compressedSdpOffer;\\n        if (message.videoSubscriptionConfiguration && message.videoSubscriptionConfiguration.length) {\\n            object.videoSubscriptionConfiguration = [];\\n            for (var j = 0; j < message.videoSubscriptionConfiguration.length; ++j)\\n                object.videoSubscriptionConfiguration[j] = $root.SdkVideoSubscriptionConfiguration.toObject(message.videoSubscriptionConfiguration[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkSubscribeFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkSubscribeFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkSubscribeFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkSubscribeFrame;\\n})();\\n\\n$root.SdkSubscribeAckFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkSubscribeAckFrame.\\n     * @exports ISdkSubscribeAckFrame\\n     * @interface ISdkSubscribeAckFrame\\n     * @property {SdkStreamServiceType|null} [duplex] SdkSubscribeAckFrame duplex\\n     * @property {Array.<ISdkStreamAllocation>|null} [allocations] SdkSubscribeAckFrame allocations\\n     * @property {string|null} [sdpAnswer] SdkSubscribeAckFrame sdpAnswer\\n     * @property {Array.<ISdkTrackMapping>|null} [tracks] SdkSubscribeAckFrame tracks\\n     * @property {Uint8Array|null} [compressedSdpAnswer] SdkSubscribeAckFrame compressedSdpAnswer\\n     */\\n\\n    /**\\n     * Constructs a new SdkSubscribeAckFrame.\\n     * @exports SdkSubscribeAckFrame\\n     * @classdesc Represents a SdkSubscribeAckFrame.\\n     * @implements ISdkSubscribeAckFrame\\n     * @constructor\\n     * @param {ISdkSubscribeAckFrame=} [properties] Properties to set\\n     */\\n    function SdkSubscribeAckFrame(properties) {\\n        this.allocations = [];\\n        this.tracks = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkSubscribeAckFrame duplex.\\n     * @member {SdkStreamServiceType} duplex\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     */\\n    SdkSubscribeAckFrame.prototype.duplex = 1;\\n\\n    /**\\n     * SdkSubscribeAckFrame allocations.\\n     * @member {Array.<ISdkStreamAllocation>} allocations\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     */\\n    SdkSubscribeAckFrame.prototype.allocations = $util.emptyArray;\\n\\n    /**\\n     * SdkSubscribeAckFrame sdpAnswer.\\n     * @member {string} sdpAnswer\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     */\\n    SdkSubscribeAckFrame.prototype.sdpAnswer = \\\"\\\";\\n\\n    /**\\n     * SdkSubscribeAckFrame tracks.\\n     * @member {Array.<ISdkTrackMapping>} tracks\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     */\\n    SdkSubscribeAckFrame.prototype.tracks = $util.emptyArray;\\n\\n    /**\\n     * SdkSubscribeAckFrame compressedSdpAnswer.\\n     * @member {Uint8Array} compressedSdpAnswer\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     */\\n    SdkSubscribeAckFrame.prototype.compressedSdpAnswer = $util.newBuffer([]);\\n\\n    /**\\n     * Creates a new SdkSubscribeAckFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {ISdkSubscribeAckFrame=} [properties] Properties to set\\n     * @returns {SdkSubscribeAckFrame} SdkSubscribeAckFrame instance\\n     */\\n    SdkSubscribeAckFrame.create = function create(properties) {\\n        return new SdkSubscribeAckFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSubscribeAckFrame message. Does not implicitly {@link SdkSubscribeAckFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {ISdkSubscribeAckFrame} message SdkSubscribeAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSubscribeAckFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.duplex != null && Object.hasOwnProperty.call(message, \\\"duplex\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.duplex);\\n        if (message.allocations != null && message.allocations.length)\\n            for (var i = 0; i < message.allocations.length; ++i)\\n                $root.SdkStreamAllocation.encode(message.allocations[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        if (message.sdpAnswer != null && Object.hasOwnProperty.call(message, \\\"sdpAnswer\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.sdpAnswer);\\n        if (message.tracks != null && message.tracks.length)\\n            for (var i = 0; i < message.tracks.length; ++i)\\n                $root.SdkTrackMapping.encode(message.tracks[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\\n        if (message.compressedSdpAnswer != null && Object.hasOwnProperty.call(message, \\\"compressedSdpAnswer\\\"))\\n            writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.compressedSdpAnswer);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkSubscribeAckFrame message, length delimited. Does not implicitly {@link SdkSubscribeAckFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {ISdkSubscribeAckFrame} message SdkSubscribeAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkSubscribeAckFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkSubscribeAckFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkSubscribeAckFrame} SdkSubscribeAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSubscribeAckFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkSubscribeAckFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.duplex = reader.int32();\\n                break;\\n            case 2:\\n                if (!(message.allocations && message.allocations.length))\\n                    message.allocations = [];\\n                message.allocations.push($root.SdkStreamAllocation.decode(reader, reader.uint32()));\\n                break;\\n            case 3:\\n                message.sdpAnswer = reader.string();\\n                break;\\n            case 4:\\n                if (!(message.tracks && message.tracks.length))\\n                    message.tracks = [];\\n                message.tracks.push($root.SdkTrackMapping.decode(reader, reader.uint32()));\\n                break;\\n            case 5:\\n                message.compressedSdpAnswer = reader.bytes();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkSubscribeAckFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkSubscribeAckFrame} SdkSubscribeAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkSubscribeAckFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkSubscribeAckFrame message.\\n     * @function verify\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkSubscribeAckFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.duplex != null && message.hasOwnProperty(\\\"duplex\\\"))\\n            switch (message.duplex) {\\n            default:\\n                return \\\"duplex: enum value expected\\\";\\n            case 1:\\n            case 2:\\n            case 3:\\n                break;\\n            }\\n        if (message.allocations != null && message.hasOwnProperty(\\\"allocations\\\")) {\\n            if (!Array.isArray(message.allocations))\\n                return \\\"allocations: array expected\\\";\\n            for (var i = 0; i < message.allocations.length; ++i) {\\n                var error = $root.SdkStreamAllocation.verify(message.allocations[i]);\\n                if (error)\\n                    return \\\"allocations.\\\" + error;\\n            }\\n        }\\n        if (message.sdpAnswer != null && message.hasOwnProperty(\\\"sdpAnswer\\\"))\\n            if (!$util.isString(message.sdpAnswer))\\n                return \\\"sdpAnswer: string expected\\\";\\n        if (message.tracks != null && message.hasOwnProperty(\\\"tracks\\\")) {\\n            if (!Array.isArray(message.tracks))\\n                return \\\"tracks: array expected\\\";\\n            for (var i = 0; i < message.tracks.length; ++i) {\\n                var error = $root.SdkTrackMapping.verify(message.tracks[i]);\\n                if (error)\\n                    return \\\"tracks.\\\" + error;\\n            }\\n        }\\n        if (message.compressedSdpAnswer != null && message.hasOwnProperty(\\\"compressedSdpAnswer\\\"))\\n            if (!(message.compressedSdpAnswer && typeof message.compressedSdpAnswer.length === \\\"number\\\" || $util.isString(message.compressedSdpAnswer)))\\n                return \\\"compressedSdpAnswer: buffer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkSubscribeAckFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkSubscribeAckFrame} SdkSubscribeAckFrame\\n     */\\n    SdkSubscribeAckFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkSubscribeAckFrame)\\n            return object;\\n        var message = new $root.SdkSubscribeAckFrame();\\n        switch (object.duplex) {\\n        case \\\"RX\\\":\\n        case 1:\\n            message.duplex = 1;\\n            break;\\n        case \\\"TX\\\":\\n        case 2:\\n            message.duplex = 2;\\n            break;\\n        case \\\"DUPLEX\\\":\\n        case 3:\\n            message.duplex = 3;\\n            break;\\n        }\\n        if (object.allocations) {\\n            if (!Array.isArray(object.allocations))\\n                throw TypeError(\\\".SdkSubscribeAckFrame.allocations: array expected\\\");\\n            message.allocations = [];\\n            for (var i = 0; i < object.allocations.length; ++i) {\\n                if (typeof object.allocations[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkSubscribeAckFrame.allocations: object expected\\\");\\n                message.allocations[i] = $root.SdkStreamAllocation.fromObject(object.allocations[i]);\\n            }\\n        }\\n        if (object.sdpAnswer != null)\\n            message.sdpAnswer = String(object.sdpAnswer);\\n        if (object.tracks) {\\n            if (!Array.isArray(object.tracks))\\n                throw TypeError(\\\".SdkSubscribeAckFrame.tracks: array expected\\\");\\n            message.tracks = [];\\n            for (var i = 0; i < object.tracks.length; ++i) {\\n                if (typeof object.tracks[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkSubscribeAckFrame.tracks: object expected\\\");\\n                message.tracks[i] = $root.SdkTrackMapping.fromObject(object.tracks[i]);\\n            }\\n        }\\n        if (object.compressedSdpAnswer != null)\\n            if (typeof object.compressedSdpAnswer === \\\"string\\\")\\n                $util.base64.decode(object.compressedSdpAnswer, message.compressedSdpAnswer = $util.newBuffer($util.base64.length(object.compressedSdpAnswer)), 0);\\n            else if (object.compressedSdpAnswer.length)\\n                message.compressedSdpAnswer = object.compressedSdpAnswer;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkSubscribeAckFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkSubscribeAckFrame\\n     * @static\\n     * @param {SdkSubscribeAckFrame} message SdkSubscribeAckFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkSubscribeAckFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.allocations = [];\\n            object.tracks = [];\\n        }\\n        if (options.defaults) {\\n            object.duplex = options.enums === String ? \\\"RX\\\" : 1;\\n            object.sdpAnswer = \\\"\\\";\\n            if (options.bytes === String)\\n                object.compressedSdpAnswer = \\\"\\\";\\n            else {\\n                object.compressedSdpAnswer = [];\\n                if (options.bytes !== Array)\\n                    object.compressedSdpAnswer = $util.newBuffer(object.compressedSdpAnswer);\\n            }\\n        }\\n        if (message.duplex != null && message.hasOwnProperty(\\\"duplex\\\"))\\n            object.duplex = options.enums === String ? $root.SdkStreamServiceType[message.duplex] : message.duplex;\\n        if (message.allocations && message.allocations.length) {\\n            object.allocations = [];\\n            for (var j = 0; j < message.allocations.length; ++j)\\n                object.allocations[j] = $root.SdkStreamAllocation.toObject(message.allocations[j], options);\\n        }\\n        if (message.sdpAnswer != null && message.hasOwnProperty(\\\"sdpAnswer\\\"))\\n            object.sdpAnswer = message.sdpAnswer;\\n        if (message.tracks && message.tracks.length) {\\n            object.tracks = [];\\n            for (var j = 0; j < message.tracks.length; ++j)\\n                object.tracks[j] = $root.SdkTrackMapping.toObject(message.tracks[j], options);\\n        }\\n        if (message.compressedSdpAnswer != null && message.hasOwnProperty(\\\"compressedSdpAnswer\\\"))\\n            object.compressedSdpAnswer = options.bytes === String ? $util.base64.encode(message.compressedSdpAnswer, 0, message.compressedSdpAnswer.length) : options.bytes === Array ? Array.prototype.slice.call(message.compressedSdpAnswer) : message.compressedSdpAnswer;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkSubscribeAckFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkSubscribeAckFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkSubscribeAckFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkSubscribeAckFrame;\\n})();\\n\\n$root.SdkIndexFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkIndexFrame.\\n     * @exports ISdkIndexFrame\\n     * @interface ISdkIndexFrame\\n     * @property {boolean|null} [atCapacity] SdkIndexFrame atCapacity\\n     * @property {Array.<ISdkStreamDescriptor>|null} [sources] SdkIndexFrame sources\\n     * @property {Array.<number>|null} [pausedAtSourceIds] SdkIndexFrame pausedAtSourceIds\\n     * @property {number|null} [numParticipants] SdkIndexFrame numParticipants\\n     * @property {Array.<SdkVideoCodecCapability>|null} [supportedReceiveCodecIntersection] SdkIndexFrame supportedReceiveCodecIntersection\\n     */\\n\\n    /**\\n     * Constructs a new SdkIndexFrame.\\n     * @exports SdkIndexFrame\\n     * @classdesc Represents a SdkIndexFrame.\\n     * @implements ISdkIndexFrame\\n     * @constructor\\n     * @param {ISdkIndexFrame=} [properties] Properties to set\\n     */\\n    function SdkIndexFrame(properties) {\\n        this.sources = [];\\n        this.pausedAtSourceIds = [];\\n        this.supportedReceiveCodecIntersection = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkIndexFrame atCapacity.\\n     * @member {boolean} atCapacity\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     */\\n    SdkIndexFrame.prototype.atCapacity = false;\\n\\n    /**\\n     * SdkIndexFrame sources.\\n     * @member {Array.<ISdkStreamDescriptor>} sources\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     */\\n    SdkIndexFrame.prototype.sources = $util.emptyArray;\\n\\n    /**\\n     * SdkIndexFrame pausedAtSourceIds.\\n     * @member {Array.<number>} pausedAtSourceIds\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     */\\n    SdkIndexFrame.prototype.pausedAtSourceIds = $util.emptyArray;\\n\\n    /**\\n     * SdkIndexFrame numParticipants.\\n     * @member {number} numParticipants\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     */\\n    SdkIndexFrame.prototype.numParticipants = 0;\\n\\n    /**\\n     * SdkIndexFrame supportedReceiveCodecIntersection.\\n     * @member {Array.<SdkVideoCodecCapability>} supportedReceiveCodecIntersection\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     */\\n    SdkIndexFrame.prototype.supportedReceiveCodecIntersection = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkIndexFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {ISdkIndexFrame=} [properties] Properties to set\\n     * @returns {SdkIndexFrame} SdkIndexFrame instance\\n     */\\n    SdkIndexFrame.create = function create(properties) {\\n        return new SdkIndexFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkIndexFrame message. Does not implicitly {@link SdkIndexFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {ISdkIndexFrame} message SdkIndexFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkIndexFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.atCapacity != null && Object.hasOwnProperty.call(message, \\\"atCapacity\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.atCapacity);\\n        if (message.sources != null && message.sources.length)\\n            for (var i = 0; i < message.sources.length; ++i)\\n                $root.SdkStreamDescriptor.encode(message.sources[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        if (message.pausedAtSourceIds != null && message.pausedAtSourceIds.length)\\n            for (var i = 0; i < message.pausedAtSourceIds.length; ++i)\\n                writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.pausedAtSourceIds[i]);\\n        if (message.numParticipants != null && Object.hasOwnProperty.call(message, \\\"numParticipants\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.numParticipants);\\n        if (message.supportedReceiveCodecIntersection != null && message.supportedReceiveCodecIntersection.length)\\n            for (var i = 0; i < message.supportedReceiveCodecIntersection.length; ++i)\\n                writer.uint32(/* id 5, wireType 0 =*/40).int32(message.supportedReceiveCodecIntersection[i]);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkIndexFrame message, length delimited. Does not implicitly {@link SdkIndexFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {ISdkIndexFrame} message SdkIndexFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkIndexFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkIndexFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkIndexFrame} SdkIndexFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkIndexFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkIndexFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.atCapacity = reader.bool();\\n                break;\\n            case 2:\\n                if (!(message.sources && message.sources.length))\\n                    message.sources = [];\\n                message.sources.push($root.SdkStreamDescriptor.decode(reader, reader.uint32()));\\n                break;\\n            case 3:\\n                if (!(message.pausedAtSourceIds && message.pausedAtSourceIds.length))\\n                    message.pausedAtSourceIds = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.pausedAtSourceIds.push(reader.uint32());\\n                } else\\n                    message.pausedAtSourceIds.push(reader.uint32());\\n                break;\\n            case 4:\\n                message.numParticipants = reader.uint32();\\n                break;\\n            case 5:\\n                if (!(message.supportedReceiveCodecIntersection && message.supportedReceiveCodecIntersection.length))\\n                    message.supportedReceiveCodecIntersection = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.supportedReceiveCodecIntersection.push(reader.int32());\\n                } else\\n                    message.supportedReceiveCodecIntersection.push(reader.int32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkIndexFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkIndexFrame} SdkIndexFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkIndexFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkIndexFrame message.\\n     * @function verify\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkIndexFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.atCapacity != null && message.hasOwnProperty(\\\"atCapacity\\\"))\\n            if (typeof message.atCapacity !== \\\"boolean\\\")\\n                return \\\"atCapacity: boolean expected\\\";\\n        if (message.sources != null && message.hasOwnProperty(\\\"sources\\\")) {\\n            if (!Array.isArray(message.sources))\\n                return \\\"sources: array expected\\\";\\n            for (var i = 0; i < message.sources.length; ++i) {\\n                var error = $root.SdkStreamDescriptor.verify(message.sources[i]);\\n                if (error)\\n                    return \\\"sources.\\\" + error;\\n            }\\n        }\\n        if (message.pausedAtSourceIds != null && message.hasOwnProperty(\\\"pausedAtSourceIds\\\")) {\\n            if (!Array.isArray(message.pausedAtSourceIds))\\n                return \\\"pausedAtSourceIds: array expected\\\";\\n            for (var i = 0; i < message.pausedAtSourceIds.length; ++i)\\n                if (!$util.isInteger(message.pausedAtSourceIds[i]))\\n                    return \\\"pausedAtSourceIds: integer[] expected\\\";\\n        }\\n        if (message.numParticipants != null && message.hasOwnProperty(\\\"numParticipants\\\"))\\n            if (!$util.isInteger(message.numParticipants))\\n                return \\\"numParticipants: integer expected\\\";\\n        if (message.supportedReceiveCodecIntersection != null && message.hasOwnProperty(\\\"supportedReceiveCodecIntersection\\\")) {\\n            if (!Array.isArray(message.supportedReceiveCodecIntersection))\\n                return \\\"supportedReceiveCodecIntersection: array expected\\\";\\n            for (var i = 0; i < message.supportedReceiveCodecIntersection.length; ++i)\\n                switch (message.supportedReceiveCodecIntersection[i]) {\\n                default:\\n                    return \\\"supportedReceiveCodecIntersection: enum value[] expected\\\";\\n                case 1:\\n                case 3:\\n                    break;\\n                }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkIndexFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkIndexFrame} SdkIndexFrame\\n     */\\n    SdkIndexFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkIndexFrame)\\n            return object;\\n        var message = new $root.SdkIndexFrame();\\n        if (object.atCapacity != null)\\n            message.atCapacity = Boolean(object.atCapacity);\\n        if (object.sources) {\\n            if (!Array.isArray(object.sources))\\n                throw TypeError(\\\".SdkIndexFrame.sources: array expected\\\");\\n            message.sources = [];\\n            for (var i = 0; i < object.sources.length; ++i) {\\n                if (typeof object.sources[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkIndexFrame.sources: object expected\\\");\\n                message.sources[i] = $root.SdkStreamDescriptor.fromObject(object.sources[i]);\\n            }\\n        }\\n        if (object.pausedAtSourceIds) {\\n            if (!Array.isArray(object.pausedAtSourceIds))\\n                throw TypeError(\\\".SdkIndexFrame.pausedAtSourceIds: array expected\\\");\\n            message.pausedAtSourceIds = [];\\n            for (var i = 0; i < object.pausedAtSourceIds.length; ++i)\\n                message.pausedAtSourceIds[i] = object.pausedAtSourceIds[i] >>> 0;\\n        }\\n        if (object.numParticipants != null)\\n            message.numParticipants = object.numParticipants >>> 0;\\n        if (object.supportedReceiveCodecIntersection) {\\n            if (!Array.isArray(object.supportedReceiveCodecIntersection))\\n                throw TypeError(\\\".SdkIndexFrame.supportedReceiveCodecIntersection: array expected\\\");\\n            message.supportedReceiveCodecIntersection = [];\\n            for (var i = 0; i < object.supportedReceiveCodecIntersection.length; ++i)\\n                switch (object.supportedReceiveCodecIntersection[i]) {\\n                default:\\n                case \\\"VP8\\\":\\n                case 1:\\n                    message.supportedReceiveCodecIntersection[i] = 1;\\n                    break;\\n                case \\\"H264_CONSTRAINED_BASELINE_PROFILE\\\":\\n                case 3:\\n                    message.supportedReceiveCodecIntersection[i] = 3;\\n                    break;\\n                }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkIndexFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkIndexFrame\\n     * @static\\n     * @param {SdkIndexFrame} message SdkIndexFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkIndexFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.sources = [];\\n            object.pausedAtSourceIds = [];\\n            object.supportedReceiveCodecIntersection = [];\\n        }\\n        if (options.defaults) {\\n            object.atCapacity = false;\\n            object.numParticipants = 0;\\n        }\\n        if (message.atCapacity != null && message.hasOwnProperty(\\\"atCapacity\\\"))\\n            object.atCapacity = message.atCapacity;\\n        if (message.sources && message.sources.length) {\\n            object.sources = [];\\n            for (var j = 0; j < message.sources.length; ++j)\\n                object.sources[j] = $root.SdkStreamDescriptor.toObject(message.sources[j], options);\\n        }\\n        if (message.pausedAtSourceIds && message.pausedAtSourceIds.length) {\\n            object.pausedAtSourceIds = [];\\n            for (var j = 0; j < message.pausedAtSourceIds.length; ++j)\\n                object.pausedAtSourceIds[j] = message.pausedAtSourceIds[j];\\n        }\\n        if (message.numParticipants != null && message.hasOwnProperty(\\\"numParticipants\\\"))\\n            object.numParticipants = message.numParticipants;\\n        if (message.supportedReceiveCodecIntersection && message.supportedReceiveCodecIntersection.length) {\\n            object.supportedReceiveCodecIntersection = [];\\n            for (var j = 0; j < message.supportedReceiveCodecIntersection.length; ++j)\\n                object.supportedReceiveCodecIntersection[j] = options.enums === String ? $root.SdkVideoCodecCapability[message.supportedReceiveCodecIntersection[j]] : message.supportedReceiveCodecIntersection[j];\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkIndexFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkIndexFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkIndexFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkIndexFrame;\\n})();\\n\\n$root.SdkPauseResumeFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkPauseResumeFrame.\\n     * @exports ISdkPauseResumeFrame\\n     * @interface ISdkPauseResumeFrame\\n     * @property {Array.<number>|null} [streamIds] SdkPauseResumeFrame streamIds\\n     * @property {Array.<number>|null} [groupIds] SdkPauseResumeFrame groupIds\\n     */\\n\\n    /**\\n     * Constructs a new SdkPauseResumeFrame.\\n     * @exports SdkPauseResumeFrame\\n     * @classdesc Represents a SdkPauseResumeFrame.\\n     * @implements ISdkPauseResumeFrame\\n     * @constructor\\n     * @param {ISdkPauseResumeFrame=} [properties] Properties to set\\n     */\\n    function SdkPauseResumeFrame(properties) {\\n        this.streamIds = [];\\n        this.groupIds = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkPauseResumeFrame streamIds.\\n     * @member {Array.<number>} streamIds\\n     * @memberof SdkPauseResumeFrame\\n     * @instance\\n     */\\n    SdkPauseResumeFrame.prototype.streamIds = $util.emptyArray;\\n\\n    /**\\n     * SdkPauseResumeFrame groupIds.\\n     * @member {Array.<number>} groupIds\\n     * @memberof SdkPauseResumeFrame\\n     * @instance\\n     */\\n    SdkPauseResumeFrame.prototype.groupIds = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkPauseResumeFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {ISdkPauseResumeFrame=} [properties] Properties to set\\n     * @returns {SdkPauseResumeFrame} SdkPauseResumeFrame instance\\n     */\\n    SdkPauseResumeFrame.create = function create(properties) {\\n        return new SdkPauseResumeFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPauseResumeFrame message. Does not implicitly {@link SdkPauseResumeFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {ISdkPauseResumeFrame} message SdkPauseResumeFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPauseResumeFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.streamIds != null && message.streamIds.length)\\n            for (var i = 0; i < message.streamIds.length; ++i)\\n                writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.streamIds[i]);\\n        if (message.groupIds != null && message.groupIds.length)\\n            for (var i = 0; i < message.groupIds.length; ++i)\\n                writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.groupIds[i]);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPauseResumeFrame message, length delimited. Does not implicitly {@link SdkPauseResumeFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {ISdkPauseResumeFrame} message SdkPauseResumeFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPauseResumeFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkPauseResumeFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkPauseResumeFrame} SdkPauseResumeFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPauseResumeFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkPauseResumeFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.streamIds && message.streamIds.length))\\n                    message.streamIds = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.streamIds.push(reader.uint32());\\n                } else\\n                    message.streamIds.push(reader.uint32());\\n                break;\\n            case 2:\\n                if (!(message.groupIds && message.groupIds.length))\\n                    message.groupIds = [];\\n                if ((tag & 7) === 2) {\\n                    var end2 = reader.uint32() + reader.pos;\\n                    while (reader.pos < end2)\\n                        message.groupIds.push(reader.uint32());\\n                } else\\n                    message.groupIds.push(reader.uint32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkPauseResumeFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkPauseResumeFrame} SdkPauseResumeFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPauseResumeFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkPauseResumeFrame message.\\n     * @function verify\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkPauseResumeFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.streamIds != null && message.hasOwnProperty(\\\"streamIds\\\")) {\\n            if (!Array.isArray(message.streamIds))\\n                return \\\"streamIds: array expected\\\";\\n            for (var i = 0; i < message.streamIds.length; ++i)\\n                if (!$util.isInteger(message.streamIds[i]))\\n                    return \\\"streamIds: integer[] expected\\\";\\n        }\\n        if (message.groupIds != null && message.hasOwnProperty(\\\"groupIds\\\")) {\\n            if (!Array.isArray(message.groupIds))\\n                return \\\"groupIds: array expected\\\";\\n            for (var i = 0; i < message.groupIds.length; ++i)\\n                if (!$util.isInteger(message.groupIds[i]))\\n                    return \\\"groupIds: integer[] expected\\\";\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkPauseResumeFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkPauseResumeFrame} SdkPauseResumeFrame\\n     */\\n    SdkPauseResumeFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkPauseResumeFrame)\\n            return object;\\n        var message = new $root.SdkPauseResumeFrame();\\n        if (object.streamIds) {\\n            if (!Array.isArray(object.streamIds))\\n                throw TypeError(\\\".SdkPauseResumeFrame.streamIds: array expected\\\");\\n            message.streamIds = [];\\n            for (var i = 0; i < object.streamIds.length; ++i)\\n                message.streamIds[i] = object.streamIds[i] >>> 0;\\n        }\\n        if (object.groupIds) {\\n            if (!Array.isArray(object.groupIds))\\n                throw TypeError(\\\".SdkPauseResumeFrame.groupIds: array expected\\\");\\n            message.groupIds = [];\\n            for (var i = 0; i < object.groupIds.length; ++i)\\n                message.groupIds[i] = object.groupIds[i] >>> 0;\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkPauseResumeFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkPauseResumeFrame\\n     * @static\\n     * @param {SdkPauseResumeFrame} message SdkPauseResumeFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkPauseResumeFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.streamIds = [];\\n            object.groupIds = [];\\n        }\\n        if (message.streamIds && message.streamIds.length) {\\n            object.streamIds = [];\\n            for (var j = 0; j < message.streamIds.length; ++j)\\n                object.streamIds[j] = message.streamIds[j];\\n        }\\n        if (message.groupIds && message.groupIds.length) {\\n            object.groupIds = [];\\n            for (var j = 0; j < message.groupIds.length; ++j)\\n                object.groupIds[j] = message.groupIds[j];\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkPauseResumeFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkPauseResumeFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkPauseResumeFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkPauseResumeFrame;\\n})();\\n\\n$root.SdkBitrateFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkBitrateFrame.\\n     * @exports ISdkBitrateFrame\\n     * @interface ISdkBitrateFrame\\n     * @property {Array.<ISdkBitrate>|null} [bitrates] SdkBitrateFrame bitrates\\n     */\\n\\n    /**\\n     * Constructs a new SdkBitrateFrame.\\n     * @exports SdkBitrateFrame\\n     * @classdesc Represents a SdkBitrateFrame.\\n     * @implements ISdkBitrateFrame\\n     * @constructor\\n     * @param {ISdkBitrateFrame=} [properties] Properties to set\\n     */\\n    function SdkBitrateFrame(properties) {\\n        this.bitrates = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkBitrateFrame bitrates.\\n     * @member {Array.<ISdkBitrate>} bitrates\\n     * @memberof SdkBitrateFrame\\n     * @instance\\n     */\\n    SdkBitrateFrame.prototype.bitrates = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkBitrateFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {ISdkBitrateFrame=} [properties] Properties to set\\n     * @returns {SdkBitrateFrame} SdkBitrateFrame instance\\n     */\\n    SdkBitrateFrame.create = function create(properties) {\\n        return new SdkBitrateFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkBitrateFrame message. Does not implicitly {@link SdkBitrateFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {ISdkBitrateFrame} message SdkBitrateFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkBitrateFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.bitrates != null && message.bitrates.length)\\n            for (var i = 0; i < message.bitrates.length; ++i)\\n                $root.SdkBitrate.encode(message.bitrates[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkBitrateFrame message, length delimited. Does not implicitly {@link SdkBitrateFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {ISdkBitrateFrame} message SdkBitrateFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkBitrateFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkBitrateFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkBitrateFrame} SdkBitrateFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkBitrateFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkBitrateFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.bitrates && message.bitrates.length))\\n                    message.bitrates = [];\\n                message.bitrates.push($root.SdkBitrate.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkBitrateFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkBitrateFrame} SdkBitrateFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkBitrateFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkBitrateFrame message.\\n     * @function verify\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkBitrateFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.bitrates != null && message.hasOwnProperty(\\\"bitrates\\\")) {\\n            if (!Array.isArray(message.bitrates))\\n                return \\\"bitrates: array expected\\\";\\n            for (var i = 0; i < message.bitrates.length; ++i) {\\n                var error = $root.SdkBitrate.verify(message.bitrates[i]);\\n                if (error)\\n                    return \\\"bitrates.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkBitrateFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkBitrateFrame} SdkBitrateFrame\\n     */\\n    SdkBitrateFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkBitrateFrame)\\n            return object;\\n        var message = new $root.SdkBitrateFrame();\\n        if (object.bitrates) {\\n            if (!Array.isArray(object.bitrates))\\n                throw TypeError(\\\".SdkBitrateFrame.bitrates: array expected\\\");\\n            message.bitrates = [];\\n            for (var i = 0; i < object.bitrates.length; ++i) {\\n                if (typeof object.bitrates[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkBitrateFrame.bitrates: object expected\\\");\\n                message.bitrates[i] = $root.SdkBitrate.fromObject(object.bitrates[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkBitrateFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkBitrateFrame\\n     * @static\\n     * @param {SdkBitrateFrame} message SdkBitrateFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkBitrateFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.bitrates = [];\\n        if (message.bitrates && message.bitrates.length) {\\n            object.bitrates = [];\\n            for (var j = 0; j < message.bitrates.length; ++j)\\n                object.bitrates[j] = $root.SdkBitrate.toObject(message.bitrates[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkBitrateFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkBitrateFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkBitrateFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkBitrateFrame;\\n})();\\n\\n$root.SdkStreamDescriptor = (function() {\\n\\n    /**\\n     * Properties of a SdkStreamDescriptor.\\n     * @exports ISdkStreamDescriptor\\n     * @interface ISdkStreamDescriptor\\n     * @property {number|null} [streamId] SdkStreamDescriptor streamId\\n     * @property {number|null} [framerate] SdkStreamDescriptor framerate\\n     * @property {number|null} [maxBitrateKbps] SdkStreamDescriptor maxBitrateKbps\\n     * @property {string|null} [trackLabel] SdkStreamDescriptor trackLabel\\n     * @property {number|null} [groupId] SdkStreamDescriptor groupId\\n     * @property {number|null} [avgBitrateBps] SdkStreamDescriptor avgBitrateBps\\n     * @property {string|null} [attendeeId] SdkStreamDescriptor attendeeId\\n     * @property {SdkStreamMediaType|null} [mediaType] SdkStreamDescriptor mediaType\\n     * @property {string|null} [externalUserId] SdkStreamDescriptor externalUserId\\n     */\\n\\n    /**\\n     * Constructs a new SdkStreamDescriptor.\\n     * @exports SdkStreamDescriptor\\n     * @classdesc Represents a SdkStreamDescriptor.\\n     * @implements ISdkStreamDescriptor\\n     * @constructor\\n     * @param {ISdkStreamDescriptor=} [properties] Properties to set\\n     */\\n    function SdkStreamDescriptor(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkStreamDescriptor streamId.\\n     * @member {number} streamId\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.streamId = 0;\\n\\n    /**\\n     * SdkStreamDescriptor framerate.\\n     * @member {number} framerate\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.framerate = 0;\\n\\n    /**\\n     * SdkStreamDescriptor maxBitrateKbps.\\n     * @member {number} maxBitrateKbps\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.maxBitrateKbps = 0;\\n\\n    /**\\n     * SdkStreamDescriptor trackLabel.\\n     * @member {string} trackLabel\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.trackLabel = \\\"\\\";\\n\\n    /**\\n     * SdkStreamDescriptor groupId.\\n     * @member {number} groupId\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.groupId = 0;\\n\\n    /**\\n     * SdkStreamDescriptor avgBitrateBps.\\n     * @member {number} avgBitrateBps\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.avgBitrateBps = 0;\\n\\n    /**\\n     * SdkStreamDescriptor attendeeId.\\n     * @member {string} attendeeId\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.attendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkStreamDescriptor mediaType.\\n     * @member {SdkStreamMediaType} mediaType\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.mediaType = 1;\\n\\n    /**\\n     * SdkStreamDescriptor externalUserId.\\n     * @member {string} externalUserId\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     */\\n    SdkStreamDescriptor.prototype.externalUserId = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkStreamDescriptor instance using the specified properties.\\n     * @function create\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {ISdkStreamDescriptor=} [properties] Properties to set\\n     * @returns {SdkStreamDescriptor} SdkStreamDescriptor instance\\n     */\\n    SdkStreamDescriptor.create = function create(properties) {\\n        return new SdkStreamDescriptor(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamDescriptor message. Does not implicitly {@link SdkStreamDescriptor.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {ISdkStreamDescriptor} message SdkStreamDescriptor message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamDescriptor.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.streamId != null && Object.hasOwnProperty.call(message, \\\"streamId\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.streamId);\\n        if (message.framerate != null && Object.hasOwnProperty.call(message, \\\"framerate\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.framerate);\\n        if (message.maxBitrateKbps != null && Object.hasOwnProperty.call(message, \\\"maxBitrateKbps\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.maxBitrateKbps);\\n        if (message.trackLabel != null && Object.hasOwnProperty.call(message, \\\"trackLabel\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.trackLabel);\\n        if (message.groupId != null && Object.hasOwnProperty.call(message, \\\"groupId\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.groupId);\\n        if (message.avgBitrateBps != null && Object.hasOwnProperty.call(message, \\\"avgBitrateBps\\\"))\\n            writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.avgBitrateBps);\\n        if (message.attendeeId != null && Object.hasOwnProperty.call(message, \\\"attendeeId\\\"))\\n            writer.uint32(/* id 8, wireType 2 =*/66).string(message.attendeeId);\\n        if (message.mediaType != null && Object.hasOwnProperty.call(message, \\\"mediaType\\\"))\\n            writer.uint32(/* id 9, wireType 0 =*/72).int32(message.mediaType);\\n        if (message.externalUserId != null && Object.hasOwnProperty.call(message, \\\"externalUserId\\\"))\\n            writer.uint32(/* id 10, wireType 2 =*/82).string(message.externalUserId);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamDescriptor message, length delimited. Does not implicitly {@link SdkStreamDescriptor.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {ISdkStreamDescriptor} message SdkStreamDescriptor message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamDescriptor.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamDescriptor message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkStreamDescriptor} SdkStreamDescriptor\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamDescriptor.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkStreamDescriptor();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.streamId = reader.uint32();\\n                break;\\n            case 2:\\n                message.framerate = reader.uint32();\\n                break;\\n            case 3:\\n                message.maxBitrateKbps = reader.uint32();\\n                break;\\n            case 4:\\n                message.trackLabel = reader.string();\\n                break;\\n            case 6:\\n                message.groupId = reader.uint32();\\n                break;\\n            case 7:\\n                message.avgBitrateBps = reader.uint32();\\n                break;\\n            case 8:\\n                message.attendeeId = reader.string();\\n                break;\\n            case 9:\\n                message.mediaType = reader.int32();\\n                break;\\n            case 10:\\n                message.externalUserId = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamDescriptor message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkStreamDescriptor} SdkStreamDescriptor\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamDescriptor.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkStreamDescriptor message.\\n     * @function verify\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkStreamDescriptor.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            if (!$util.isInteger(message.streamId))\\n                return \\\"streamId: integer expected\\\";\\n        if (message.framerate != null && message.hasOwnProperty(\\\"framerate\\\"))\\n            if (!$util.isInteger(message.framerate))\\n                return \\\"framerate: integer expected\\\";\\n        if (message.maxBitrateKbps != null && message.hasOwnProperty(\\\"maxBitrateKbps\\\"))\\n            if (!$util.isInteger(message.maxBitrateKbps))\\n                return \\\"maxBitrateKbps: integer expected\\\";\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            if (!$util.isString(message.trackLabel))\\n                return \\\"trackLabel: string expected\\\";\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            if (!$util.isInteger(message.groupId))\\n                return \\\"groupId: integer expected\\\";\\n        if (message.avgBitrateBps != null && message.hasOwnProperty(\\\"avgBitrateBps\\\"))\\n            if (!$util.isInteger(message.avgBitrateBps))\\n                return \\\"avgBitrateBps: integer expected\\\";\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            if (!$util.isString(message.attendeeId))\\n                return \\\"attendeeId: string expected\\\";\\n        if (message.mediaType != null && message.hasOwnProperty(\\\"mediaType\\\"))\\n            switch (message.mediaType) {\\n            default:\\n                return \\\"mediaType: enum value expected\\\";\\n            case 1:\\n            case 2:\\n                break;\\n            }\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            if (!$util.isString(message.externalUserId))\\n                return \\\"externalUserId: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkStreamDescriptor message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkStreamDescriptor} SdkStreamDescriptor\\n     */\\n    SdkStreamDescriptor.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkStreamDescriptor)\\n            return object;\\n        var message = new $root.SdkStreamDescriptor();\\n        if (object.streamId != null)\\n            message.streamId = object.streamId >>> 0;\\n        if (object.framerate != null)\\n            message.framerate = object.framerate >>> 0;\\n        if (object.maxBitrateKbps != null)\\n            message.maxBitrateKbps = object.maxBitrateKbps >>> 0;\\n        if (object.trackLabel != null)\\n            message.trackLabel = String(object.trackLabel);\\n        if (object.groupId != null)\\n            message.groupId = object.groupId >>> 0;\\n        if (object.avgBitrateBps != null)\\n            message.avgBitrateBps = object.avgBitrateBps >>> 0;\\n        if (object.attendeeId != null)\\n            message.attendeeId = String(object.attendeeId);\\n        switch (object.mediaType) {\\n        case \\\"AUDIO\\\":\\n        case 1:\\n            message.mediaType = 1;\\n            break;\\n        case \\\"VIDEO\\\":\\n        case 2:\\n            message.mediaType = 2;\\n            break;\\n        }\\n        if (object.externalUserId != null)\\n            message.externalUserId = String(object.externalUserId);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkStreamDescriptor message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkStreamDescriptor\\n     * @static\\n     * @param {SdkStreamDescriptor} message SdkStreamDescriptor\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkStreamDescriptor.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.streamId = 0;\\n            object.framerate = 0;\\n            object.maxBitrateKbps = 0;\\n            object.trackLabel = \\\"\\\";\\n            object.groupId = 0;\\n            object.avgBitrateBps = 0;\\n            object.attendeeId = \\\"\\\";\\n            object.mediaType = options.enums === String ? \\\"AUDIO\\\" : 1;\\n            object.externalUserId = \\\"\\\";\\n        }\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            object.streamId = message.streamId;\\n        if (message.framerate != null && message.hasOwnProperty(\\\"framerate\\\"))\\n            object.framerate = message.framerate;\\n        if (message.maxBitrateKbps != null && message.hasOwnProperty(\\\"maxBitrateKbps\\\"))\\n            object.maxBitrateKbps = message.maxBitrateKbps;\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            object.trackLabel = message.trackLabel;\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            object.groupId = message.groupId;\\n        if (message.avgBitrateBps != null && message.hasOwnProperty(\\\"avgBitrateBps\\\"))\\n            object.avgBitrateBps = message.avgBitrateBps;\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            object.attendeeId = message.attendeeId;\\n        if (message.mediaType != null && message.hasOwnProperty(\\\"mediaType\\\"))\\n            object.mediaType = options.enums === String ? $root.SdkStreamMediaType[message.mediaType] : message.mediaType;\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            object.externalUserId = message.externalUserId;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkStreamDescriptor to JSON.\\n     * @function toJSON\\n     * @memberof SdkStreamDescriptor\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkStreamDescriptor.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkStreamDescriptor;\\n})();\\n\\n$root.SdkStreamAllocation = (function() {\\n\\n    /**\\n     * Properties of a SdkStreamAllocation.\\n     * @exports ISdkStreamAllocation\\n     * @interface ISdkStreamAllocation\\n     * @property {string|null} [trackLabel] SdkStreamAllocation trackLabel\\n     * @property {number|null} [streamId] SdkStreamAllocation streamId\\n     * @property {number|null} [groupId] SdkStreamAllocation groupId\\n     */\\n\\n    /**\\n     * Constructs a new SdkStreamAllocation.\\n     * @exports SdkStreamAllocation\\n     * @classdesc Represents a SdkStreamAllocation.\\n     * @implements ISdkStreamAllocation\\n     * @constructor\\n     * @param {ISdkStreamAllocation=} [properties] Properties to set\\n     */\\n    function SdkStreamAllocation(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkStreamAllocation trackLabel.\\n     * @member {string} trackLabel\\n     * @memberof SdkStreamAllocation\\n     * @instance\\n     */\\n    SdkStreamAllocation.prototype.trackLabel = \\\"\\\";\\n\\n    /**\\n     * SdkStreamAllocation streamId.\\n     * @member {number} streamId\\n     * @memberof SdkStreamAllocation\\n     * @instance\\n     */\\n    SdkStreamAllocation.prototype.streamId = 0;\\n\\n    /**\\n     * SdkStreamAllocation groupId.\\n     * @member {number} groupId\\n     * @memberof SdkStreamAllocation\\n     * @instance\\n     */\\n    SdkStreamAllocation.prototype.groupId = 0;\\n\\n    /**\\n     * Creates a new SdkStreamAllocation instance using the specified properties.\\n     * @function create\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {ISdkStreamAllocation=} [properties] Properties to set\\n     * @returns {SdkStreamAllocation} SdkStreamAllocation instance\\n     */\\n    SdkStreamAllocation.create = function create(properties) {\\n        return new SdkStreamAllocation(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamAllocation message. Does not implicitly {@link SdkStreamAllocation.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {ISdkStreamAllocation} message SdkStreamAllocation message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamAllocation.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.trackLabel != null && Object.hasOwnProperty.call(message, \\\"trackLabel\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.trackLabel);\\n        if (message.streamId != null && Object.hasOwnProperty.call(message, \\\"streamId\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.streamId);\\n        if (message.groupId != null && Object.hasOwnProperty.call(message, \\\"groupId\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.groupId);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamAllocation message, length delimited. Does not implicitly {@link SdkStreamAllocation.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {ISdkStreamAllocation} message SdkStreamAllocation message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamAllocation.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamAllocation message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkStreamAllocation} SdkStreamAllocation\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamAllocation.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkStreamAllocation();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.trackLabel = reader.string();\\n                break;\\n            case 2:\\n                message.streamId = reader.uint32();\\n                break;\\n            case 3:\\n                message.groupId = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamAllocation message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkStreamAllocation} SdkStreamAllocation\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamAllocation.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkStreamAllocation message.\\n     * @function verify\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkStreamAllocation.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            if (!$util.isString(message.trackLabel))\\n                return \\\"trackLabel: string expected\\\";\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            if (!$util.isInteger(message.streamId))\\n                return \\\"streamId: integer expected\\\";\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            if (!$util.isInteger(message.groupId))\\n                return \\\"groupId: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkStreamAllocation message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkStreamAllocation} SdkStreamAllocation\\n     */\\n    SdkStreamAllocation.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkStreamAllocation)\\n            return object;\\n        var message = new $root.SdkStreamAllocation();\\n        if (object.trackLabel != null)\\n            message.trackLabel = String(object.trackLabel);\\n        if (object.streamId != null)\\n            message.streamId = object.streamId >>> 0;\\n        if (object.groupId != null)\\n            message.groupId = object.groupId >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkStreamAllocation message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkStreamAllocation\\n     * @static\\n     * @param {SdkStreamAllocation} message SdkStreamAllocation\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkStreamAllocation.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.trackLabel = \\\"\\\";\\n            object.streamId = 0;\\n            object.groupId = 0;\\n        }\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            object.trackLabel = message.trackLabel;\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            object.streamId = message.streamId;\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            object.groupId = message.groupId;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkStreamAllocation to JSON.\\n     * @function toJSON\\n     * @memberof SdkStreamAllocation\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkStreamAllocation.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkStreamAllocation;\\n})();\\n\\n$root.SdkTrackMapping = (function() {\\n\\n    /**\\n     * Properties of a SdkTrackMapping.\\n     * @exports ISdkTrackMapping\\n     * @interface ISdkTrackMapping\\n     * @property {number|null} [streamId] SdkTrackMapping streamId\\n     * @property {number|null} [ssrc] SdkTrackMapping ssrc\\n     * @property {string|null} [trackLabel] SdkTrackMapping trackLabel\\n     */\\n\\n    /**\\n     * Constructs a new SdkTrackMapping.\\n     * @exports SdkTrackMapping\\n     * @classdesc Represents a SdkTrackMapping.\\n     * @implements ISdkTrackMapping\\n     * @constructor\\n     * @param {ISdkTrackMapping=} [properties] Properties to set\\n     */\\n    function SdkTrackMapping(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTrackMapping streamId.\\n     * @member {number} streamId\\n     * @memberof SdkTrackMapping\\n     * @instance\\n     */\\n    SdkTrackMapping.prototype.streamId = 0;\\n\\n    /**\\n     * SdkTrackMapping ssrc.\\n     * @member {number} ssrc\\n     * @memberof SdkTrackMapping\\n     * @instance\\n     */\\n    SdkTrackMapping.prototype.ssrc = 0;\\n\\n    /**\\n     * SdkTrackMapping trackLabel.\\n     * @member {string} trackLabel\\n     * @memberof SdkTrackMapping\\n     * @instance\\n     */\\n    SdkTrackMapping.prototype.trackLabel = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkTrackMapping instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {ISdkTrackMapping=} [properties] Properties to set\\n     * @returns {SdkTrackMapping} SdkTrackMapping instance\\n     */\\n    SdkTrackMapping.create = function create(properties) {\\n        return new SdkTrackMapping(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTrackMapping message. Does not implicitly {@link SdkTrackMapping.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {ISdkTrackMapping} message SdkTrackMapping message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTrackMapping.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.streamId != null && Object.hasOwnProperty.call(message, \\\"streamId\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.streamId);\\n        if (message.ssrc != null && Object.hasOwnProperty.call(message, \\\"ssrc\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.ssrc);\\n        if (message.trackLabel != null && Object.hasOwnProperty.call(message, \\\"trackLabel\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.trackLabel);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTrackMapping message, length delimited. Does not implicitly {@link SdkTrackMapping.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {ISdkTrackMapping} message SdkTrackMapping message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTrackMapping.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTrackMapping message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTrackMapping} SdkTrackMapping\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTrackMapping.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTrackMapping();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.streamId = reader.uint32();\\n                break;\\n            case 2:\\n                message.ssrc = reader.uint32();\\n                break;\\n            case 3:\\n                message.trackLabel = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTrackMapping message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTrackMapping} SdkTrackMapping\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTrackMapping.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTrackMapping message.\\n     * @function verify\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTrackMapping.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            if (!$util.isInteger(message.streamId))\\n                return \\\"streamId: integer expected\\\";\\n        if (message.ssrc != null && message.hasOwnProperty(\\\"ssrc\\\"))\\n            if (!$util.isInteger(message.ssrc))\\n                return \\\"ssrc: integer expected\\\";\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            if (!$util.isString(message.trackLabel))\\n                return \\\"trackLabel: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTrackMapping message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTrackMapping} SdkTrackMapping\\n     */\\n    SdkTrackMapping.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTrackMapping)\\n            return object;\\n        var message = new $root.SdkTrackMapping();\\n        if (object.streamId != null)\\n            message.streamId = object.streamId >>> 0;\\n        if (object.ssrc != null)\\n            message.ssrc = object.ssrc >>> 0;\\n        if (object.trackLabel != null)\\n            message.trackLabel = String(object.trackLabel);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTrackMapping message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTrackMapping\\n     * @static\\n     * @param {SdkTrackMapping} message SdkTrackMapping\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTrackMapping.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.streamId = 0;\\n            object.ssrc = 0;\\n            object.trackLabel = \\\"\\\";\\n        }\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            object.streamId = message.streamId;\\n        if (message.ssrc != null && message.hasOwnProperty(\\\"ssrc\\\"))\\n            object.ssrc = message.ssrc;\\n        if (message.trackLabel != null && message.hasOwnProperty(\\\"trackLabel\\\"))\\n            object.trackLabel = message.trackLabel;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTrackMapping to JSON.\\n     * @function toJSON\\n     * @memberof SdkTrackMapping\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTrackMapping.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTrackMapping;\\n})();\\n\\n$root.SdkBitrate = (function() {\\n\\n    /**\\n     * Properties of a SdkBitrate.\\n     * @exports ISdkBitrate\\n     * @interface ISdkBitrate\\n     * @property {number|null} [sourceStreamId] SdkBitrate sourceStreamId\\n     * @property {number|null} [avgBitrateBps] SdkBitrate avgBitrateBps\\n     */\\n\\n    /**\\n     * Constructs a new SdkBitrate.\\n     * @exports SdkBitrate\\n     * @classdesc Represents a SdkBitrate.\\n     * @implements ISdkBitrate\\n     * @constructor\\n     * @param {ISdkBitrate=} [properties] Properties to set\\n     */\\n    function SdkBitrate(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkBitrate sourceStreamId.\\n     * @member {number} sourceStreamId\\n     * @memberof SdkBitrate\\n     * @instance\\n     */\\n    SdkBitrate.prototype.sourceStreamId = 0;\\n\\n    /**\\n     * SdkBitrate avgBitrateBps.\\n     * @member {number} avgBitrateBps\\n     * @memberof SdkBitrate\\n     * @instance\\n     */\\n    SdkBitrate.prototype.avgBitrateBps = 0;\\n\\n    /**\\n     * Creates a new SdkBitrate instance using the specified properties.\\n     * @function create\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {ISdkBitrate=} [properties] Properties to set\\n     * @returns {SdkBitrate} SdkBitrate instance\\n     */\\n    SdkBitrate.create = function create(properties) {\\n        return new SdkBitrate(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkBitrate message. Does not implicitly {@link SdkBitrate.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {ISdkBitrate} message SdkBitrate message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkBitrate.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.sourceStreamId != null && Object.hasOwnProperty.call(message, \\\"sourceStreamId\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.sourceStreamId);\\n        if (message.avgBitrateBps != null && Object.hasOwnProperty.call(message, \\\"avgBitrateBps\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.avgBitrateBps);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkBitrate message, length delimited. Does not implicitly {@link SdkBitrate.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {ISdkBitrate} message SdkBitrate message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkBitrate.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkBitrate message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkBitrate} SdkBitrate\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkBitrate.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkBitrate();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.sourceStreamId = reader.uint32();\\n                break;\\n            case 2:\\n                message.avgBitrateBps = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkBitrate message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkBitrate} SdkBitrate\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkBitrate.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkBitrate message.\\n     * @function verify\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkBitrate.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.sourceStreamId != null && message.hasOwnProperty(\\\"sourceStreamId\\\"))\\n            if (!$util.isInteger(message.sourceStreamId))\\n                return \\\"sourceStreamId: integer expected\\\";\\n        if (message.avgBitrateBps != null && message.hasOwnProperty(\\\"avgBitrateBps\\\"))\\n            if (!$util.isInteger(message.avgBitrateBps))\\n                return \\\"avgBitrateBps: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkBitrate message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkBitrate} SdkBitrate\\n     */\\n    SdkBitrate.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkBitrate)\\n            return object;\\n        var message = new $root.SdkBitrate();\\n        if (object.sourceStreamId != null)\\n            message.sourceStreamId = object.sourceStreamId >>> 0;\\n        if (object.avgBitrateBps != null)\\n            message.avgBitrateBps = object.avgBitrateBps >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkBitrate message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkBitrate\\n     * @static\\n     * @param {SdkBitrate} message SdkBitrate\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkBitrate.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.sourceStreamId = 0;\\n            object.avgBitrateBps = 0;\\n        }\\n        if (message.sourceStreamId != null && message.hasOwnProperty(\\\"sourceStreamId\\\"))\\n            object.sourceStreamId = message.sourceStreamId;\\n        if (message.avgBitrateBps != null && message.hasOwnProperty(\\\"avgBitrateBps\\\"))\\n            object.avgBitrateBps = message.avgBitrateBps;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkBitrate to JSON.\\n     * @function toJSON\\n     * @memberof SdkBitrate\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkBitrate.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkBitrate;\\n})();\\n\\n$root.SdkAudioControlFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioControlFrame.\\n     * @exports ISdkAudioControlFrame\\n     * @interface ISdkAudioControlFrame\\n     * @property {boolean|null} [muted] SdkAudioControlFrame muted\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioControlFrame.\\n     * @exports SdkAudioControlFrame\\n     * @classdesc Represents a SdkAudioControlFrame.\\n     * @implements ISdkAudioControlFrame\\n     * @constructor\\n     * @param {ISdkAudioControlFrame=} [properties] Properties to set\\n     */\\n    function SdkAudioControlFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioControlFrame muted.\\n     * @member {boolean} muted\\n     * @memberof SdkAudioControlFrame\\n     * @instance\\n     */\\n    SdkAudioControlFrame.prototype.muted = false;\\n\\n    /**\\n     * Creates a new SdkAudioControlFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {ISdkAudioControlFrame=} [properties] Properties to set\\n     * @returns {SdkAudioControlFrame} SdkAudioControlFrame instance\\n     */\\n    SdkAudioControlFrame.create = function create(properties) {\\n        return new SdkAudioControlFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioControlFrame message. Does not implicitly {@link SdkAudioControlFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {ISdkAudioControlFrame} message SdkAudioControlFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioControlFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.muted != null && Object.hasOwnProperty.call(message, \\\"muted\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.muted);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioControlFrame message, length delimited. Does not implicitly {@link SdkAudioControlFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {ISdkAudioControlFrame} message SdkAudioControlFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioControlFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioControlFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioControlFrame} SdkAudioControlFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioControlFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioControlFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.muted = reader.bool();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioControlFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioControlFrame} SdkAudioControlFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioControlFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioControlFrame message.\\n     * @function verify\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioControlFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            if (typeof message.muted !== \\\"boolean\\\")\\n                return \\\"muted: boolean expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioControlFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioControlFrame} SdkAudioControlFrame\\n     */\\n    SdkAudioControlFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioControlFrame)\\n            return object;\\n        var message = new $root.SdkAudioControlFrame();\\n        if (object.muted != null)\\n            message.muted = Boolean(object.muted);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioControlFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioControlFrame\\n     * @static\\n     * @param {SdkAudioControlFrame} message SdkAudioControlFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioControlFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults)\\n            object.muted = false;\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            object.muted = message.muted;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioControlFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioControlFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioControlFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioControlFrame;\\n})();\\n\\n$root.SdkAudioMetadataFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioMetadataFrame.\\n     * @exports ISdkAudioMetadataFrame\\n     * @interface ISdkAudioMetadataFrame\\n     * @property {Array.<ISdkAudioAttendeeState>|null} [attendeeStates] SdkAudioMetadataFrame attendeeStates\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioMetadataFrame.\\n     * @exports SdkAudioMetadataFrame\\n     * @classdesc Represents a SdkAudioMetadataFrame.\\n     * @implements ISdkAudioMetadataFrame\\n     * @constructor\\n     * @param {ISdkAudioMetadataFrame=} [properties] Properties to set\\n     */\\n    function SdkAudioMetadataFrame(properties) {\\n        this.attendeeStates = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioMetadataFrame attendeeStates.\\n     * @member {Array.<ISdkAudioAttendeeState>} attendeeStates\\n     * @memberof SdkAudioMetadataFrame\\n     * @instance\\n     */\\n    SdkAudioMetadataFrame.prototype.attendeeStates = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkAudioMetadataFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {ISdkAudioMetadataFrame=} [properties] Properties to set\\n     * @returns {SdkAudioMetadataFrame} SdkAudioMetadataFrame instance\\n     */\\n    SdkAudioMetadataFrame.create = function create(properties) {\\n        return new SdkAudioMetadataFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioMetadataFrame message. Does not implicitly {@link SdkAudioMetadataFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {ISdkAudioMetadataFrame} message SdkAudioMetadataFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioMetadataFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.attendeeStates != null && message.attendeeStates.length)\\n            for (var i = 0; i < message.attendeeStates.length; ++i)\\n                $root.SdkAudioAttendeeState.encode(message.attendeeStates[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioMetadataFrame message, length delimited. Does not implicitly {@link SdkAudioMetadataFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {ISdkAudioMetadataFrame} message SdkAudioMetadataFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioMetadataFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioMetadataFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioMetadataFrame} SdkAudioMetadataFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioMetadataFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioMetadataFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.attendeeStates && message.attendeeStates.length))\\n                    message.attendeeStates = [];\\n                message.attendeeStates.push($root.SdkAudioAttendeeState.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioMetadataFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioMetadataFrame} SdkAudioMetadataFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioMetadataFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioMetadataFrame message.\\n     * @function verify\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioMetadataFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.attendeeStates != null && message.hasOwnProperty(\\\"attendeeStates\\\")) {\\n            if (!Array.isArray(message.attendeeStates))\\n                return \\\"attendeeStates: array expected\\\";\\n            for (var i = 0; i < message.attendeeStates.length; ++i) {\\n                var error = $root.SdkAudioAttendeeState.verify(message.attendeeStates[i]);\\n                if (error)\\n                    return \\\"attendeeStates.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioMetadataFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioMetadataFrame} SdkAudioMetadataFrame\\n     */\\n    SdkAudioMetadataFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioMetadataFrame)\\n            return object;\\n        var message = new $root.SdkAudioMetadataFrame();\\n        if (object.attendeeStates) {\\n            if (!Array.isArray(object.attendeeStates))\\n                throw TypeError(\\\".SdkAudioMetadataFrame.attendeeStates: array expected\\\");\\n            message.attendeeStates = [];\\n            for (var i = 0; i < object.attendeeStates.length; ++i) {\\n                if (typeof object.attendeeStates[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkAudioMetadataFrame.attendeeStates: object expected\\\");\\n                message.attendeeStates[i] = $root.SdkAudioAttendeeState.fromObject(object.attendeeStates[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioMetadataFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioMetadataFrame\\n     * @static\\n     * @param {SdkAudioMetadataFrame} message SdkAudioMetadataFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioMetadataFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.attendeeStates = [];\\n        if (message.attendeeStates && message.attendeeStates.length) {\\n            object.attendeeStates = [];\\n            for (var j = 0; j < message.attendeeStates.length; ++j)\\n                object.attendeeStates[j] = $root.SdkAudioAttendeeState.toObject(message.attendeeStates[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioMetadataFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioMetadataFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioMetadataFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioMetadataFrame;\\n})();\\n\\n$root.SdkAudioAttendeeState = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioAttendeeState.\\n     * @exports ISdkAudioAttendeeState\\n     * @interface ISdkAudioAttendeeState\\n     * @property {number|null} [audioStreamId] SdkAudioAttendeeState audioStreamId\\n     * @property {number|null} [volume] SdkAudioAttendeeState volume\\n     * @property {boolean|null} [muted] SdkAudioAttendeeState muted\\n     * @property {number|null} [signalStrength] SdkAudioAttendeeState signalStrength\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioAttendeeState.\\n     * @exports SdkAudioAttendeeState\\n     * @classdesc Represents a SdkAudioAttendeeState.\\n     * @implements ISdkAudioAttendeeState\\n     * @constructor\\n     * @param {ISdkAudioAttendeeState=} [properties] Properties to set\\n     */\\n    function SdkAudioAttendeeState(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioAttendeeState audioStreamId.\\n     * @member {number} audioStreamId\\n     * @memberof SdkAudioAttendeeState\\n     * @instance\\n     */\\n    SdkAudioAttendeeState.prototype.audioStreamId = 0;\\n\\n    /**\\n     * SdkAudioAttendeeState volume.\\n     * @member {number} volume\\n     * @memberof SdkAudioAttendeeState\\n     * @instance\\n     */\\n    SdkAudioAttendeeState.prototype.volume = 0;\\n\\n    /**\\n     * SdkAudioAttendeeState muted.\\n     * @member {boolean} muted\\n     * @memberof SdkAudioAttendeeState\\n     * @instance\\n     */\\n    SdkAudioAttendeeState.prototype.muted = false;\\n\\n    /**\\n     * SdkAudioAttendeeState signalStrength.\\n     * @member {number} signalStrength\\n     * @memberof SdkAudioAttendeeState\\n     * @instance\\n     */\\n    SdkAudioAttendeeState.prototype.signalStrength = 0;\\n\\n    /**\\n     * Creates a new SdkAudioAttendeeState instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {ISdkAudioAttendeeState=} [properties] Properties to set\\n     * @returns {SdkAudioAttendeeState} SdkAudioAttendeeState instance\\n     */\\n    SdkAudioAttendeeState.create = function create(properties) {\\n        return new SdkAudioAttendeeState(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioAttendeeState message. Does not implicitly {@link SdkAudioAttendeeState.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {ISdkAudioAttendeeState} message SdkAudioAttendeeState message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioAttendeeState.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.audioStreamId != null && Object.hasOwnProperty.call(message, \\\"audioStreamId\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.audioStreamId);\\n        if (message.volume != null && Object.hasOwnProperty.call(message, \\\"volume\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.volume);\\n        if (message.muted != null && Object.hasOwnProperty.call(message, \\\"muted\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).bool(message.muted);\\n        if (message.signalStrength != null && Object.hasOwnProperty.call(message, \\\"signalStrength\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.signalStrength);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioAttendeeState message, length delimited. Does not implicitly {@link SdkAudioAttendeeState.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {ISdkAudioAttendeeState} message SdkAudioAttendeeState message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioAttendeeState.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioAttendeeState message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioAttendeeState} SdkAudioAttendeeState\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioAttendeeState.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioAttendeeState();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.audioStreamId = reader.uint32();\\n                break;\\n            case 2:\\n                message.volume = reader.uint32();\\n                break;\\n            case 3:\\n                message.muted = reader.bool();\\n                break;\\n            case 4:\\n                message.signalStrength = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioAttendeeState message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioAttendeeState} SdkAudioAttendeeState\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioAttendeeState.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioAttendeeState message.\\n     * @function verify\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioAttendeeState.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.audioStreamId != null && message.hasOwnProperty(\\\"audioStreamId\\\"))\\n            if (!$util.isInteger(message.audioStreamId))\\n                return \\\"audioStreamId: integer expected\\\";\\n        if (message.volume != null && message.hasOwnProperty(\\\"volume\\\"))\\n            if (!$util.isInteger(message.volume))\\n                return \\\"volume: integer expected\\\";\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            if (typeof message.muted !== \\\"boolean\\\")\\n                return \\\"muted: boolean expected\\\";\\n        if (message.signalStrength != null && message.hasOwnProperty(\\\"signalStrength\\\"))\\n            if (!$util.isInteger(message.signalStrength))\\n                return \\\"signalStrength: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioAttendeeState message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioAttendeeState} SdkAudioAttendeeState\\n     */\\n    SdkAudioAttendeeState.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioAttendeeState)\\n            return object;\\n        var message = new $root.SdkAudioAttendeeState();\\n        if (object.audioStreamId != null)\\n            message.audioStreamId = object.audioStreamId >>> 0;\\n        if (object.volume != null)\\n            message.volume = object.volume >>> 0;\\n        if (object.muted != null)\\n            message.muted = Boolean(object.muted);\\n        if (object.signalStrength != null)\\n            message.signalStrength = object.signalStrength >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioAttendeeState message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioAttendeeState\\n     * @static\\n     * @param {SdkAudioAttendeeState} message SdkAudioAttendeeState\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioAttendeeState.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.audioStreamId = 0;\\n            object.volume = 0;\\n            object.muted = false;\\n            object.signalStrength = 0;\\n        }\\n        if (message.audioStreamId != null && message.hasOwnProperty(\\\"audioStreamId\\\"))\\n            object.audioStreamId = message.audioStreamId;\\n        if (message.volume != null && message.hasOwnProperty(\\\"volume\\\"))\\n            object.volume = message.volume;\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            object.muted = message.muted;\\n        if (message.signalStrength != null && message.hasOwnProperty(\\\"signalStrength\\\"))\\n            object.signalStrength = message.signalStrength;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioAttendeeState to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioAttendeeState\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioAttendeeState.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioAttendeeState;\\n})();\\n\\n$root.SdkAudioStreamIdInfoFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioStreamIdInfoFrame.\\n     * @exports ISdkAudioStreamIdInfoFrame\\n     * @interface ISdkAudioStreamIdInfoFrame\\n     * @property {Array.<ISdkAudioStreamIdInfo>|null} [streams] SdkAudioStreamIdInfoFrame streams\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioStreamIdInfoFrame.\\n     * @exports SdkAudioStreamIdInfoFrame\\n     * @classdesc Represents a SdkAudioStreamIdInfoFrame.\\n     * @implements ISdkAudioStreamIdInfoFrame\\n     * @constructor\\n     * @param {ISdkAudioStreamIdInfoFrame=} [properties] Properties to set\\n     */\\n    function SdkAudioStreamIdInfoFrame(properties) {\\n        this.streams = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioStreamIdInfoFrame streams.\\n     * @member {Array.<ISdkAudioStreamIdInfo>} streams\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfoFrame.prototype.streams = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkAudioStreamIdInfoFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {ISdkAudioStreamIdInfoFrame=} [properties] Properties to set\\n     * @returns {SdkAudioStreamIdInfoFrame} SdkAudioStreamIdInfoFrame instance\\n     */\\n    SdkAudioStreamIdInfoFrame.create = function create(properties) {\\n        return new SdkAudioStreamIdInfoFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStreamIdInfoFrame message. Does not implicitly {@link SdkAudioStreamIdInfoFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {ISdkAudioStreamIdInfoFrame} message SdkAudioStreamIdInfoFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStreamIdInfoFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.streams != null && message.streams.length)\\n            for (var i = 0; i < message.streams.length; ++i)\\n                $root.SdkAudioStreamIdInfo.encode(message.streams[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStreamIdInfoFrame message, length delimited. Does not implicitly {@link SdkAudioStreamIdInfoFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {ISdkAudioStreamIdInfoFrame} message SdkAudioStreamIdInfoFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStreamIdInfoFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStreamIdInfoFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioStreamIdInfoFrame} SdkAudioStreamIdInfoFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStreamIdInfoFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioStreamIdInfoFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.streams && message.streams.length))\\n                    message.streams = [];\\n                message.streams.push($root.SdkAudioStreamIdInfo.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStreamIdInfoFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioStreamIdInfoFrame} SdkAudioStreamIdInfoFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStreamIdInfoFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioStreamIdInfoFrame message.\\n     * @function verify\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioStreamIdInfoFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.streams != null && message.hasOwnProperty(\\\"streams\\\")) {\\n            if (!Array.isArray(message.streams))\\n                return \\\"streams: array expected\\\";\\n            for (var i = 0; i < message.streams.length; ++i) {\\n                var error = $root.SdkAudioStreamIdInfo.verify(message.streams[i]);\\n                if (error)\\n                    return \\\"streams.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioStreamIdInfoFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioStreamIdInfoFrame} SdkAudioStreamIdInfoFrame\\n     */\\n    SdkAudioStreamIdInfoFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioStreamIdInfoFrame)\\n            return object;\\n        var message = new $root.SdkAudioStreamIdInfoFrame();\\n        if (object.streams) {\\n            if (!Array.isArray(object.streams))\\n                throw TypeError(\\\".SdkAudioStreamIdInfoFrame.streams: array expected\\\");\\n            message.streams = [];\\n            for (var i = 0; i < object.streams.length; ++i) {\\n                if (typeof object.streams[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkAudioStreamIdInfoFrame.streams: object expected\\\");\\n                message.streams[i] = $root.SdkAudioStreamIdInfo.fromObject(object.streams[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioStreamIdInfoFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @static\\n     * @param {SdkAudioStreamIdInfoFrame} message SdkAudioStreamIdInfoFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioStreamIdInfoFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.streams = [];\\n        if (message.streams && message.streams.length) {\\n            object.streams = [];\\n            for (var j = 0; j < message.streams.length; ++j)\\n                object.streams[j] = $root.SdkAudioStreamIdInfo.toObject(message.streams[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioStreamIdInfoFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioStreamIdInfoFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioStreamIdInfoFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioStreamIdInfoFrame;\\n})();\\n\\n$root.SdkAudioStreamIdInfo = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioStreamIdInfo.\\n     * @exports ISdkAudioStreamIdInfo\\n     * @interface ISdkAudioStreamIdInfo\\n     * @property {number|null} [audioStreamId] SdkAudioStreamIdInfo audioStreamId\\n     * @property {string|null} [attendeeId] SdkAudioStreamIdInfo attendeeId\\n     * @property {boolean|null} [muted] SdkAudioStreamIdInfo muted\\n     * @property {string|null} [externalUserId] SdkAudioStreamIdInfo externalUserId\\n     * @property {boolean|null} [dropped] SdkAudioStreamIdInfo dropped\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioStreamIdInfo.\\n     * @exports SdkAudioStreamIdInfo\\n     * @classdesc Represents a SdkAudioStreamIdInfo.\\n     * @implements ISdkAudioStreamIdInfo\\n     * @constructor\\n     * @param {ISdkAudioStreamIdInfo=} [properties] Properties to set\\n     */\\n    function SdkAudioStreamIdInfo(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioStreamIdInfo audioStreamId.\\n     * @member {number} audioStreamId\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfo.prototype.audioStreamId = 0;\\n\\n    /**\\n     * SdkAudioStreamIdInfo attendeeId.\\n     * @member {string} attendeeId\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfo.prototype.attendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkAudioStreamIdInfo muted.\\n     * @member {boolean} muted\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfo.prototype.muted = false;\\n\\n    /**\\n     * SdkAudioStreamIdInfo externalUserId.\\n     * @member {string} externalUserId\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfo.prototype.externalUserId = \\\"\\\";\\n\\n    /**\\n     * SdkAudioStreamIdInfo dropped.\\n     * @member {boolean} dropped\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     */\\n    SdkAudioStreamIdInfo.prototype.dropped = false;\\n\\n    /**\\n     * Creates a new SdkAudioStreamIdInfo instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {ISdkAudioStreamIdInfo=} [properties] Properties to set\\n     * @returns {SdkAudioStreamIdInfo} SdkAudioStreamIdInfo instance\\n     */\\n    SdkAudioStreamIdInfo.create = function create(properties) {\\n        return new SdkAudioStreamIdInfo(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStreamIdInfo message. Does not implicitly {@link SdkAudioStreamIdInfo.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {ISdkAudioStreamIdInfo} message SdkAudioStreamIdInfo message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStreamIdInfo.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.audioStreamId != null && Object.hasOwnProperty.call(message, \\\"audioStreamId\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.audioStreamId);\\n        if (message.attendeeId != null && Object.hasOwnProperty.call(message, \\\"attendeeId\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.attendeeId);\\n        if (message.muted != null && Object.hasOwnProperty.call(message, \\\"muted\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).bool(message.muted);\\n        if (message.externalUserId != null && Object.hasOwnProperty.call(message, \\\"externalUserId\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.externalUserId);\\n        if (message.dropped != null && Object.hasOwnProperty.call(message, \\\"dropped\\\"))\\n            writer.uint32(/* id 5, wireType 0 =*/40).bool(message.dropped);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStreamIdInfo message, length delimited. Does not implicitly {@link SdkAudioStreamIdInfo.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {ISdkAudioStreamIdInfo} message SdkAudioStreamIdInfo message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStreamIdInfo.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStreamIdInfo message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioStreamIdInfo} SdkAudioStreamIdInfo\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStreamIdInfo.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioStreamIdInfo();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.audioStreamId = reader.uint32();\\n                break;\\n            case 2:\\n                message.attendeeId = reader.string();\\n                break;\\n            case 3:\\n                message.muted = reader.bool();\\n                break;\\n            case 4:\\n                message.externalUserId = reader.string();\\n                break;\\n            case 5:\\n                message.dropped = reader.bool();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStreamIdInfo message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioStreamIdInfo} SdkAudioStreamIdInfo\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStreamIdInfo.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioStreamIdInfo message.\\n     * @function verify\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioStreamIdInfo.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.audioStreamId != null && message.hasOwnProperty(\\\"audioStreamId\\\"))\\n            if (!$util.isInteger(message.audioStreamId))\\n                return \\\"audioStreamId: integer expected\\\";\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            if (!$util.isString(message.attendeeId))\\n                return \\\"attendeeId: string expected\\\";\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            if (typeof message.muted !== \\\"boolean\\\")\\n                return \\\"muted: boolean expected\\\";\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            if (!$util.isString(message.externalUserId))\\n                return \\\"externalUserId: string expected\\\";\\n        if (message.dropped != null && message.hasOwnProperty(\\\"dropped\\\"))\\n            if (typeof message.dropped !== \\\"boolean\\\")\\n                return \\\"dropped: boolean expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioStreamIdInfo message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioStreamIdInfo} SdkAudioStreamIdInfo\\n     */\\n    SdkAudioStreamIdInfo.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioStreamIdInfo)\\n            return object;\\n        var message = new $root.SdkAudioStreamIdInfo();\\n        if (object.audioStreamId != null)\\n            message.audioStreamId = object.audioStreamId >>> 0;\\n        if (object.attendeeId != null)\\n            message.attendeeId = String(object.attendeeId);\\n        if (object.muted != null)\\n            message.muted = Boolean(object.muted);\\n        if (object.externalUserId != null)\\n            message.externalUserId = String(object.externalUserId);\\n        if (object.dropped != null)\\n            message.dropped = Boolean(object.dropped);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioStreamIdInfo message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioStreamIdInfo\\n     * @static\\n     * @param {SdkAudioStreamIdInfo} message SdkAudioStreamIdInfo\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioStreamIdInfo.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.audioStreamId = 0;\\n            object.attendeeId = \\\"\\\";\\n            object.muted = false;\\n            object.externalUserId = \\\"\\\";\\n            object.dropped = false;\\n        }\\n        if (message.audioStreamId != null && message.hasOwnProperty(\\\"audioStreamId\\\"))\\n            object.audioStreamId = message.audioStreamId;\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            object.attendeeId = message.attendeeId;\\n        if (message.muted != null && message.hasOwnProperty(\\\"muted\\\"))\\n            object.muted = message.muted;\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            object.externalUserId = message.externalUserId;\\n        if (message.dropped != null && message.hasOwnProperty(\\\"dropped\\\"))\\n            object.dropped = message.dropped;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioStreamIdInfo to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioStreamIdInfo\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioStreamIdInfo.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioStreamIdInfo;\\n})();\\n\\n/**\\n * SdkPingPongType enum.\\n * @exports SdkPingPongType\\n * @enum {number}\\n * @property {number} PING=1 PING value\\n * @property {number} PONG=2 PONG value\\n */\\n$root.SdkPingPongType = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[1] = \\\"PING\\\"] = 1;\\n    values[valuesById[2] = \\\"PONG\\\"] = 2;\\n    return values;\\n})();\\n\\n$root.SdkPingPongFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkPingPongFrame.\\n     * @exports ISdkPingPongFrame\\n     * @interface ISdkPingPongFrame\\n     * @property {SdkPingPongType} type SdkPingPongFrame type\\n     * @property {number} pingId SdkPingPongFrame pingId\\n     */\\n\\n    /**\\n     * Constructs a new SdkPingPongFrame.\\n     * @exports SdkPingPongFrame\\n     * @classdesc Represents a SdkPingPongFrame.\\n     * @implements ISdkPingPongFrame\\n     * @constructor\\n     * @param {ISdkPingPongFrame=} [properties] Properties to set\\n     */\\n    function SdkPingPongFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkPingPongFrame type.\\n     * @member {SdkPingPongType} type\\n     * @memberof SdkPingPongFrame\\n     * @instance\\n     */\\n    SdkPingPongFrame.prototype.type = 1;\\n\\n    /**\\n     * SdkPingPongFrame pingId.\\n     * @member {number} pingId\\n     * @memberof SdkPingPongFrame\\n     * @instance\\n     */\\n    SdkPingPongFrame.prototype.pingId = 0;\\n\\n    /**\\n     * Creates a new SdkPingPongFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {ISdkPingPongFrame=} [properties] Properties to set\\n     * @returns {SdkPingPongFrame} SdkPingPongFrame instance\\n     */\\n    SdkPingPongFrame.create = function create(properties) {\\n        return new SdkPingPongFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPingPongFrame message. Does not implicitly {@link SdkPingPongFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {ISdkPingPongFrame} message SdkPingPongFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPingPongFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);\\n        writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.pingId);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPingPongFrame message, length delimited. Does not implicitly {@link SdkPingPongFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {ISdkPingPongFrame} message SdkPingPongFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPingPongFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkPingPongFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkPingPongFrame} SdkPingPongFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPingPongFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkPingPongFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.type = reader.int32();\\n                break;\\n            case 2:\\n                message.pingId = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        if (!message.hasOwnProperty(\\\"type\\\"))\\n            throw $util.ProtocolError(\\\"missing required 'type'\\\", { instance: message });\\n        if (!message.hasOwnProperty(\\\"pingId\\\"))\\n            throw $util.ProtocolError(\\\"missing required 'pingId'\\\", { instance: message });\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkPingPongFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkPingPongFrame} SdkPingPongFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPingPongFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkPingPongFrame message.\\n     * @function verify\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkPingPongFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        switch (message.type) {\\n        default:\\n            return \\\"type: enum value expected\\\";\\n        case 1:\\n        case 2:\\n            break;\\n        }\\n        if (!$util.isInteger(message.pingId))\\n            return \\\"pingId: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkPingPongFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkPingPongFrame} SdkPingPongFrame\\n     */\\n    SdkPingPongFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkPingPongFrame)\\n            return object;\\n        var message = new $root.SdkPingPongFrame();\\n        switch (object.type) {\\n        case \\\"PING\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"PONG\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        }\\n        if (object.pingId != null)\\n            message.pingId = object.pingId >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkPingPongFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkPingPongFrame\\n     * @static\\n     * @param {SdkPingPongFrame} message SdkPingPongFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkPingPongFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.type = options.enums === String ? \\\"PING\\\" : 1;\\n            object.pingId = 0;\\n        }\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkPingPongType[message.type] : message.type;\\n        if (message.pingId != null && message.hasOwnProperty(\\\"pingId\\\"))\\n            object.pingId = message.pingId;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkPingPongFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkPingPongFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkPingPongFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkPingPongFrame;\\n})();\\n\\n$root.SdkAudioStatusFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkAudioStatusFrame.\\n     * @exports ISdkAudioStatusFrame\\n     * @interface ISdkAudioStatusFrame\\n     * @property {number|null} [audioStatus] SdkAudioStatusFrame audioStatus\\n     */\\n\\n    /**\\n     * Constructs a new SdkAudioStatusFrame.\\n     * @exports SdkAudioStatusFrame\\n     * @classdesc Represents a SdkAudioStatusFrame.\\n     * @implements ISdkAudioStatusFrame\\n     * @constructor\\n     * @param {ISdkAudioStatusFrame=} [properties] Properties to set\\n     */\\n    function SdkAudioStatusFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkAudioStatusFrame audioStatus.\\n     * @member {number} audioStatus\\n     * @memberof SdkAudioStatusFrame\\n     * @instance\\n     */\\n    SdkAudioStatusFrame.prototype.audioStatus = 0;\\n\\n    /**\\n     * Creates a new SdkAudioStatusFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {ISdkAudioStatusFrame=} [properties] Properties to set\\n     * @returns {SdkAudioStatusFrame} SdkAudioStatusFrame instance\\n     */\\n    SdkAudioStatusFrame.create = function create(properties) {\\n        return new SdkAudioStatusFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStatusFrame message. Does not implicitly {@link SdkAudioStatusFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {ISdkAudioStatusFrame} message SdkAudioStatusFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStatusFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.audioStatus != null && Object.hasOwnProperty.call(message, \\\"audioStatus\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.audioStatus);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkAudioStatusFrame message, length delimited. Does not implicitly {@link SdkAudioStatusFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {ISdkAudioStatusFrame} message SdkAudioStatusFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkAudioStatusFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStatusFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkAudioStatusFrame} SdkAudioStatusFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStatusFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkAudioStatusFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.audioStatus = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkAudioStatusFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkAudioStatusFrame} SdkAudioStatusFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkAudioStatusFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkAudioStatusFrame message.\\n     * @function verify\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkAudioStatusFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.audioStatus != null && message.hasOwnProperty(\\\"audioStatus\\\"))\\n            if (!$util.isInteger(message.audioStatus))\\n                return \\\"audioStatus: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkAudioStatusFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkAudioStatusFrame} SdkAudioStatusFrame\\n     */\\n    SdkAudioStatusFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkAudioStatusFrame)\\n            return object;\\n        var message = new $root.SdkAudioStatusFrame();\\n        if (object.audioStatus != null)\\n            message.audioStatus = object.audioStatus >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkAudioStatusFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkAudioStatusFrame\\n     * @static\\n     * @param {SdkAudioStatusFrame} message SdkAudioStatusFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkAudioStatusFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults)\\n            object.audioStatus = 0;\\n        if (message.audioStatus != null && message.hasOwnProperty(\\\"audioStatus\\\"))\\n            object.audioStatus = message.audioStatus;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkAudioStatusFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkAudioStatusFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkAudioStatusFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkAudioStatusFrame;\\n})();\\n\\n$root.SdkMetric = (function() {\\n\\n    /**\\n     * Properties of a SdkMetric.\\n     * @exports ISdkMetric\\n     * @interface ISdkMetric\\n     * @property {SdkMetric.Type|null} [type] SdkMetric type\\n     * @property {number|null} [value] SdkMetric value\\n     */\\n\\n    /**\\n     * Constructs a new SdkMetric.\\n     * @exports SdkMetric\\n     * @classdesc Represents a SdkMetric.\\n     * @implements ISdkMetric\\n     * @constructor\\n     * @param {ISdkMetric=} [properties] Properties to set\\n     */\\n    function SdkMetric(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkMetric type.\\n     * @member {SdkMetric.Type} type\\n     * @memberof SdkMetric\\n     * @instance\\n     */\\n    SdkMetric.prototype.type = 1;\\n\\n    /**\\n     * SdkMetric value.\\n     * @member {number} value\\n     * @memberof SdkMetric\\n     * @instance\\n     */\\n    SdkMetric.prototype.value = 0;\\n\\n    /**\\n     * Creates a new SdkMetric instance using the specified properties.\\n     * @function create\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {ISdkMetric=} [properties] Properties to set\\n     * @returns {SdkMetric} SdkMetric instance\\n     */\\n    SdkMetric.create = function create(properties) {\\n        return new SdkMetric(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkMetric message. Does not implicitly {@link SdkMetric.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {ISdkMetric} message SdkMetric message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkMetric.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.type != null && Object.hasOwnProperty.call(message, \\\"type\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);\\n        if (message.value != null && Object.hasOwnProperty.call(message, \\\"value\\\"))\\n            writer.uint32(/* id 2, wireType 1 =*/17).double(message.value);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkMetric message, length delimited. Does not implicitly {@link SdkMetric.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {ISdkMetric} message SdkMetric message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkMetric.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkMetric message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkMetric} SdkMetric\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkMetric.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkMetric();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.type = reader.int32();\\n                break;\\n            case 2:\\n                message.value = reader.double();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkMetric message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkMetric} SdkMetric\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkMetric.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkMetric message.\\n     * @function verify\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkMetric.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            switch (message.type) {\\n            default:\\n                return \\\"type: enum value expected\\\";\\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            case 10:\\n            case 11:\\n            case 12:\\n            case 13:\\n            case 14:\\n            case 15:\\n            case 16:\\n            case 17:\\n            case 18:\\n            case 19:\\n            case 20:\\n            case 21:\\n            case 22:\\n            case 23:\\n            case 24:\\n            case 25:\\n            case 26:\\n            case 27:\\n            case 28:\\n            case 29:\\n            case 30:\\n            case 31:\\n            case 32:\\n            case 33:\\n            case 34:\\n            case 35:\\n            case 36:\\n            case 37:\\n            case 38:\\n            case 39:\\n            case 40:\\n            case 41:\\n            case 42:\\n            case 43:\\n            case 44:\\n            case 45:\\n            case 46:\\n            case 47:\\n            case 48:\\n            case 49:\\n            case 64:\\n            case 66:\\n            case 69:\\n            case 72:\\n            case 86:\\n            case 87:\\n            case 88:\\n            case 89:\\n                break;\\n            }\\n        if (message.value != null && message.hasOwnProperty(\\\"value\\\"))\\n            if (typeof message.value !== \\\"number\\\")\\n                return \\\"value: number expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkMetric message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkMetric} SdkMetric\\n     */\\n    SdkMetric.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkMetric)\\n            return object;\\n        var message = new $root.SdkMetric();\\n        switch (object.type) {\\n        case \\\"VIDEO_ACTUAL_ENCODER_BITRATE\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"VIDEO_AVAILABLE_SEND_BANDWIDTH\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        case \\\"VIDEO_RETRANSMIT_BITRATE\\\":\\n        case 3:\\n            message.type = 3;\\n            break;\\n        case \\\"VIDEO_AVAILABLE_RECEIVE_BANDWIDTH\\\":\\n        case 4:\\n            message.type = 4;\\n            break;\\n        case \\\"VIDEO_TARGET_ENCODER_BITRATE\\\":\\n        case 5:\\n            message.type = 5;\\n            break;\\n        case \\\"VIDEO_BUCKET_DELAY_MS\\\":\\n        case 6:\\n            message.type = 6;\\n            break;\\n        case \\\"STUN_RTT_MS\\\":\\n        case 7:\\n            message.type = 7;\\n            break;\\n        case \\\"SOCKET_DISCARDED_PPS\\\":\\n        case 8:\\n            message.type = 8;\\n            break;\\n        case \\\"RTC_MIC_JITTER_MS\\\":\\n        case 9:\\n            message.type = 9;\\n            break;\\n        case \\\"RTC_MIC_PPS\\\":\\n        case 10:\\n            message.type = 10;\\n            break;\\n        case \\\"RTC_MIC_FRACTION_PACKET_LOST_PERCENT\\\":\\n        case 11:\\n            message.type = 11;\\n            break;\\n        case \\\"RTC_MIC_BITRATE\\\":\\n        case 12:\\n            message.type = 12;\\n            break;\\n        case \\\"RTC_MIC_RTT_MS\\\":\\n        case 13:\\n            message.type = 13;\\n            break;\\n        case \\\"RTC_SPK_PPS\\\":\\n        case 14:\\n            message.type = 14;\\n            break;\\n        case \\\"RTC_SPK_FRACTION_PACKET_LOST_PERCENT\\\":\\n        case 15:\\n            message.type = 15;\\n            break;\\n        case \\\"RTC_SPK_JITTER_MS\\\":\\n        case 16:\\n            message.type = 16;\\n            break;\\n        case \\\"RTC_SPK_FRACTION_DECODER_LOSS_PERCENT\\\":\\n        case 17:\\n            message.type = 17;\\n            break;\\n        case \\\"RTC_SPK_BITRATE\\\":\\n        case 18:\\n            message.type = 18;\\n            break;\\n        case \\\"RTC_SPK_CURRENT_DELAY_MS\\\":\\n        case 19:\\n            message.type = 19;\\n            break;\\n        case \\\"RTC_SPK_JITTER_BUFFER_MS\\\":\\n        case 20:\\n            message.type = 20;\\n            break;\\n        case \\\"VIDEO_SENT_RTT_MS\\\":\\n        case 21:\\n            message.type = 21;\\n            break;\\n        case \\\"VIDEO_ENCODE_USAGE_PERCENT\\\":\\n        case 22:\\n            message.type = 22;\\n            break;\\n        case \\\"VIDEO_NACKS_RECEIVED\\\":\\n        case 23:\\n            message.type = 23;\\n            break;\\n        case \\\"VIDEO_PLIS_RECEIVED\\\":\\n        case 24:\\n            message.type = 24;\\n            break;\\n        case \\\"VIDEO_ENCODE_MS\\\":\\n        case 25:\\n            message.type = 25;\\n            break;\\n        case \\\"VIDEO_INPUT_FPS\\\":\\n        case 26:\\n            message.type = 26;\\n            break;\\n        case \\\"VIDEO_ENCODE_FPS\\\":\\n        case 27:\\n            message.type = 27;\\n            break;\\n        case \\\"VIDEO_SENT_FPS\\\":\\n        case 28:\\n            message.type = 28;\\n            break;\\n        case \\\"VIDEO_FIRS_RECEIVED\\\":\\n        case 29:\\n            message.type = 29;\\n            break;\\n        case \\\"VIDEO_SENT_PPS\\\":\\n        case 30:\\n            message.type = 30;\\n            break;\\n        case \\\"VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT\\\":\\n        case 31:\\n            message.type = 31;\\n            break;\\n        case \\\"VIDEO_SENT_BITRATE\\\":\\n        case 32:\\n            message.type = 32;\\n            break;\\n        case \\\"VIDEO_DROPPED_FPS\\\":\\n        case 33:\\n            message.type = 33;\\n            break;\\n        case \\\"VIDEO_TARGET_DELAY_MS\\\":\\n        case 34:\\n            message.type = 34;\\n            break;\\n        case \\\"VIDEO_DECODE_MS\\\":\\n        case 35:\\n            message.type = 35;\\n            break;\\n        case \\\"VIDEO_OUTPUT_FPS\\\":\\n        case 36:\\n            message.type = 36;\\n            break;\\n        case \\\"VIDEO_RECEIVED_PPS\\\":\\n        case 37:\\n            message.type = 37;\\n            break;\\n        case \\\"VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT\\\":\\n        case 38:\\n            message.type = 38;\\n            break;\\n        case \\\"VIDEO_RENDER_DELAY_MS\\\":\\n        case 39:\\n            message.type = 39;\\n            break;\\n        case \\\"VIDEO_RECEIVED_FPS\\\":\\n        case 40:\\n            message.type = 40;\\n            break;\\n        case \\\"VIDEO_DECODE_FPS\\\":\\n        case 41:\\n            message.type = 41;\\n            break;\\n        case \\\"VIDEO_NACKS_SENT\\\":\\n        case 42:\\n            message.type = 42;\\n            break;\\n        case \\\"VIDEO_FIRS_SENT\\\":\\n        case 43:\\n            message.type = 43;\\n            break;\\n        case \\\"VIDEO_RECEIVED_BITRATE\\\":\\n        case 44:\\n            message.type = 44;\\n            break;\\n        case \\\"VIDEO_CURRENT_DELAY_MS\\\":\\n        case 45:\\n            message.type = 45;\\n            break;\\n        case \\\"VIDEO_JITTER_BUFFER_MS\\\":\\n        case 46:\\n            message.type = 46;\\n            break;\\n        case \\\"VIDEO_DISCARDED_PPS\\\":\\n        case 47:\\n            message.type = 47;\\n            break;\\n        case \\\"VIDEO_PLIS_SENT\\\":\\n        case 48:\\n            message.type = 48;\\n            break;\\n        case \\\"VIDEO_RECEIVED_JITTER_MS\\\":\\n        case 49:\\n            message.type = 49;\\n            break;\\n        case \\\"VIDEO_ENCODE_HEIGHT\\\":\\n        case 64:\\n            message.type = 64;\\n            break;\\n        case \\\"VIDEO_SENT_QP_SUM\\\":\\n        case 66:\\n            message.type = 66;\\n            break;\\n        case \\\"VIDEO_DECODE_HEIGHT\\\":\\n        case 69:\\n            message.type = 69;\\n            break;\\n        case \\\"VIDEO_RECEIVED_QP_SUM\\\":\\n        case 72:\\n            message.type = 72;\\n            break;\\n        case \\\"VIDEO_ENCODE_WIDTH\\\":\\n        case 86:\\n            message.type = 86;\\n            break;\\n        case \\\"VIDEO_DECODE_WIDTH\\\":\\n        case 87:\\n            message.type = 87;\\n            break;\\n        case \\\"VIDEO_ENCODER_IS_HARDWARE\\\":\\n        case 88:\\n            message.type = 88;\\n            break;\\n        case \\\"VIDEO_DECODER_IS_HARDWARE\\\":\\n        case 89:\\n            message.type = 89;\\n            break;\\n        }\\n        if (object.value != null)\\n            message.value = Number(object.value);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkMetric message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkMetric\\n     * @static\\n     * @param {SdkMetric} message SdkMetric\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkMetric.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.type = options.enums === String ? \\\"VIDEO_ACTUAL_ENCODER_BITRATE\\\" : 1;\\n            object.value = 0;\\n        }\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkMetric.Type[message.type] : message.type;\\n        if (message.value != null && message.hasOwnProperty(\\\"value\\\"))\\n            object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkMetric to JSON.\\n     * @function toJSON\\n     * @memberof SdkMetric\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkMetric.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    /**\\n     * Type enum.\\n     * @name SdkMetric.Type\\n     * @enum {number}\\n     * @property {number} VIDEO_ACTUAL_ENCODER_BITRATE=1 VIDEO_ACTUAL_ENCODER_BITRATE value\\n     * @property {number} VIDEO_AVAILABLE_SEND_BANDWIDTH=2 VIDEO_AVAILABLE_SEND_BANDWIDTH value\\n     * @property {number} VIDEO_RETRANSMIT_BITRATE=3 VIDEO_RETRANSMIT_BITRATE value\\n     * @property {number} VIDEO_AVAILABLE_RECEIVE_BANDWIDTH=4 VIDEO_AVAILABLE_RECEIVE_BANDWIDTH value\\n     * @property {number} VIDEO_TARGET_ENCODER_BITRATE=5 VIDEO_TARGET_ENCODER_BITRATE value\\n     * @property {number} VIDEO_BUCKET_DELAY_MS=6 VIDEO_BUCKET_DELAY_MS value\\n     * @property {number} STUN_RTT_MS=7 STUN_RTT_MS value\\n     * @property {number} SOCKET_DISCARDED_PPS=8 SOCKET_DISCARDED_PPS value\\n     * @property {number} RTC_MIC_JITTER_MS=9 RTC_MIC_JITTER_MS value\\n     * @property {number} RTC_MIC_PPS=10 RTC_MIC_PPS value\\n     * @property {number} RTC_MIC_FRACTION_PACKET_LOST_PERCENT=11 RTC_MIC_FRACTION_PACKET_LOST_PERCENT value\\n     * @property {number} RTC_MIC_BITRATE=12 RTC_MIC_BITRATE value\\n     * @property {number} RTC_MIC_RTT_MS=13 RTC_MIC_RTT_MS value\\n     * @property {number} RTC_SPK_PPS=14 RTC_SPK_PPS value\\n     * @property {number} RTC_SPK_FRACTION_PACKET_LOST_PERCENT=15 RTC_SPK_FRACTION_PACKET_LOST_PERCENT value\\n     * @property {number} RTC_SPK_JITTER_MS=16 RTC_SPK_JITTER_MS value\\n     * @property {number} RTC_SPK_FRACTION_DECODER_LOSS_PERCENT=17 RTC_SPK_FRACTION_DECODER_LOSS_PERCENT value\\n     * @property {number} RTC_SPK_BITRATE=18 RTC_SPK_BITRATE value\\n     * @property {number} RTC_SPK_CURRENT_DELAY_MS=19 RTC_SPK_CURRENT_DELAY_MS value\\n     * @property {number} RTC_SPK_JITTER_BUFFER_MS=20 RTC_SPK_JITTER_BUFFER_MS value\\n     * @property {number} VIDEO_SENT_RTT_MS=21 VIDEO_SENT_RTT_MS value\\n     * @property {number} VIDEO_ENCODE_USAGE_PERCENT=22 VIDEO_ENCODE_USAGE_PERCENT value\\n     * @property {number} VIDEO_NACKS_RECEIVED=23 VIDEO_NACKS_RECEIVED value\\n     * @property {number} VIDEO_PLIS_RECEIVED=24 VIDEO_PLIS_RECEIVED value\\n     * @property {number} VIDEO_ENCODE_MS=25 VIDEO_ENCODE_MS value\\n     * @property {number} VIDEO_INPUT_FPS=26 VIDEO_INPUT_FPS value\\n     * @property {number} VIDEO_ENCODE_FPS=27 VIDEO_ENCODE_FPS value\\n     * @property {number} VIDEO_SENT_FPS=28 VIDEO_SENT_FPS value\\n     * @property {number} VIDEO_FIRS_RECEIVED=29 VIDEO_FIRS_RECEIVED value\\n     * @property {number} VIDEO_SENT_PPS=30 VIDEO_SENT_PPS value\\n     * @property {number} VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT=31 VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT value\\n     * @property {number} VIDEO_SENT_BITRATE=32 VIDEO_SENT_BITRATE value\\n     * @property {number} VIDEO_DROPPED_FPS=33 VIDEO_DROPPED_FPS value\\n     * @property {number} VIDEO_TARGET_DELAY_MS=34 VIDEO_TARGET_DELAY_MS value\\n     * @property {number} VIDEO_DECODE_MS=35 VIDEO_DECODE_MS value\\n     * @property {number} VIDEO_OUTPUT_FPS=36 VIDEO_OUTPUT_FPS value\\n     * @property {number} VIDEO_RECEIVED_PPS=37 VIDEO_RECEIVED_PPS value\\n     * @property {number} VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT=38 VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT value\\n     * @property {number} VIDEO_RENDER_DELAY_MS=39 VIDEO_RENDER_DELAY_MS value\\n     * @property {number} VIDEO_RECEIVED_FPS=40 VIDEO_RECEIVED_FPS value\\n     * @property {number} VIDEO_DECODE_FPS=41 VIDEO_DECODE_FPS value\\n     * @property {number} VIDEO_NACKS_SENT=42 VIDEO_NACKS_SENT value\\n     * @property {number} VIDEO_FIRS_SENT=43 VIDEO_FIRS_SENT value\\n     * @property {number} VIDEO_RECEIVED_BITRATE=44 VIDEO_RECEIVED_BITRATE value\\n     * @property {number} VIDEO_CURRENT_DELAY_MS=45 VIDEO_CURRENT_DELAY_MS value\\n     * @property {number} VIDEO_JITTER_BUFFER_MS=46 VIDEO_JITTER_BUFFER_MS value\\n     * @property {number} VIDEO_DISCARDED_PPS=47 VIDEO_DISCARDED_PPS value\\n     * @property {number} VIDEO_PLIS_SENT=48 VIDEO_PLIS_SENT value\\n     * @property {number} VIDEO_RECEIVED_JITTER_MS=49 VIDEO_RECEIVED_JITTER_MS value\\n     * @property {number} VIDEO_ENCODE_HEIGHT=64 VIDEO_ENCODE_HEIGHT value\\n     * @property {number} VIDEO_SENT_QP_SUM=66 VIDEO_SENT_QP_SUM value\\n     * @property {number} VIDEO_DECODE_HEIGHT=69 VIDEO_DECODE_HEIGHT value\\n     * @property {number} VIDEO_RECEIVED_QP_SUM=72 VIDEO_RECEIVED_QP_SUM value\\n     * @property {number} VIDEO_ENCODE_WIDTH=86 VIDEO_ENCODE_WIDTH value\\n     * @property {number} VIDEO_DECODE_WIDTH=87 VIDEO_DECODE_WIDTH value\\n     * @property {number} VIDEO_ENCODER_IS_HARDWARE=88 VIDEO_ENCODER_IS_HARDWARE value\\n     * @property {number} VIDEO_DECODER_IS_HARDWARE=89 VIDEO_DECODER_IS_HARDWARE value\\n     */\\n    SdkMetric.Type = (function() {\\n        var valuesById = {}, values = Object.create(valuesById);\\n        values[valuesById[1] = \\\"VIDEO_ACTUAL_ENCODER_BITRATE\\\"] = 1;\\n        values[valuesById[2] = \\\"VIDEO_AVAILABLE_SEND_BANDWIDTH\\\"] = 2;\\n        values[valuesById[3] = \\\"VIDEO_RETRANSMIT_BITRATE\\\"] = 3;\\n        values[valuesById[4] = \\\"VIDEO_AVAILABLE_RECEIVE_BANDWIDTH\\\"] = 4;\\n        values[valuesById[5] = \\\"VIDEO_TARGET_ENCODER_BITRATE\\\"] = 5;\\n        values[valuesById[6] = \\\"VIDEO_BUCKET_DELAY_MS\\\"] = 6;\\n        values[valuesById[7] = \\\"STUN_RTT_MS\\\"] = 7;\\n        values[valuesById[8] = \\\"SOCKET_DISCARDED_PPS\\\"] = 8;\\n        values[valuesById[9] = \\\"RTC_MIC_JITTER_MS\\\"] = 9;\\n        values[valuesById[10] = \\\"RTC_MIC_PPS\\\"] = 10;\\n        values[valuesById[11] = \\\"RTC_MIC_FRACTION_PACKET_LOST_PERCENT\\\"] = 11;\\n        values[valuesById[12] = \\\"RTC_MIC_BITRATE\\\"] = 12;\\n        values[valuesById[13] = \\\"RTC_MIC_RTT_MS\\\"] = 13;\\n        values[valuesById[14] = \\\"RTC_SPK_PPS\\\"] = 14;\\n        values[valuesById[15] = \\\"RTC_SPK_FRACTION_PACKET_LOST_PERCENT\\\"] = 15;\\n        values[valuesById[16] = \\\"RTC_SPK_JITTER_MS\\\"] = 16;\\n        values[valuesById[17] = \\\"RTC_SPK_FRACTION_DECODER_LOSS_PERCENT\\\"] = 17;\\n        values[valuesById[18] = \\\"RTC_SPK_BITRATE\\\"] = 18;\\n        values[valuesById[19] = \\\"RTC_SPK_CURRENT_DELAY_MS\\\"] = 19;\\n        values[valuesById[20] = \\\"RTC_SPK_JITTER_BUFFER_MS\\\"] = 20;\\n        values[valuesById[21] = \\\"VIDEO_SENT_RTT_MS\\\"] = 21;\\n        values[valuesById[22] = \\\"VIDEO_ENCODE_USAGE_PERCENT\\\"] = 22;\\n        values[valuesById[23] = \\\"VIDEO_NACKS_RECEIVED\\\"] = 23;\\n        values[valuesById[24] = \\\"VIDEO_PLIS_RECEIVED\\\"] = 24;\\n        values[valuesById[25] = \\\"VIDEO_ENCODE_MS\\\"] = 25;\\n        values[valuesById[26] = \\\"VIDEO_INPUT_FPS\\\"] = 26;\\n        values[valuesById[27] = \\\"VIDEO_ENCODE_FPS\\\"] = 27;\\n        values[valuesById[28] = \\\"VIDEO_SENT_FPS\\\"] = 28;\\n        values[valuesById[29] = \\\"VIDEO_FIRS_RECEIVED\\\"] = 29;\\n        values[valuesById[30] = \\\"VIDEO_SENT_PPS\\\"] = 30;\\n        values[valuesById[31] = \\\"VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT\\\"] = 31;\\n        values[valuesById[32] = \\\"VIDEO_SENT_BITRATE\\\"] = 32;\\n        values[valuesById[33] = \\\"VIDEO_DROPPED_FPS\\\"] = 33;\\n        values[valuesById[34] = \\\"VIDEO_TARGET_DELAY_MS\\\"] = 34;\\n        values[valuesById[35] = \\\"VIDEO_DECODE_MS\\\"] = 35;\\n        values[valuesById[36] = \\\"VIDEO_OUTPUT_FPS\\\"] = 36;\\n        values[valuesById[37] = \\\"VIDEO_RECEIVED_PPS\\\"] = 37;\\n        values[valuesById[38] = \\\"VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT\\\"] = 38;\\n        values[valuesById[39] = \\\"VIDEO_RENDER_DELAY_MS\\\"] = 39;\\n        values[valuesById[40] = \\\"VIDEO_RECEIVED_FPS\\\"] = 40;\\n        values[valuesById[41] = \\\"VIDEO_DECODE_FPS\\\"] = 41;\\n        values[valuesById[42] = \\\"VIDEO_NACKS_SENT\\\"] = 42;\\n        values[valuesById[43] = \\\"VIDEO_FIRS_SENT\\\"] = 43;\\n        values[valuesById[44] = \\\"VIDEO_RECEIVED_BITRATE\\\"] = 44;\\n        values[valuesById[45] = \\\"VIDEO_CURRENT_DELAY_MS\\\"] = 45;\\n        values[valuesById[46] = \\\"VIDEO_JITTER_BUFFER_MS\\\"] = 46;\\n        values[valuesById[47] = \\\"VIDEO_DISCARDED_PPS\\\"] = 47;\\n        values[valuesById[48] = \\\"VIDEO_PLIS_SENT\\\"] = 48;\\n        values[valuesById[49] = \\\"VIDEO_RECEIVED_JITTER_MS\\\"] = 49;\\n        values[valuesById[64] = \\\"VIDEO_ENCODE_HEIGHT\\\"] = 64;\\n        values[valuesById[66] = \\\"VIDEO_SENT_QP_SUM\\\"] = 66;\\n        values[valuesById[69] = \\\"VIDEO_DECODE_HEIGHT\\\"] = 69;\\n        values[valuesById[72] = \\\"VIDEO_RECEIVED_QP_SUM\\\"] = 72;\\n        values[valuesById[86] = \\\"VIDEO_ENCODE_WIDTH\\\"] = 86;\\n        values[valuesById[87] = \\\"VIDEO_DECODE_WIDTH\\\"] = 87;\\n        values[valuesById[88] = \\\"VIDEO_ENCODER_IS_HARDWARE\\\"] = 88;\\n        values[valuesById[89] = \\\"VIDEO_DECODER_IS_HARDWARE\\\"] = 89;\\n        return values;\\n    })();\\n\\n    return SdkMetric;\\n})();\\n\\n$root.SdkStreamMetricFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkStreamMetricFrame.\\n     * @exports ISdkStreamMetricFrame\\n     * @interface ISdkStreamMetricFrame\\n     * @property {number|null} [streamId] SdkStreamMetricFrame streamId\\n     * @property {number|null} [groupId] SdkStreamMetricFrame groupId\\n     * @property {Array.<ISdkMetric>|null} [metrics] SdkStreamMetricFrame metrics\\n     * @property {Array.<ISdkStreamDimension>|null} [dimensions] SdkStreamMetricFrame dimensions\\n     */\\n\\n    /**\\n     * Constructs a new SdkStreamMetricFrame.\\n     * @exports SdkStreamMetricFrame\\n     * @classdesc Represents a SdkStreamMetricFrame.\\n     * @implements ISdkStreamMetricFrame\\n     * @constructor\\n     * @param {ISdkStreamMetricFrame=} [properties] Properties to set\\n     */\\n    function SdkStreamMetricFrame(properties) {\\n        this.metrics = [];\\n        this.dimensions = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkStreamMetricFrame streamId.\\n     * @member {number} streamId\\n     * @memberof SdkStreamMetricFrame\\n     * @instance\\n     */\\n    SdkStreamMetricFrame.prototype.streamId = 0;\\n\\n    /**\\n     * SdkStreamMetricFrame groupId.\\n     * @member {number} groupId\\n     * @memberof SdkStreamMetricFrame\\n     * @instance\\n     */\\n    SdkStreamMetricFrame.prototype.groupId = 0;\\n\\n    /**\\n     * SdkStreamMetricFrame metrics.\\n     * @member {Array.<ISdkMetric>} metrics\\n     * @memberof SdkStreamMetricFrame\\n     * @instance\\n     */\\n    SdkStreamMetricFrame.prototype.metrics = $util.emptyArray;\\n\\n    /**\\n     * SdkStreamMetricFrame dimensions.\\n     * @member {Array.<ISdkStreamDimension>} dimensions\\n     * @memberof SdkStreamMetricFrame\\n     * @instance\\n     */\\n    SdkStreamMetricFrame.prototype.dimensions = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkStreamMetricFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {ISdkStreamMetricFrame=} [properties] Properties to set\\n     * @returns {SdkStreamMetricFrame} SdkStreamMetricFrame instance\\n     */\\n    SdkStreamMetricFrame.create = function create(properties) {\\n        return new SdkStreamMetricFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamMetricFrame message. Does not implicitly {@link SdkStreamMetricFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {ISdkStreamMetricFrame} message SdkStreamMetricFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamMetricFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.streamId != null && Object.hasOwnProperty.call(message, \\\"streamId\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.streamId);\\n        if (message.groupId != null && Object.hasOwnProperty.call(message, \\\"groupId\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.groupId);\\n        if (message.metrics != null && message.metrics.length)\\n            for (var i = 0; i < message.metrics.length; ++i)\\n                $root.SdkMetric.encode(message.metrics[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\\n        if (message.dimensions != null && message.dimensions.length)\\n            for (var i = 0; i < message.dimensions.length; ++i)\\n                $root.SdkStreamDimension.encode(message.dimensions[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamMetricFrame message, length delimited. Does not implicitly {@link SdkStreamMetricFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {ISdkStreamMetricFrame} message SdkStreamMetricFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamMetricFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamMetricFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkStreamMetricFrame} SdkStreamMetricFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamMetricFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkStreamMetricFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 3:\\n                message.streamId = reader.uint32();\\n                break;\\n            case 4:\\n                message.groupId = reader.uint32();\\n                break;\\n            case 5:\\n                if (!(message.metrics && message.metrics.length))\\n                    message.metrics = [];\\n                message.metrics.push($root.SdkMetric.decode(reader, reader.uint32()));\\n                break;\\n            case 6:\\n                if (!(message.dimensions && message.dimensions.length))\\n                    message.dimensions = [];\\n                message.dimensions.push($root.SdkStreamDimension.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamMetricFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkStreamMetricFrame} SdkStreamMetricFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamMetricFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkStreamMetricFrame message.\\n     * @function verify\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkStreamMetricFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            if (!$util.isInteger(message.streamId))\\n                return \\\"streamId: integer expected\\\";\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            if (!$util.isInteger(message.groupId))\\n                return \\\"groupId: integer expected\\\";\\n        if (message.metrics != null && message.hasOwnProperty(\\\"metrics\\\")) {\\n            if (!Array.isArray(message.metrics))\\n                return \\\"metrics: array expected\\\";\\n            for (var i = 0; i < message.metrics.length; ++i) {\\n                var error = $root.SdkMetric.verify(message.metrics[i]);\\n                if (error)\\n                    return \\\"metrics.\\\" + error;\\n            }\\n        }\\n        if (message.dimensions != null && message.hasOwnProperty(\\\"dimensions\\\")) {\\n            if (!Array.isArray(message.dimensions))\\n                return \\\"dimensions: array expected\\\";\\n            for (var i = 0; i < message.dimensions.length; ++i) {\\n                var error = $root.SdkStreamDimension.verify(message.dimensions[i]);\\n                if (error)\\n                    return \\\"dimensions.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkStreamMetricFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkStreamMetricFrame} SdkStreamMetricFrame\\n     */\\n    SdkStreamMetricFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkStreamMetricFrame)\\n            return object;\\n        var message = new $root.SdkStreamMetricFrame();\\n        if (object.streamId != null)\\n            message.streamId = object.streamId >>> 0;\\n        if (object.groupId != null)\\n            message.groupId = object.groupId >>> 0;\\n        if (object.metrics) {\\n            if (!Array.isArray(object.metrics))\\n                throw TypeError(\\\".SdkStreamMetricFrame.metrics: array expected\\\");\\n            message.metrics = [];\\n            for (var i = 0; i < object.metrics.length; ++i) {\\n                if (typeof object.metrics[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkStreamMetricFrame.metrics: object expected\\\");\\n                message.metrics[i] = $root.SdkMetric.fromObject(object.metrics[i]);\\n            }\\n        }\\n        if (object.dimensions) {\\n            if (!Array.isArray(object.dimensions))\\n                throw TypeError(\\\".SdkStreamMetricFrame.dimensions: array expected\\\");\\n            message.dimensions = [];\\n            for (var i = 0; i < object.dimensions.length; ++i) {\\n                if (typeof object.dimensions[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkStreamMetricFrame.dimensions: object expected\\\");\\n                message.dimensions[i] = $root.SdkStreamDimension.fromObject(object.dimensions[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkStreamMetricFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkStreamMetricFrame\\n     * @static\\n     * @param {SdkStreamMetricFrame} message SdkStreamMetricFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkStreamMetricFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.metrics = [];\\n            object.dimensions = [];\\n        }\\n        if (options.defaults) {\\n            object.streamId = 0;\\n            object.groupId = 0;\\n        }\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            object.streamId = message.streamId;\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            object.groupId = message.groupId;\\n        if (message.metrics && message.metrics.length) {\\n            object.metrics = [];\\n            for (var j = 0; j < message.metrics.length; ++j)\\n                object.metrics[j] = $root.SdkMetric.toObject(message.metrics[j], options);\\n        }\\n        if (message.dimensions && message.dimensions.length) {\\n            object.dimensions = [];\\n            for (var j = 0; j < message.dimensions.length; ++j)\\n                object.dimensions[j] = $root.SdkStreamDimension.toObject(message.dimensions[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkStreamMetricFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkStreamMetricFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkStreamMetricFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkStreamMetricFrame;\\n})();\\n\\n$root.SdkClientMetricFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkClientMetricFrame.\\n     * @exports ISdkClientMetricFrame\\n     * @interface ISdkClientMetricFrame\\n     * @property {Array.<ISdkMetric>|null} [globalMetrics] SdkClientMetricFrame globalMetrics\\n     * @property {Array.<ISdkStreamMetricFrame>|null} [streamMetricFrames] SdkClientMetricFrame streamMetricFrames\\n     */\\n\\n    /**\\n     * Constructs a new SdkClientMetricFrame.\\n     * @exports SdkClientMetricFrame\\n     * @classdesc Represents a SdkClientMetricFrame.\\n     * @implements ISdkClientMetricFrame\\n     * @constructor\\n     * @param {ISdkClientMetricFrame=} [properties] Properties to set\\n     */\\n    function SdkClientMetricFrame(properties) {\\n        this.globalMetrics = [];\\n        this.streamMetricFrames = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkClientMetricFrame globalMetrics.\\n     * @member {Array.<ISdkMetric>} globalMetrics\\n     * @memberof SdkClientMetricFrame\\n     * @instance\\n     */\\n    SdkClientMetricFrame.prototype.globalMetrics = $util.emptyArray;\\n\\n    /**\\n     * SdkClientMetricFrame streamMetricFrames.\\n     * @member {Array.<ISdkStreamMetricFrame>} streamMetricFrames\\n     * @memberof SdkClientMetricFrame\\n     * @instance\\n     */\\n    SdkClientMetricFrame.prototype.streamMetricFrames = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkClientMetricFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {ISdkClientMetricFrame=} [properties] Properties to set\\n     * @returns {SdkClientMetricFrame} SdkClientMetricFrame instance\\n     */\\n    SdkClientMetricFrame.create = function create(properties) {\\n        return new SdkClientMetricFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkClientMetricFrame message. Does not implicitly {@link SdkClientMetricFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {ISdkClientMetricFrame} message SdkClientMetricFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkClientMetricFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.globalMetrics != null && message.globalMetrics.length)\\n            for (var i = 0; i < message.globalMetrics.length; ++i)\\n                $root.SdkMetric.encode(message.globalMetrics[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.streamMetricFrames != null && message.streamMetricFrames.length)\\n            for (var i = 0; i < message.streamMetricFrames.length; ++i)\\n                $root.SdkStreamMetricFrame.encode(message.streamMetricFrames[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkClientMetricFrame message, length delimited. Does not implicitly {@link SdkClientMetricFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {ISdkClientMetricFrame} message SdkClientMetricFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkClientMetricFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkClientMetricFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkClientMetricFrame} SdkClientMetricFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkClientMetricFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkClientMetricFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.globalMetrics && message.globalMetrics.length))\\n                    message.globalMetrics = [];\\n                message.globalMetrics.push($root.SdkMetric.decode(reader, reader.uint32()));\\n                break;\\n            case 2:\\n                if (!(message.streamMetricFrames && message.streamMetricFrames.length))\\n                    message.streamMetricFrames = [];\\n                message.streamMetricFrames.push($root.SdkStreamMetricFrame.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkClientMetricFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkClientMetricFrame} SdkClientMetricFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkClientMetricFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkClientMetricFrame message.\\n     * @function verify\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkClientMetricFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.globalMetrics != null && message.hasOwnProperty(\\\"globalMetrics\\\")) {\\n            if (!Array.isArray(message.globalMetrics))\\n                return \\\"globalMetrics: array expected\\\";\\n            for (var i = 0; i < message.globalMetrics.length; ++i) {\\n                var error = $root.SdkMetric.verify(message.globalMetrics[i]);\\n                if (error)\\n                    return \\\"globalMetrics.\\\" + error;\\n            }\\n        }\\n        if (message.streamMetricFrames != null && message.hasOwnProperty(\\\"streamMetricFrames\\\")) {\\n            if (!Array.isArray(message.streamMetricFrames))\\n                return \\\"streamMetricFrames: array expected\\\";\\n            for (var i = 0; i < message.streamMetricFrames.length; ++i) {\\n                var error = $root.SdkStreamMetricFrame.verify(message.streamMetricFrames[i]);\\n                if (error)\\n                    return \\\"streamMetricFrames.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkClientMetricFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkClientMetricFrame} SdkClientMetricFrame\\n     */\\n    SdkClientMetricFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkClientMetricFrame)\\n            return object;\\n        var message = new $root.SdkClientMetricFrame();\\n        if (object.globalMetrics) {\\n            if (!Array.isArray(object.globalMetrics))\\n                throw TypeError(\\\".SdkClientMetricFrame.globalMetrics: array expected\\\");\\n            message.globalMetrics = [];\\n            for (var i = 0; i < object.globalMetrics.length; ++i) {\\n                if (typeof object.globalMetrics[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkClientMetricFrame.globalMetrics: object expected\\\");\\n                message.globalMetrics[i] = $root.SdkMetric.fromObject(object.globalMetrics[i]);\\n            }\\n        }\\n        if (object.streamMetricFrames) {\\n            if (!Array.isArray(object.streamMetricFrames))\\n                throw TypeError(\\\".SdkClientMetricFrame.streamMetricFrames: array expected\\\");\\n            message.streamMetricFrames = [];\\n            for (var i = 0; i < object.streamMetricFrames.length; ++i) {\\n                if (typeof object.streamMetricFrames[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkClientMetricFrame.streamMetricFrames: object expected\\\");\\n                message.streamMetricFrames[i] = $root.SdkStreamMetricFrame.fromObject(object.streamMetricFrames[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkClientMetricFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkClientMetricFrame\\n     * @static\\n     * @param {SdkClientMetricFrame} message SdkClientMetricFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkClientMetricFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.globalMetrics = [];\\n            object.streamMetricFrames = [];\\n        }\\n        if (message.globalMetrics && message.globalMetrics.length) {\\n            object.globalMetrics = [];\\n            for (var j = 0; j < message.globalMetrics.length; ++j)\\n                object.globalMetrics[j] = $root.SdkMetric.toObject(message.globalMetrics[j], options);\\n        }\\n        if (message.streamMetricFrames && message.streamMetricFrames.length) {\\n            object.streamMetricFrames = [];\\n            for (var j = 0; j < message.streamMetricFrames.length; ++j)\\n                object.streamMetricFrames[j] = $root.SdkStreamMetricFrame.toObject(message.streamMetricFrames[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkClientMetricFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkClientMetricFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkClientMetricFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkClientMetricFrame;\\n})();\\n\\n$root.SdkStreamDimension = (function() {\\n\\n    /**\\n     * Properties of a SdkStreamDimension.\\n     * @exports ISdkStreamDimension\\n     * @interface ISdkStreamDimension\\n     * @property {SdkStreamDimension.Type|null} [type] SdkStreamDimension type\\n     * @property {ISdkDimensionValue|null} [value] SdkStreamDimension value\\n     */\\n\\n    /**\\n     * Constructs a new SdkStreamDimension.\\n     * @exports SdkStreamDimension\\n     * @classdesc Represents a SdkStreamDimension.\\n     * @implements ISdkStreamDimension\\n     * @constructor\\n     * @param {ISdkStreamDimension=} [properties] Properties to set\\n     */\\n    function SdkStreamDimension(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkStreamDimension type.\\n     * @member {SdkStreamDimension.Type} type\\n     * @memberof SdkStreamDimension\\n     * @instance\\n     */\\n    SdkStreamDimension.prototype.type = 1;\\n\\n    /**\\n     * SdkStreamDimension value.\\n     * @member {ISdkDimensionValue|null|undefined} value\\n     * @memberof SdkStreamDimension\\n     * @instance\\n     */\\n    SdkStreamDimension.prototype.value = null;\\n\\n    /**\\n     * Creates a new SdkStreamDimension instance using the specified properties.\\n     * @function create\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {ISdkStreamDimension=} [properties] Properties to set\\n     * @returns {SdkStreamDimension} SdkStreamDimension instance\\n     */\\n    SdkStreamDimension.create = function create(properties) {\\n        return new SdkStreamDimension(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamDimension message. Does not implicitly {@link SdkStreamDimension.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {ISdkStreamDimension} message SdkStreamDimension message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamDimension.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.type != null && Object.hasOwnProperty.call(message, \\\"type\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);\\n        if (message.value != null && Object.hasOwnProperty.call(message, \\\"value\\\"))\\n            $root.SdkDimensionValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkStreamDimension message, length delimited. Does not implicitly {@link SdkStreamDimension.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {ISdkStreamDimension} message SdkStreamDimension message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkStreamDimension.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamDimension message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkStreamDimension} SdkStreamDimension\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamDimension.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkStreamDimension();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.type = reader.int32();\\n                break;\\n            case 2:\\n                message.value = $root.SdkDimensionValue.decode(reader, reader.uint32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkStreamDimension message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkStreamDimension} SdkStreamDimension\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkStreamDimension.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkStreamDimension message.\\n     * @function verify\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkStreamDimension.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            switch (message.type) {\\n            default:\\n                return \\\"type: enum value expected\\\";\\n            case 1:\\n            case 2:\\n                break;\\n            }\\n        if (message.value != null && message.hasOwnProperty(\\\"value\\\")) {\\n            var error = $root.SdkDimensionValue.verify(message.value);\\n            if (error)\\n                return \\\"value.\\\" + error;\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkStreamDimension message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkStreamDimension} SdkStreamDimension\\n     */\\n    SdkStreamDimension.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkStreamDimension)\\n            return object;\\n        var message = new $root.SdkStreamDimension();\\n        switch (object.type) {\\n        case \\\"VIDEO_ENCODER_NAME\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"VIDEO_DECODER_NAME\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        }\\n        if (object.value != null) {\\n            if (typeof object.value !== \\\"object\\\")\\n                throw TypeError(\\\".SdkStreamDimension.value: object expected\\\");\\n            message.value = $root.SdkDimensionValue.fromObject(object.value);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkStreamDimension message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkStreamDimension\\n     * @static\\n     * @param {SdkStreamDimension} message SdkStreamDimension\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkStreamDimension.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.type = options.enums === String ? \\\"VIDEO_ENCODER_NAME\\\" : 1;\\n            object.value = null;\\n        }\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkStreamDimension.Type[message.type] : message.type;\\n        if (message.value != null && message.hasOwnProperty(\\\"value\\\"))\\n            object.value = $root.SdkDimensionValue.toObject(message.value, options);\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkStreamDimension to JSON.\\n     * @function toJSON\\n     * @memberof SdkStreamDimension\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkStreamDimension.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    /**\\n     * Type enum.\\n     * @name SdkStreamDimension.Type\\n     * @enum {number}\\n     * @property {number} VIDEO_ENCODER_NAME=1 VIDEO_ENCODER_NAME value\\n     * @property {number} VIDEO_DECODER_NAME=2 VIDEO_DECODER_NAME value\\n     */\\n    SdkStreamDimension.Type = (function() {\\n        var valuesById = {}, values = Object.create(valuesById);\\n        values[valuesById[1] = \\\"VIDEO_ENCODER_NAME\\\"] = 1;\\n        values[valuesById[2] = \\\"VIDEO_DECODER_NAME\\\"] = 2;\\n        return values;\\n    })();\\n\\n    return SdkStreamDimension;\\n})();\\n\\n$root.SdkDimensionValue = (function() {\\n\\n    /**\\n     * Properties of a SdkDimensionValue.\\n     * @exports ISdkDimensionValue\\n     * @interface ISdkDimensionValue\\n     * @property {string|null} [stringValue] SdkDimensionValue stringValue\\n     * @property {boolean|null} [boolValue] SdkDimensionValue boolValue\\n     * @property {number|Long|null} [uintValue] SdkDimensionValue uintValue\\n     */\\n\\n    /**\\n     * Constructs a new SdkDimensionValue.\\n     * @exports SdkDimensionValue\\n     * @classdesc Represents a SdkDimensionValue.\\n     * @implements ISdkDimensionValue\\n     * @constructor\\n     * @param {ISdkDimensionValue=} [properties] Properties to set\\n     */\\n    function SdkDimensionValue(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkDimensionValue stringValue.\\n     * @member {string} stringValue\\n     * @memberof SdkDimensionValue\\n     * @instance\\n     */\\n    SdkDimensionValue.prototype.stringValue = \\\"\\\";\\n\\n    /**\\n     * SdkDimensionValue boolValue.\\n     * @member {boolean} boolValue\\n     * @memberof SdkDimensionValue\\n     * @instance\\n     */\\n    SdkDimensionValue.prototype.boolValue = false;\\n\\n    /**\\n     * SdkDimensionValue uintValue.\\n     * @member {number|Long} uintValue\\n     * @memberof SdkDimensionValue\\n     * @instance\\n     */\\n    SdkDimensionValue.prototype.uintValue = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\\n\\n    /**\\n     * Creates a new SdkDimensionValue instance using the specified properties.\\n     * @function create\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {ISdkDimensionValue=} [properties] Properties to set\\n     * @returns {SdkDimensionValue} SdkDimensionValue instance\\n     */\\n    SdkDimensionValue.create = function create(properties) {\\n        return new SdkDimensionValue(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDimensionValue message. Does not implicitly {@link SdkDimensionValue.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {ISdkDimensionValue} message SdkDimensionValue message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDimensionValue.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.stringValue != null && Object.hasOwnProperty.call(message, \\\"stringValue\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.stringValue);\\n        if (message.boolValue != null && Object.hasOwnProperty.call(message, \\\"boolValue\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).bool(message.boolValue);\\n        if (message.uintValue != null && Object.hasOwnProperty.call(message, \\\"uintValue\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.uintValue);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDimensionValue message, length delimited. Does not implicitly {@link SdkDimensionValue.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {ISdkDimensionValue} message SdkDimensionValue message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDimensionValue.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkDimensionValue message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkDimensionValue} SdkDimensionValue\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDimensionValue.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkDimensionValue();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.stringValue = reader.string();\\n                break;\\n            case 2:\\n                message.boolValue = reader.bool();\\n                break;\\n            case 3:\\n                message.uintValue = reader.uint64();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkDimensionValue message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkDimensionValue} SdkDimensionValue\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDimensionValue.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkDimensionValue message.\\n     * @function verify\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkDimensionValue.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.stringValue != null && message.hasOwnProperty(\\\"stringValue\\\"))\\n            if (!$util.isString(message.stringValue))\\n                return \\\"stringValue: string expected\\\";\\n        if (message.boolValue != null && message.hasOwnProperty(\\\"boolValue\\\"))\\n            if (typeof message.boolValue !== \\\"boolean\\\")\\n                return \\\"boolValue: boolean expected\\\";\\n        if (message.uintValue != null && message.hasOwnProperty(\\\"uintValue\\\"))\\n            if (!$util.isInteger(message.uintValue) && !(message.uintValue && $util.isInteger(message.uintValue.low) && $util.isInteger(message.uintValue.high)))\\n                return \\\"uintValue: integer|Long expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkDimensionValue message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkDimensionValue} SdkDimensionValue\\n     */\\n    SdkDimensionValue.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkDimensionValue)\\n            return object;\\n        var message = new $root.SdkDimensionValue();\\n        if (object.stringValue != null)\\n            message.stringValue = String(object.stringValue);\\n        if (object.boolValue != null)\\n            message.boolValue = Boolean(object.boolValue);\\n        if (object.uintValue != null)\\n            if ($util.Long)\\n                (message.uintValue = $util.Long.fromValue(object.uintValue)).unsigned = true;\\n            else if (typeof object.uintValue === \\\"string\\\")\\n                message.uintValue = parseInt(object.uintValue, 10);\\n            else if (typeof object.uintValue === \\\"number\\\")\\n                message.uintValue = object.uintValue;\\n            else if (typeof object.uintValue === \\\"object\\\")\\n                message.uintValue = new $util.LongBits(object.uintValue.low >>> 0, object.uintValue.high >>> 0).toNumber(true);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkDimensionValue message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkDimensionValue\\n     * @static\\n     * @param {SdkDimensionValue} message SdkDimensionValue\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkDimensionValue.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.stringValue = \\\"\\\";\\n            object.boolValue = false;\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, true);\\n                object.uintValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.uintValue = options.longs === String ? \\\"0\\\" : 0;\\n        }\\n        if (message.stringValue != null && message.hasOwnProperty(\\\"stringValue\\\"))\\n            object.stringValue = message.stringValue;\\n        if (message.boolValue != null && message.hasOwnProperty(\\\"boolValue\\\"))\\n            object.boolValue = message.boolValue;\\n        if (message.uintValue != null && message.hasOwnProperty(\\\"uintValue\\\"))\\n            if (typeof message.uintValue === \\\"number\\\")\\n                object.uintValue = options.longs === String ? String(message.uintValue) : message.uintValue;\\n            else\\n                object.uintValue = options.longs === String ? $util.Long.prototype.toString.call(message.uintValue) : options.longs === Number ? new $util.LongBits(message.uintValue.low >>> 0, message.uintValue.high >>> 0).toNumber(true) : message.uintValue;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkDimensionValue to JSON.\\n     * @function toJSON\\n     * @memberof SdkDimensionValue\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkDimensionValue.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkDimensionValue;\\n})();\\n\\n$root.SdkDataMessageFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkDataMessageFrame.\\n     * @exports ISdkDataMessageFrame\\n     * @interface ISdkDataMessageFrame\\n     * @property {Array.<ISdkDataMessagePayload>|null} [messages] SdkDataMessageFrame messages\\n     */\\n\\n    /**\\n     * Constructs a new SdkDataMessageFrame.\\n     * @exports SdkDataMessageFrame\\n     * @classdesc Represents a SdkDataMessageFrame.\\n     * @implements ISdkDataMessageFrame\\n     * @constructor\\n     * @param {ISdkDataMessageFrame=} [properties] Properties to set\\n     */\\n    function SdkDataMessageFrame(properties) {\\n        this.messages = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkDataMessageFrame messages.\\n     * @member {Array.<ISdkDataMessagePayload>} messages\\n     * @memberof SdkDataMessageFrame\\n     * @instance\\n     */\\n    SdkDataMessageFrame.prototype.messages = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkDataMessageFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {ISdkDataMessageFrame=} [properties] Properties to set\\n     * @returns {SdkDataMessageFrame} SdkDataMessageFrame instance\\n     */\\n    SdkDataMessageFrame.create = function create(properties) {\\n        return new SdkDataMessageFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDataMessageFrame message. Does not implicitly {@link SdkDataMessageFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {ISdkDataMessageFrame} message SdkDataMessageFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDataMessageFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.messages != null && message.messages.length)\\n            for (var i = 0; i < message.messages.length; ++i)\\n                $root.SdkDataMessagePayload.encode(message.messages[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDataMessageFrame message, length delimited. Does not implicitly {@link SdkDataMessageFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {ISdkDataMessageFrame} message SdkDataMessageFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDataMessageFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkDataMessageFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkDataMessageFrame} SdkDataMessageFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDataMessageFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkDataMessageFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.messages && message.messages.length))\\n                    message.messages = [];\\n                message.messages.push($root.SdkDataMessagePayload.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkDataMessageFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkDataMessageFrame} SdkDataMessageFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDataMessageFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkDataMessageFrame message.\\n     * @function verify\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkDataMessageFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.messages != null && message.hasOwnProperty(\\\"messages\\\")) {\\n            if (!Array.isArray(message.messages))\\n                return \\\"messages: array expected\\\";\\n            for (var i = 0; i < message.messages.length; ++i) {\\n                var error = $root.SdkDataMessagePayload.verify(message.messages[i]);\\n                if (error)\\n                    return \\\"messages.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkDataMessageFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkDataMessageFrame} SdkDataMessageFrame\\n     */\\n    SdkDataMessageFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkDataMessageFrame)\\n            return object;\\n        var message = new $root.SdkDataMessageFrame();\\n        if (object.messages) {\\n            if (!Array.isArray(object.messages))\\n                throw TypeError(\\\".SdkDataMessageFrame.messages: array expected\\\");\\n            message.messages = [];\\n            for (var i = 0; i < object.messages.length; ++i) {\\n                if (typeof object.messages[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkDataMessageFrame.messages: object expected\\\");\\n                message.messages[i] = $root.SdkDataMessagePayload.fromObject(object.messages[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkDataMessageFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkDataMessageFrame\\n     * @static\\n     * @param {SdkDataMessageFrame} message SdkDataMessageFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkDataMessageFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.messages = [];\\n        if (message.messages && message.messages.length) {\\n            object.messages = [];\\n            for (var j = 0; j < message.messages.length; ++j)\\n                object.messages[j] = $root.SdkDataMessagePayload.toObject(message.messages[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkDataMessageFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkDataMessageFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkDataMessageFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkDataMessageFrame;\\n})();\\n\\n$root.SdkDataMessagePayload = (function() {\\n\\n    /**\\n     * Properties of a SdkDataMessagePayload.\\n     * @exports ISdkDataMessagePayload\\n     * @interface ISdkDataMessagePayload\\n     * @property {string|null} [topic] SdkDataMessagePayload topic\\n     * @property {Uint8Array|null} [data] SdkDataMessagePayload data\\n     * @property {number|null} [lifetimeMs] SdkDataMessagePayload lifetimeMs\\n     * @property {string|null} [senderAttendeeId] SdkDataMessagePayload senderAttendeeId\\n     * @property {number|Long|null} [ingestTimeNs] SdkDataMessagePayload ingestTimeNs\\n     * @property {string|null} [senderExternalUserId] SdkDataMessagePayload senderExternalUserId\\n     */\\n\\n    /**\\n     * Constructs a new SdkDataMessagePayload.\\n     * @exports SdkDataMessagePayload\\n     * @classdesc Represents a SdkDataMessagePayload.\\n     * @implements ISdkDataMessagePayload\\n     * @constructor\\n     * @param {ISdkDataMessagePayload=} [properties] Properties to set\\n     */\\n    function SdkDataMessagePayload(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkDataMessagePayload topic.\\n     * @member {string} topic\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.topic = \\\"\\\";\\n\\n    /**\\n     * SdkDataMessagePayload data.\\n     * @member {Uint8Array} data\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.data = $util.newBuffer([]);\\n\\n    /**\\n     * SdkDataMessagePayload lifetimeMs.\\n     * @member {number} lifetimeMs\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.lifetimeMs = 0;\\n\\n    /**\\n     * SdkDataMessagePayload senderAttendeeId.\\n     * @member {string} senderAttendeeId\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.senderAttendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkDataMessagePayload ingestTimeNs.\\n     * @member {number|Long} ingestTimeNs\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.ingestTimeNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkDataMessagePayload senderExternalUserId.\\n     * @member {string} senderExternalUserId\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     */\\n    SdkDataMessagePayload.prototype.senderExternalUserId = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkDataMessagePayload instance using the specified properties.\\n     * @function create\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {ISdkDataMessagePayload=} [properties] Properties to set\\n     * @returns {SdkDataMessagePayload} SdkDataMessagePayload instance\\n     */\\n    SdkDataMessagePayload.create = function create(properties) {\\n        return new SdkDataMessagePayload(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDataMessagePayload message. Does not implicitly {@link SdkDataMessagePayload.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {ISdkDataMessagePayload} message SdkDataMessagePayload message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDataMessagePayload.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.topic != null && Object.hasOwnProperty.call(message, \\\"topic\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.topic);\\n        if (message.data != null && Object.hasOwnProperty.call(message, \\\"data\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data);\\n        if (message.lifetimeMs != null && Object.hasOwnProperty.call(message, \\\"lifetimeMs\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.lifetimeMs);\\n        if (message.senderAttendeeId != null && Object.hasOwnProperty.call(message, \\\"senderAttendeeId\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.senderAttendeeId);\\n        if (message.ingestTimeNs != null && Object.hasOwnProperty.call(message, \\\"ingestTimeNs\\\"))\\n            writer.uint32(/* id 5, wireType 0 =*/40).int64(message.ingestTimeNs);\\n        if (message.senderExternalUserId != null && Object.hasOwnProperty.call(message, \\\"senderExternalUserId\\\"))\\n            writer.uint32(/* id 6, wireType 2 =*/50).string(message.senderExternalUserId);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkDataMessagePayload message, length delimited. Does not implicitly {@link SdkDataMessagePayload.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {ISdkDataMessagePayload} message SdkDataMessagePayload message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkDataMessagePayload.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkDataMessagePayload message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkDataMessagePayload} SdkDataMessagePayload\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDataMessagePayload.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkDataMessagePayload();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.topic = reader.string();\\n                break;\\n            case 2:\\n                message.data = reader.bytes();\\n                break;\\n            case 3:\\n                message.lifetimeMs = reader.uint32();\\n                break;\\n            case 4:\\n                message.senderAttendeeId = reader.string();\\n                break;\\n            case 5:\\n                message.ingestTimeNs = reader.int64();\\n                break;\\n            case 6:\\n                message.senderExternalUserId = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkDataMessagePayload message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkDataMessagePayload} SdkDataMessagePayload\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkDataMessagePayload.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkDataMessagePayload message.\\n     * @function verify\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkDataMessagePayload.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.topic != null && message.hasOwnProperty(\\\"topic\\\"))\\n            if (!$util.isString(message.topic))\\n                return \\\"topic: string expected\\\";\\n        if (message.data != null && message.hasOwnProperty(\\\"data\\\"))\\n            if (!(message.data && typeof message.data.length === \\\"number\\\" || $util.isString(message.data)))\\n                return \\\"data: buffer expected\\\";\\n        if (message.lifetimeMs != null && message.hasOwnProperty(\\\"lifetimeMs\\\"))\\n            if (!$util.isInteger(message.lifetimeMs))\\n                return \\\"lifetimeMs: integer expected\\\";\\n        if (message.senderAttendeeId != null && message.hasOwnProperty(\\\"senderAttendeeId\\\"))\\n            if (!$util.isString(message.senderAttendeeId))\\n                return \\\"senderAttendeeId: string expected\\\";\\n        if (message.ingestTimeNs != null && message.hasOwnProperty(\\\"ingestTimeNs\\\"))\\n            if (!$util.isInteger(message.ingestTimeNs) && !(message.ingestTimeNs && $util.isInteger(message.ingestTimeNs.low) && $util.isInteger(message.ingestTimeNs.high)))\\n                return \\\"ingestTimeNs: integer|Long expected\\\";\\n        if (message.senderExternalUserId != null && message.hasOwnProperty(\\\"senderExternalUserId\\\"))\\n            if (!$util.isString(message.senderExternalUserId))\\n                return \\\"senderExternalUserId: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkDataMessagePayload message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkDataMessagePayload} SdkDataMessagePayload\\n     */\\n    SdkDataMessagePayload.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkDataMessagePayload)\\n            return object;\\n        var message = new $root.SdkDataMessagePayload();\\n        if (object.topic != null)\\n            message.topic = String(object.topic);\\n        if (object.data != null)\\n            if (typeof object.data === \\\"string\\\")\\n                $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);\\n            else if (object.data.length)\\n                message.data = object.data;\\n        if (object.lifetimeMs != null)\\n            message.lifetimeMs = object.lifetimeMs >>> 0;\\n        if (object.senderAttendeeId != null)\\n            message.senderAttendeeId = String(object.senderAttendeeId);\\n        if (object.ingestTimeNs != null)\\n            if ($util.Long)\\n                (message.ingestTimeNs = $util.Long.fromValue(object.ingestTimeNs)).unsigned = false;\\n            else if (typeof object.ingestTimeNs === \\\"string\\\")\\n                message.ingestTimeNs = parseInt(object.ingestTimeNs, 10);\\n            else if (typeof object.ingestTimeNs === \\\"number\\\")\\n                message.ingestTimeNs = object.ingestTimeNs;\\n            else if (typeof object.ingestTimeNs === \\\"object\\\")\\n                message.ingestTimeNs = new $util.LongBits(object.ingestTimeNs.low >>> 0, object.ingestTimeNs.high >>> 0).toNumber();\\n        if (object.senderExternalUserId != null)\\n            message.senderExternalUserId = String(object.senderExternalUserId);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkDataMessagePayload message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkDataMessagePayload\\n     * @static\\n     * @param {SdkDataMessagePayload} message SdkDataMessagePayload\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkDataMessagePayload.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.topic = \\\"\\\";\\n            if (options.bytes === String)\\n                object.data = \\\"\\\";\\n            else {\\n                object.data = [];\\n                if (options.bytes !== Array)\\n                    object.data = $util.newBuffer(object.data);\\n            }\\n            object.lifetimeMs = 0;\\n            object.senderAttendeeId = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.ingestTimeNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.ingestTimeNs = options.longs === String ? \\\"0\\\" : 0;\\n            object.senderExternalUserId = \\\"\\\";\\n        }\\n        if (message.topic != null && message.hasOwnProperty(\\\"topic\\\"))\\n            object.topic = message.topic;\\n        if (message.data != null && message.hasOwnProperty(\\\"data\\\"))\\n            object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;\\n        if (message.lifetimeMs != null && message.hasOwnProperty(\\\"lifetimeMs\\\"))\\n            object.lifetimeMs = message.lifetimeMs;\\n        if (message.senderAttendeeId != null && message.hasOwnProperty(\\\"senderAttendeeId\\\"))\\n            object.senderAttendeeId = message.senderAttendeeId;\\n        if (message.ingestTimeNs != null && message.hasOwnProperty(\\\"ingestTimeNs\\\"))\\n            if (typeof message.ingestTimeNs === \\\"number\\\")\\n                object.ingestTimeNs = options.longs === String ? String(message.ingestTimeNs) : message.ingestTimeNs;\\n            else\\n                object.ingestTimeNs = options.longs === String ? $util.Long.prototype.toString.call(message.ingestTimeNs) : options.longs === Number ? new $util.LongBits(message.ingestTimeNs.low >>> 0, message.ingestTimeNs.high >>> 0).toNumber() : message.ingestTimeNs;\\n        if (message.senderExternalUserId != null && message.hasOwnProperty(\\\"senderExternalUserId\\\"))\\n            object.senderExternalUserId = message.senderExternalUserId;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkDataMessagePayload to JSON.\\n     * @function toJSON\\n     * @memberof SdkDataMessagePayload\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkDataMessagePayload.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkDataMessagePayload;\\n})();\\n\\n$root.SdkTurnCredentials = (function() {\\n\\n    /**\\n     * Properties of a SdkTurnCredentials.\\n     * @exports ISdkTurnCredentials\\n     * @interface ISdkTurnCredentials\\n     * @property {string|null} [username] SdkTurnCredentials username\\n     * @property {string|null} [password] SdkTurnCredentials password\\n     * @property {number|null} [ttl] SdkTurnCredentials ttl\\n     * @property {Array.<string>|null} [uris] SdkTurnCredentials uris\\n     */\\n\\n    /**\\n     * Constructs a new SdkTurnCredentials.\\n     * @exports SdkTurnCredentials\\n     * @classdesc Represents a SdkTurnCredentials.\\n     * @implements ISdkTurnCredentials\\n     * @constructor\\n     * @param {ISdkTurnCredentials=} [properties] Properties to set\\n     */\\n    function SdkTurnCredentials(properties) {\\n        this.uris = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTurnCredentials username.\\n     * @member {string} username\\n     * @memberof SdkTurnCredentials\\n     * @instance\\n     */\\n    SdkTurnCredentials.prototype.username = \\\"\\\";\\n\\n    /**\\n     * SdkTurnCredentials password.\\n     * @member {string} password\\n     * @memberof SdkTurnCredentials\\n     * @instance\\n     */\\n    SdkTurnCredentials.prototype.password = \\\"\\\";\\n\\n    /**\\n     * SdkTurnCredentials ttl.\\n     * @member {number} ttl\\n     * @memberof SdkTurnCredentials\\n     * @instance\\n     */\\n    SdkTurnCredentials.prototype.ttl = 0;\\n\\n    /**\\n     * SdkTurnCredentials uris.\\n     * @member {Array.<string>} uris\\n     * @memberof SdkTurnCredentials\\n     * @instance\\n     */\\n    SdkTurnCredentials.prototype.uris = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkTurnCredentials instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {ISdkTurnCredentials=} [properties] Properties to set\\n     * @returns {SdkTurnCredentials} SdkTurnCredentials instance\\n     */\\n    SdkTurnCredentials.create = function create(properties) {\\n        return new SdkTurnCredentials(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTurnCredentials message. Does not implicitly {@link SdkTurnCredentials.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {ISdkTurnCredentials} message SdkTurnCredentials message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTurnCredentials.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.username != null && Object.hasOwnProperty.call(message, \\\"username\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.username);\\n        if (message.password != null && Object.hasOwnProperty.call(message, \\\"password\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.password);\\n        if (message.ttl != null && Object.hasOwnProperty.call(message, \\\"ttl\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.ttl);\\n        if (message.uris != null && message.uris.length)\\n            for (var i = 0; i < message.uris.length; ++i)\\n                writer.uint32(/* id 4, wireType 2 =*/34).string(message.uris[i]);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTurnCredentials message, length delimited. Does not implicitly {@link SdkTurnCredentials.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {ISdkTurnCredentials} message SdkTurnCredentials message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTurnCredentials.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTurnCredentials message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTurnCredentials} SdkTurnCredentials\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTurnCredentials.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTurnCredentials();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.username = reader.string();\\n                break;\\n            case 2:\\n                message.password = reader.string();\\n                break;\\n            case 3:\\n                message.ttl = reader.uint32();\\n                break;\\n            case 4:\\n                if (!(message.uris && message.uris.length))\\n                    message.uris = [];\\n                message.uris.push(reader.string());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTurnCredentials message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTurnCredentials} SdkTurnCredentials\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTurnCredentials.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTurnCredentials message.\\n     * @function verify\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTurnCredentials.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.username != null && message.hasOwnProperty(\\\"username\\\"))\\n            if (!$util.isString(message.username))\\n                return \\\"username: string expected\\\";\\n        if (message.password != null && message.hasOwnProperty(\\\"password\\\"))\\n            if (!$util.isString(message.password))\\n                return \\\"password: string expected\\\";\\n        if (message.ttl != null && message.hasOwnProperty(\\\"ttl\\\"))\\n            if (!$util.isInteger(message.ttl))\\n                return \\\"ttl: integer expected\\\";\\n        if (message.uris != null && message.hasOwnProperty(\\\"uris\\\")) {\\n            if (!Array.isArray(message.uris))\\n                return \\\"uris: array expected\\\";\\n            for (var i = 0; i < message.uris.length; ++i)\\n                if (!$util.isString(message.uris[i]))\\n                    return \\\"uris: string[] expected\\\";\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTurnCredentials message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTurnCredentials} SdkTurnCredentials\\n     */\\n    SdkTurnCredentials.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTurnCredentials)\\n            return object;\\n        var message = new $root.SdkTurnCredentials();\\n        if (object.username != null)\\n            message.username = String(object.username);\\n        if (object.password != null)\\n            message.password = String(object.password);\\n        if (object.ttl != null)\\n            message.ttl = object.ttl >>> 0;\\n        if (object.uris) {\\n            if (!Array.isArray(object.uris))\\n                throw TypeError(\\\".SdkTurnCredentials.uris: array expected\\\");\\n            message.uris = [];\\n            for (var i = 0; i < object.uris.length; ++i)\\n                message.uris[i] = String(object.uris[i]);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTurnCredentials message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTurnCredentials\\n     * @static\\n     * @param {SdkTurnCredentials} message SdkTurnCredentials\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTurnCredentials.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.uris = [];\\n        if (options.defaults) {\\n            object.username = \\\"\\\";\\n            object.password = \\\"\\\";\\n            object.ttl = 0;\\n        }\\n        if (message.username != null && message.hasOwnProperty(\\\"username\\\"))\\n            object.username = message.username;\\n        if (message.password != null && message.hasOwnProperty(\\\"password\\\"))\\n            object.password = message.password;\\n        if (message.ttl != null && message.hasOwnProperty(\\\"ttl\\\"))\\n            object.ttl = message.ttl;\\n        if (message.uris && message.uris.length) {\\n            object.uris = [];\\n            for (var j = 0; j < message.uris.length; ++j)\\n                object.uris[j] = message.uris[j];\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTurnCredentials to JSON.\\n     * @function toJSON\\n     * @memberof SdkTurnCredentials\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTurnCredentials.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTurnCredentials;\\n})();\\n\\n$root.SdkTranscriptItem = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptItem.\\n     * @exports ISdkTranscriptItem\\n     * @interface ISdkTranscriptItem\\n     * @property {string|null} [content] SdkTranscriptItem content\\n     * @property {number|Long|null} [endTime] SdkTranscriptItem endTime\\n     * @property {string|null} [speakerAttendeeId] SdkTranscriptItem speakerAttendeeId\\n     * @property {string|null} [speakerExternalUserId] SdkTranscriptItem speakerExternalUserId\\n     * @property {number|Long|null} [startTime] SdkTranscriptItem startTime\\n     * @property {SdkTranscriptItem.Type|null} [type] SdkTranscriptItem type\\n     * @property {boolean|null} [vocabularyFilterMatch] SdkTranscriptItem vocabularyFilterMatch\\n     * @property {number|null} [confidence] SdkTranscriptItem confidence\\n     * @property {boolean|null} [stable] SdkTranscriptItem stable\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptItem.\\n     * @exports SdkTranscriptItem\\n     * @classdesc Represents a SdkTranscriptItem.\\n     * @implements ISdkTranscriptItem\\n     * @constructor\\n     * @param {ISdkTranscriptItem=} [properties] Properties to set\\n     */\\n    function SdkTranscriptItem(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptItem content.\\n     * @member {string} content\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.content = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptItem endTime.\\n     * @member {number|Long} endTime\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.endTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptItem speakerAttendeeId.\\n     * @member {string} speakerAttendeeId\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.speakerAttendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptItem speakerExternalUserId.\\n     * @member {string} speakerExternalUserId\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.speakerExternalUserId = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptItem startTime.\\n     * @member {number|Long} startTime\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.startTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptItem type.\\n     * @member {SdkTranscriptItem.Type} type\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.type = 1;\\n\\n    /**\\n     * SdkTranscriptItem vocabularyFilterMatch.\\n     * @member {boolean} vocabularyFilterMatch\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.vocabularyFilterMatch = false;\\n\\n    /**\\n     * SdkTranscriptItem confidence.\\n     * @member {number} confidence\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.confidence = 0;\\n\\n    /**\\n     * SdkTranscriptItem stable.\\n     * @member {boolean} stable\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     */\\n    SdkTranscriptItem.prototype.stable = false;\\n\\n    /**\\n     * Creates a new SdkTranscriptItem instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {ISdkTranscriptItem=} [properties] Properties to set\\n     * @returns {SdkTranscriptItem} SdkTranscriptItem instance\\n     */\\n    SdkTranscriptItem.create = function create(properties) {\\n        return new SdkTranscriptItem(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptItem message. Does not implicitly {@link SdkTranscriptItem.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {ISdkTranscriptItem} message SdkTranscriptItem message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptItem.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.content != null && Object.hasOwnProperty.call(message, \\\"content\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.content);\\n        if (message.endTime != null && Object.hasOwnProperty.call(message, \\\"endTime\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).int64(message.endTime);\\n        if (message.speakerAttendeeId != null && Object.hasOwnProperty.call(message, \\\"speakerAttendeeId\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.speakerAttendeeId);\\n        if (message.speakerExternalUserId != null && Object.hasOwnProperty.call(message, \\\"speakerExternalUserId\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.speakerExternalUserId);\\n        if (message.startTime != null && Object.hasOwnProperty.call(message, \\\"startTime\\\"))\\n            writer.uint32(/* id 5, wireType 0 =*/40).int64(message.startTime);\\n        if (message.type != null && Object.hasOwnProperty.call(message, \\\"type\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).int32(message.type);\\n        if (message.vocabularyFilterMatch != null && Object.hasOwnProperty.call(message, \\\"vocabularyFilterMatch\\\"))\\n            writer.uint32(/* id 7, wireType 0 =*/56).bool(message.vocabularyFilterMatch);\\n        if (message.confidence != null && Object.hasOwnProperty.call(message, \\\"confidence\\\"))\\n            writer.uint32(/* id 8, wireType 1 =*/65).double(message.confidence);\\n        if (message.stable != null && Object.hasOwnProperty.call(message, \\\"stable\\\"))\\n            writer.uint32(/* id 9, wireType 0 =*/72).bool(message.stable);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptItem message, length delimited. Does not implicitly {@link SdkTranscriptItem.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {ISdkTranscriptItem} message SdkTranscriptItem message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptItem.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptItem message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptItem} SdkTranscriptItem\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptItem.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptItem();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.content = reader.string();\\n                break;\\n            case 2:\\n                message.endTime = reader.int64();\\n                break;\\n            case 3:\\n                message.speakerAttendeeId = reader.string();\\n                break;\\n            case 4:\\n                message.speakerExternalUserId = reader.string();\\n                break;\\n            case 5:\\n                message.startTime = reader.int64();\\n                break;\\n            case 6:\\n                message.type = reader.int32();\\n                break;\\n            case 7:\\n                message.vocabularyFilterMatch = reader.bool();\\n                break;\\n            case 8:\\n                message.confidence = reader.double();\\n                break;\\n            case 9:\\n                message.stable = reader.bool();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptItem message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptItem} SdkTranscriptItem\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptItem.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptItem message.\\n     * @function verify\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptItem.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.content != null && message.hasOwnProperty(\\\"content\\\"))\\n            if (!$util.isString(message.content))\\n                return \\\"content: string expected\\\";\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (!$util.isInteger(message.endTime) && !(message.endTime && $util.isInteger(message.endTime.low) && $util.isInteger(message.endTime.high)))\\n                return \\\"endTime: integer|Long expected\\\";\\n        if (message.speakerAttendeeId != null && message.hasOwnProperty(\\\"speakerAttendeeId\\\"))\\n            if (!$util.isString(message.speakerAttendeeId))\\n                return \\\"speakerAttendeeId: string expected\\\";\\n        if (message.speakerExternalUserId != null && message.hasOwnProperty(\\\"speakerExternalUserId\\\"))\\n            if (!$util.isString(message.speakerExternalUserId))\\n                return \\\"speakerExternalUserId: string expected\\\";\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high)))\\n                return \\\"startTime: integer|Long expected\\\";\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            switch (message.type) {\\n            default:\\n                return \\\"type: enum value expected\\\";\\n            case 1:\\n            case 2:\\n                break;\\n            }\\n        if (message.vocabularyFilterMatch != null && message.hasOwnProperty(\\\"vocabularyFilterMatch\\\"))\\n            if (typeof message.vocabularyFilterMatch !== \\\"boolean\\\")\\n                return \\\"vocabularyFilterMatch: boolean expected\\\";\\n        if (message.confidence != null && message.hasOwnProperty(\\\"confidence\\\"))\\n            if (typeof message.confidence !== \\\"number\\\")\\n                return \\\"confidence: number expected\\\";\\n        if (message.stable != null && message.hasOwnProperty(\\\"stable\\\"))\\n            if (typeof message.stable !== \\\"boolean\\\")\\n                return \\\"stable: boolean expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptItem message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptItem} SdkTranscriptItem\\n     */\\n    SdkTranscriptItem.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptItem)\\n            return object;\\n        var message = new $root.SdkTranscriptItem();\\n        if (object.content != null)\\n            message.content = String(object.content);\\n        if (object.endTime != null)\\n            if ($util.Long)\\n                (message.endTime = $util.Long.fromValue(object.endTime)).unsigned = false;\\n            else if (typeof object.endTime === \\\"string\\\")\\n                message.endTime = parseInt(object.endTime, 10);\\n            else if (typeof object.endTime === \\\"number\\\")\\n                message.endTime = object.endTime;\\n            else if (typeof object.endTime === \\\"object\\\")\\n                message.endTime = new $util.LongBits(object.endTime.low >>> 0, object.endTime.high >>> 0).toNumber();\\n        if (object.speakerAttendeeId != null)\\n            message.speakerAttendeeId = String(object.speakerAttendeeId);\\n        if (object.speakerExternalUserId != null)\\n            message.speakerExternalUserId = String(object.speakerExternalUserId);\\n        if (object.startTime != null)\\n            if ($util.Long)\\n                (message.startTime = $util.Long.fromValue(object.startTime)).unsigned = false;\\n            else if (typeof object.startTime === \\\"string\\\")\\n                message.startTime = parseInt(object.startTime, 10);\\n            else if (typeof object.startTime === \\\"number\\\")\\n                message.startTime = object.startTime;\\n            else if (typeof object.startTime === \\\"object\\\")\\n                message.startTime = new $util.LongBits(object.startTime.low >>> 0, object.startTime.high >>> 0).toNumber();\\n        switch (object.type) {\\n        case \\\"PRONUNCIATION\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"PUNCTUATION\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        }\\n        if (object.vocabularyFilterMatch != null)\\n            message.vocabularyFilterMatch = Boolean(object.vocabularyFilterMatch);\\n        if (object.confidence != null)\\n            message.confidence = Number(object.confidence);\\n        if (object.stable != null)\\n            message.stable = Boolean(object.stable);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptItem message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptItem\\n     * @static\\n     * @param {SdkTranscriptItem} message SdkTranscriptItem\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptItem.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.content = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.endTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.endTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.speakerAttendeeId = \\\"\\\";\\n            object.speakerExternalUserId = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.startTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.startTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.type = options.enums === String ? \\\"PRONUNCIATION\\\" : 1;\\n            object.vocabularyFilterMatch = false;\\n            object.confidence = 0;\\n            object.stable = false;\\n        }\\n        if (message.content != null && message.hasOwnProperty(\\\"content\\\"))\\n            object.content = message.content;\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (typeof message.endTime === \\\"number\\\")\\n                object.endTime = options.longs === String ? String(message.endTime) : message.endTime;\\n            else\\n                object.endTime = options.longs === String ? $util.Long.prototype.toString.call(message.endTime) : options.longs === Number ? new $util.LongBits(message.endTime.low >>> 0, message.endTime.high >>> 0).toNumber() : message.endTime;\\n        if (message.speakerAttendeeId != null && message.hasOwnProperty(\\\"speakerAttendeeId\\\"))\\n            object.speakerAttendeeId = message.speakerAttendeeId;\\n        if (message.speakerExternalUserId != null && message.hasOwnProperty(\\\"speakerExternalUserId\\\"))\\n            object.speakerExternalUserId = message.speakerExternalUserId;\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (typeof message.startTime === \\\"number\\\")\\n                object.startTime = options.longs === String ? String(message.startTime) : message.startTime;\\n            else\\n                object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber() : message.startTime;\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkTranscriptItem.Type[message.type] : message.type;\\n        if (message.vocabularyFilterMatch != null && message.hasOwnProperty(\\\"vocabularyFilterMatch\\\"))\\n            object.vocabularyFilterMatch = message.vocabularyFilterMatch;\\n        if (message.confidence != null && message.hasOwnProperty(\\\"confidence\\\"))\\n            object.confidence = options.json && !isFinite(message.confidence) ? String(message.confidence) : message.confidence;\\n        if (message.stable != null && message.hasOwnProperty(\\\"stable\\\"))\\n            object.stable = message.stable;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptItem to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptItem\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptItem.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    /**\\n     * Type enum.\\n     * @name SdkTranscriptItem.Type\\n     * @enum {number}\\n     * @property {number} PRONUNCIATION=1 PRONUNCIATION value\\n     * @property {number} PUNCTUATION=2 PUNCTUATION value\\n     */\\n    SdkTranscriptItem.Type = (function() {\\n        var valuesById = {}, values = Object.create(valuesById);\\n        values[valuesById[1] = \\\"PRONUNCIATION\\\"] = 1;\\n        values[valuesById[2] = \\\"PUNCTUATION\\\"] = 2;\\n        return values;\\n    })();\\n\\n    return SdkTranscriptItem;\\n})();\\n\\n$root.SdkTranscriptEntity = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptEntity.\\n     * @exports ISdkTranscriptEntity\\n     * @interface ISdkTranscriptEntity\\n     * @property {string|null} [category] SdkTranscriptEntity category\\n     * @property {number|null} [confidence] SdkTranscriptEntity confidence\\n     * @property {string|null} [content] SdkTranscriptEntity content\\n     * @property {number|Long|null} [endTime] SdkTranscriptEntity endTime\\n     * @property {number|Long|null} [startTime] SdkTranscriptEntity startTime\\n     * @property {string|null} [type] SdkTranscriptEntity type\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptEntity.\\n     * @exports SdkTranscriptEntity\\n     * @classdesc Represents a SdkTranscriptEntity.\\n     * @implements ISdkTranscriptEntity\\n     * @constructor\\n     * @param {ISdkTranscriptEntity=} [properties] Properties to set\\n     */\\n    function SdkTranscriptEntity(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptEntity category.\\n     * @member {string} category\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.category = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptEntity confidence.\\n     * @member {number} confidence\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.confidence = 0;\\n\\n    /**\\n     * SdkTranscriptEntity content.\\n     * @member {string} content\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.content = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptEntity endTime.\\n     * @member {number|Long} endTime\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.endTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptEntity startTime.\\n     * @member {number|Long} startTime\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.startTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptEntity type.\\n     * @member {string} type\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     */\\n    SdkTranscriptEntity.prototype.type = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkTranscriptEntity instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {ISdkTranscriptEntity=} [properties] Properties to set\\n     * @returns {SdkTranscriptEntity} SdkTranscriptEntity instance\\n     */\\n    SdkTranscriptEntity.create = function create(properties) {\\n        return new SdkTranscriptEntity(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptEntity message. Does not implicitly {@link SdkTranscriptEntity.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {ISdkTranscriptEntity} message SdkTranscriptEntity message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptEntity.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.category != null && Object.hasOwnProperty.call(message, \\\"category\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.category);\\n        if (message.confidence != null && Object.hasOwnProperty.call(message, \\\"confidence\\\"))\\n            writer.uint32(/* id 2, wireType 1 =*/17).double(message.confidence);\\n        if (message.content != null && Object.hasOwnProperty.call(message, \\\"content\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.content);\\n        if (message.endTime != null && Object.hasOwnProperty.call(message, \\\"endTime\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).int64(message.endTime);\\n        if (message.startTime != null && Object.hasOwnProperty.call(message, \\\"startTime\\\"))\\n            writer.uint32(/* id 5, wireType 0 =*/40).int64(message.startTime);\\n        if (message.type != null && Object.hasOwnProperty.call(message, \\\"type\\\"))\\n            writer.uint32(/* id 6, wireType 2 =*/50).string(message.type);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptEntity message, length delimited. Does not implicitly {@link SdkTranscriptEntity.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {ISdkTranscriptEntity} message SdkTranscriptEntity message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptEntity.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptEntity message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptEntity} SdkTranscriptEntity\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptEntity.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptEntity();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.category = reader.string();\\n                break;\\n            case 2:\\n                message.confidence = reader.double();\\n                break;\\n            case 3:\\n                message.content = reader.string();\\n                break;\\n            case 4:\\n                message.endTime = reader.int64();\\n                break;\\n            case 5:\\n                message.startTime = reader.int64();\\n                break;\\n            case 6:\\n                message.type = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptEntity message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptEntity} SdkTranscriptEntity\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptEntity.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptEntity message.\\n     * @function verify\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptEntity.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.category != null && message.hasOwnProperty(\\\"category\\\"))\\n            if (!$util.isString(message.category))\\n                return \\\"category: string expected\\\";\\n        if (message.confidence != null && message.hasOwnProperty(\\\"confidence\\\"))\\n            if (typeof message.confidence !== \\\"number\\\")\\n                return \\\"confidence: number expected\\\";\\n        if (message.content != null && message.hasOwnProperty(\\\"content\\\"))\\n            if (!$util.isString(message.content))\\n                return \\\"content: string expected\\\";\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (!$util.isInteger(message.endTime) && !(message.endTime && $util.isInteger(message.endTime.low) && $util.isInteger(message.endTime.high)))\\n                return \\\"endTime: integer|Long expected\\\";\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high)))\\n                return \\\"startTime: integer|Long expected\\\";\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            if (!$util.isString(message.type))\\n                return \\\"type: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptEntity message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptEntity} SdkTranscriptEntity\\n     */\\n    SdkTranscriptEntity.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptEntity)\\n            return object;\\n        var message = new $root.SdkTranscriptEntity();\\n        if (object.category != null)\\n            message.category = String(object.category);\\n        if (object.confidence != null)\\n            message.confidence = Number(object.confidence);\\n        if (object.content != null)\\n            message.content = String(object.content);\\n        if (object.endTime != null)\\n            if ($util.Long)\\n                (message.endTime = $util.Long.fromValue(object.endTime)).unsigned = false;\\n            else if (typeof object.endTime === \\\"string\\\")\\n                message.endTime = parseInt(object.endTime, 10);\\n            else if (typeof object.endTime === \\\"number\\\")\\n                message.endTime = object.endTime;\\n            else if (typeof object.endTime === \\\"object\\\")\\n                message.endTime = new $util.LongBits(object.endTime.low >>> 0, object.endTime.high >>> 0).toNumber();\\n        if (object.startTime != null)\\n            if ($util.Long)\\n                (message.startTime = $util.Long.fromValue(object.startTime)).unsigned = false;\\n            else if (typeof object.startTime === \\\"string\\\")\\n                message.startTime = parseInt(object.startTime, 10);\\n            else if (typeof object.startTime === \\\"number\\\")\\n                message.startTime = object.startTime;\\n            else if (typeof object.startTime === \\\"object\\\")\\n                message.startTime = new $util.LongBits(object.startTime.low >>> 0, object.startTime.high >>> 0).toNumber();\\n        if (object.type != null)\\n            message.type = String(object.type);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptEntity message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptEntity\\n     * @static\\n     * @param {SdkTranscriptEntity} message SdkTranscriptEntity\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptEntity.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.category = \\\"\\\";\\n            object.confidence = 0;\\n            object.content = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.endTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.endTime = options.longs === String ? \\\"0\\\" : 0;\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.startTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.startTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.type = \\\"\\\";\\n        }\\n        if (message.category != null && message.hasOwnProperty(\\\"category\\\"))\\n            object.category = message.category;\\n        if (message.confidence != null && message.hasOwnProperty(\\\"confidence\\\"))\\n            object.confidence = options.json && !isFinite(message.confidence) ? String(message.confidence) : message.confidence;\\n        if (message.content != null && message.hasOwnProperty(\\\"content\\\"))\\n            object.content = message.content;\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (typeof message.endTime === \\\"number\\\")\\n                object.endTime = options.longs === String ? String(message.endTime) : message.endTime;\\n            else\\n                object.endTime = options.longs === String ? $util.Long.prototype.toString.call(message.endTime) : options.longs === Number ? new $util.LongBits(message.endTime.low >>> 0, message.endTime.high >>> 0).toNumber() : message.endTime;\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (typeof message.startTime === \\\"number\\\")\\n                object.startTime = options.longs === String ? String(message.startTime) : message.startTime;\\n            else\\n                object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber() : message.startTime;\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = message.type;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptEntity to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptEntity\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptEntity.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptEntity;\\n})();\\n\\n$root.SdkTranscriptAlternative = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptAlternative.\\n     * @exports ISdkTranscriptAlternative\\n     * @interface ISdkTranscriptAlternative\\n     * @property {Array.<ISdkTranscriptItem>|null} [items] SdkTranscriptAlternative items\\n     * @property {string|null} [transcript] SdkTranscriptAlternative transcript\\n     * @property {Array.<ISdkTranscriptEntity>|null} [entities] SdkTranscriptAlternative entities\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptAlternative.\\n     * @exports SdkTranscriptAlternative\\n     * @classdesc Represents a SdkTranscriptAlternative.\\n     * @implements ISdkTranscriptAlternative\\n     * @constructor\\n     * @param {ISdkTranscriptAlternative=} [properties] Properties to set\\n     */\\n    function SdkTranscriptAlternative(properties) {\\n        this.items = [];\\n        this.entities = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptAlternative items.\\n     * @member {Array.<ISdkTranscriptItem>} items\\n     * @memberof SdkTranscriptAlternative\\n     * @instance\\n     */\\n    SdkTranscriptAlternative.prototype.items = $util.emptyArray;\\n\\n    /**\\n     * SdkTranscriptAlternative transcript.\\n     * @member {string} transcript\\n     * @memberof SdkTranscriptAlternative\\n     * @instance\\n     */\\n    SdkTranscriptAlternative.prototype.transcript = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptAlternative entities.\\n     * @member {Array.<ISdkTranscriptEntity>} entities\\n     * @memberof SdkTranscriptAlternative\\n     * @instance\\n     */\\n    SdkTranscriptAlternative.prototype.entities = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkTranscriptAlternative instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {ISdkTranscriptAlternative=} [properties] Properties to set\\n     * @returns {SdkTranscriptAlternative} SdkTranscriptAlternative instance\\n     */\\n    SdkTranscriptAlternative.create = function create(properties) {\\n        return new SdkTranscriptAlternative(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptAlternative message. Does not implicitly {@link SdkTranscriptAlternative.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {ISdkTranscriptAlternative} message SdkTranscriptAlternative message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptAlternative.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.items != null && message.items.length)\\n            for (var i = 0; i < message.items.length; ++i)\\n                $root.SdkTranscriptItem.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.transcript != null && Object.hasOwnProperty.call(message, \\\"transcript\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.transcript);\\n        if (message.entities != null && message.entities.length)\\n            for (var i = 0; i < message.entities.length; ++i)\\n                $root.SdkTranscriptEntity.encode(message.entities[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptAlternative message, length delimited. Does not implicitly {@link SdkTranscriptAlternative.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {ISdkTranscriptAlternative} message SdkTranscriptAlternative message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptAlternative.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptAlternative message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptAlternative} SdkTranscriptAlternative\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptAlternative.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptAlternative();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.items && message.items.length))\\n                    message.items = [];\\n                message.items.push($root.SdkTranscriptItem.decode(reader, reader.uint32()));\\n                break;\\n            case 2:\\n                message.transcript = reader.string();\\n                break;\\n            case 3:\\n                if (!(message.entities && message.entities.length))\\n                    message.entities = [];\\n                message.entities.push($root.SdkTranscriptEntity.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptAlternative message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptAlternative} SdkTranscriptAlternative\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptAlternative.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptAlternative message.\\n     * @function verify\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptAlternative.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.items != null && message.hasOwnProperty(\\\"items\\\")) {\\n            if (!Array.isArray(message.items))\\n                return \\\"items: array expected\\\";\\n            for (var i = 0; i < message.items.length; ++i) {\\n                var error = $root.SdkTranscriptItem.verify(message.items[i]);\\n                if (error)\\n                    return \\\"items.\\\" + error;\\n            }\\n        }\\n        if (message.transcript != null && message.hasOwnProperty(\\\"transcript\\\"))\\n            if (!$util.isString(message.transcript))\\n                return \\\"transcript: string expected\\\";\\n        if (message.entities != null && message.hasOwnProperty(\\\"entities\\\")) {\\n            if (!Array.isArray(message.entities))\\n                return \\\"entities: array expected\\\";\\n            for (var i = 0; i < message.entities.length; ++i) {\\n                var error = $root.SdkTranscriptEntity.verify(message.entities[i]);\\n                if (error)\\n                    return \\\"entities.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptAlternative message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptAlternative} SdkTranscriptAlternative\\n     */\\n    SdkTranscriptAlternative.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptAlternative)\\n            return object;\\n        var message = new $root.SdkTranscriptAlternative();\\n        if (object.items) {\\n            if (!Array.isArray(object.items))\\n                throw TypeError(\\\".SdkTranscriptAlternative.items: array expected\\\");\\n            message.items = [];\\n            for (var i = 0; i < object.items.length; ++i) {\\n                if (typeof object.items[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscriptAlternative.items: object expected\\\");\\n                message.items[i] = $root.SdkTranscriptItem.fromObject(object.items[i]);\\n            }\\n        }\\n        if (object.transcript != null)\\n            message.transcript = String(object.transcript);\\n        if (object.entities) {\\n            if (!Array.isArray(object.entities))\\n                throw TypeError(\\\".SdkTranscriptAlternative.entities: array expected\\\");\\n            message.entities = [];\\n            for (var i = 0; i < object.entities.length; ++i) {\\n                if (typeof object.entities[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscriptAlternative.entities: object expected\\\");\\n                message.entities[i] = $root.SdkTranscriptEntity.fromObject(object.entities[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptAlternative message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptAlternative\\n     * @static\\n     * @param {SdkTranscriptAlternative} message SdkTranscriptAlternative\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptAlternative.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.items = [];\\n            object.entities = [];\\n        }\\n        if (options.defaults)\\n            object.transcript = \\\"\\\";\\n        if (message.items && message.items.length) {\\n            object.items = [];\\n            for (var j = 0; j < message.items.length; ++j)\\n                object.items[j] = $root.SdkTranscriptItem.toObject(message.items[j], options);\\n        }\\n        if (message.transcript != null && message.hasOwnProperty(\\\"transcript\\\"))\\n            object.transcript = message.transcript;\\n        if (message.entities && message.entities.length) {\\n            object.entities = [];\\n            for (var j = 0; j < message.entities.length; ++j)\\n                object.entities[j] = $root.SdkTranscriptEntity.toObject(message.entities[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptAlternative to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptAlternative\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptAlternative.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptAlternative;\\n})();\\n\\n$root.SdkTranscriptLanguageWithScore = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptLanguageWithScore.\\n     * @exports ISdkTranscriptLanguageWithScore\\n     * @interface ISdkTranscriptLanguageWithScore\\n     * @property {string|null} [languageCode] SdkTranscriptLanguageWithScore languageCode\\n     * @property {number|null} [score] SdkTranscriptLanguageWithScore score\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptLanguageWithScore.\\n     * @exports SdkTranscriptLanguageWithScore\\n     * @classdesc Represents a SdkTranscriptLanguageWithScore.\\n     * @implements ISdkTranscriptLanguageWithScore\\n     * @constructor\\n     * @param {ISdkTranscriptLanguageWithScore=} [properties] Properties to set\\n     */\\n    function SdkTranscriptLanguageWithScore(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptLanguageWithScore languageCode.\\n     * @member {string} languageCode\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @instance\\n     */\\n    SdkTranscriptLanguageWithScore.prototype.languageCode = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptLanguageWithScore score.\\n     * @member {number} score\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @instance\\n     */\\n    SdkTranscriptLanguageWithScore.prototype.score = 0;\\n\\n    /**\\n     * Creates a new SdkTranscriptLanguageWithScore instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {ISdkTranscriptLanguageWithScore=} [properties] Properties to set\\n     * @returns {SdkTranscriptLanguageWithScore} SdkTranscriptLanguageWithScore instance\\n     */\\n    SdkTranscriptLanguageWithScore.create = function create(properties) {\\n        return new SdkTranscriptLanguageWithScore(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptLanguageWithScore message. Does not implicitly {@link SdkTranscriptLanguageWithScore.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {ISdkTranscriptLanguageWithScore} message SdkTranscriptLanguageWithScore message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptLanguageWithScore.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.languageCode != null && Object.hasOwnProperty.call(message, \\\"languageCode\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.languageCode);\\n        if (message.score != null && Object.hasOwnProperty.call(message, \\\"score\\\"))\\n            writer.uint32(/* id 2, wireType 1 =*/17).double(message.score);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptLanguageWithScore message, length delimited. Does not implicitly {@link SdkTranscriptLanguageWithScore.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {ISdkTranscriptLanguageWithScore} message SdkTranscriptLanguageWithScore message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptLanguageWithScore.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptLanguageWithScore message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptLanguageWithScore} SdkTranscriptLanguageWithScore\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptLanguageWithScore.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptLanguageWithScore();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.languageCode = reader.string();\\n                break;\\n            case 2:\\n                message.score = reader.double();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptLanguageWithScore message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptLanguageWithScore} SdkTranscriptLanguageWithScore\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptLanguageWithScore.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptLanguageWithScore message.\\n     * @function verify\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptLanguageWithScore.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.languageCode != null && message.hasOwnProperty(\\\"languageCode\\\"))\\n            if (!$util.isString(message.languageCode))\\n                return \\\"languageCode: string expected\\\";\\n        if (message.score != null && message.hasOwnProperty(\\\"score\\\"))\\n            if (typeof message.score !== \\\"number\\\")\\n                return \\\"score: number expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptLanguageWithScore message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptLanguageWithScore} SdkTranscriptLanguageWithScore\\n     */\\n    SdkTranscriptLanguageWithScore.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptLanguageWithScore)\\n            return object;\\n        var message = new $root.SdkTranscriptLanguageWithScore();\\n        if (object.languageCode != null)\\n            message.languageCode = String(object.languageCode);\\n        if (object.score != null)\\n            message.score = Number(object.score);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptLanguageWithScore message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @static\\n     * @param {SdkTranscriptLanguageWithScore} message SdkTranscriptLanguageWithScore\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptLanguageWithScore.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.languageCode = \\\"\\\";\\n            object.score = 0;\\n        }\\n        if (message.languageCode != null && message.hasOwnProperty(\\\"languageCode\\\"))\\n            object.languageCode = message.languageCode;\\n        if (message.score != null && message.hasOwnProperty(\\\"score\\\"))\\n            object.score = options.json && !isFinite(message.score) ? String(message.score) : message.score;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptLanguageWithScore to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptLanguageWithScore\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptLanguageWithScore.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptLanguageWithScore;\\n})();\\n\\n$root.SdkTranscriptResult = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptResult.\\n     * @exports ISdkTranscriptResult\\n     * @interface ISdkTranscriptResult\\n     * @property {Array.<ISdkTranscriptAlternative>|null} [alternatives] SdkTranscriptResult alternatives\\n     * @property {string|null} [channelId] SdkTranscriptResult channelId\\n     * @property {number|Long|null} [endTime] SdkTranscriptResult endTime\\n     * @property {boolean|null} [isPartial] SdkTranscriptResult isPartial\\n     * @property {string|null} [resultId] SdkTranscriptResult resultId\\n     * @property {number|Long|null} [startTime] SdkTranscriptResult startTime\\n     * @property {string|null} [languageCode] SdkTranscriptResult languageCode\\n     * @property {Array.<ISdkTranscriptLanguageWithScore>|null} [languageIdentification] SdkTranscriptResult languageIdentification\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptResult.\\n     * @exports SdkTranscriptResult\\n     * @classdesc Represents a SdkTranscriptResult.\\n     * @implements ISdkTranscriptResult\\n     * @constructor\\n     * @param {ISdkTranscriptResult=} [properties] Properties to set\\n     */\\n    function SdkTranscriptResult(properties) {\\n        this.alternatives = [];\\n        this.languageIdentification = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptResult alternatives.\\n     * @member {Array.<ISdkTranscriptAlternative>} alternatives\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.alternatives = $util.emptyArray;\\n\\n    /**\\n     * SdkTranscriptResult channelId.\\n     * @member {string} channelId\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.channelId = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptResult endTime.\\n     * @member {number|Long} endTime\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.endTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptResult isPartial.\\n     * @member {boolean} isPartial\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.isPartial = false;\\n\\n    /**\\n     * SdkTranscriptResult resultId.\\n     * @member {string} resultId\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.resultId = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptResult startTime.\\n     * @member {number|Long} startTime\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.startTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptResult languageCode.\\n     * @member {string} languageCode\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.languageCode = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptResult languageIdentification.\\n     * @member {Array.<ISdkTranscriptLanguageWithScore>} languageIdentification\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     */\\n    SdkTranscriptResult.prototype.languageIdentification = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkTranscriptResult instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {ISdkTranscriptResult=} [properties] Properties to set\\n     * @returns {SdkTranscriptResult} SdkTranscriptResult instance\\n     */\\n    SdkTranscriptResult.create = function create(properties) {\\n        return new SdkTranscriptResult(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptResult message. Does not implicitly {@link SdkTranscriptResult.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {ISdkTranscriptResult} message SdkTranscriptResult message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptResult.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.alternatives != null && message.alternatives.length)\\n            for (var i = 0; i < message.alternatives.length; ++i)\\n                $root.SdkTranscriptAlternative.encode(message.alternatives[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.channelId != null && Object.hasOwnProperty.call(message, \\\"channelId\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.channelId);\\n        if (message.endTime != null && Object.hasOwnProperty.call(message, \\\"endTime\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).int64(message.endTime);\\n        if (message.isPartial != null && Object.hasOwnProperty.call(message, \\\"isPartial\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isPartial);\\n        if (message.resultId != null && Object.hasOwnProperty.call(message, \\\"resultId\\\"))\\n            writer.uint32(/* id 5, wireType 2 =*/42).string(message.resultId);\\n        if (message.startTime != null && Object.hasOwnProperty.call(message, \\\"startTime\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).int64(message.startTime);\\n        if (message.languageCode != null && Object.hasOwnProperty.call(message, \\\"languageCode\\\"))\\n            writer.uint32(/* id 7, wireType 2 =*/58).string(message.languageCode);\\n        if (message.languageIdentification != null && message.languageIdentification.length)\\n            for (var i = 0; i < message.languageIdentification.length; ++i)\\n                $root.SdkTranscriptLanguageWithScore.encode(message.languageIdentification[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptResult message, length delimited. Does not implicitly {@link SdkTranscriptResult.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {ISdkTranscriptResult} message SdkTranscriptResult message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptResult.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptResult message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptResult} SdkTranscriptResult\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptResult.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptResult();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.alternatives && message.alternatives.length))\\n                    message.alternatives = [];\\n                message.alternatives.push($root.SdkTranscriptAlternative.decode(reader, reader.uint32()));\\n                break;\\n            case 2:\\n                message.channelId = reader.string();\\n                break;\\n            case 3:\\n                message.endTime = reader.int64();\\n                break;\\n            case 4:\\n                message.isPartial = reader.bool();\\n                break;\\n            case 5:\\n                message.resultId = reader.string();\\n                break;\\n            case 6:\\n                message.startTime = reader.int64();\\n                break;\\n            case 7:\\n                message.languageCode = reader.string();\\n                break;\\n            case 8:\\n                if (!(message.languageIdentification && message.languageIdentification.length))\\n                    message.languageIdentification = [];\\n                message.languageIdentification.push($root.SdkTranscriptLanguageWithScore.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptResult message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptResult} SdkTranscriptResult\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptResult.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptResult message.\\n     * @function verify\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptResult.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.alternatives != null && message.hasOwnProperty(\\\"alternatives\\\")) {\\n            if (!Array.isArray(message.alternatives))\\n                return \\\"alternatives: array expected\\\";\\n            for (var i = 0; i < message.alternatives.length; ++i) {\\n                var error = $root.SdkTranscriptAlternative.verify(message.alternatives[i]);\\n                if (error)\\n                    return \\\"alternatives.\\\" + error;\\n            }\\n        }\\n        if (message.channelId != null && message.hasOwnProperty(\\\"channelId\\\"))\\n            if (!$util.isString(message.channelId))\\n                return \\\"channelId: string expected\\\";\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (!$util.isInteger(message.endTime) && !(message.endTime && $util.isInteger(message.endTime.low) && $util.isInteger(message.endTime.high)))\\n                return \\\"endTime: integer|Long expected\\\";\\n        if (message.isPartial != null && message.hasOwnProperty(\\\"isPartial\\\"))\\n            if (typeof message.isPartial !== \\\"boolean\\\")\\n                return \\\"isPartial: boolean expected\\\";\\n        if (message.resultId != null && message.hasOwnProperty(\\\"resultId\\\"))\\n            if (!$util.isString(message.resultId))\\n                return \\\"resultId: string expected\\\";\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high)))\\n                return \\\"startTime: integer|Long expected\\\";\\n        if (message.languageCode != null && message.hasOwnProperty(\\\"languageCode\\\"))\\n            if (!$util.isString(message.languageCode))\\n                return \\\"languageCode: string expected\\\";\\n        if (message.languageIdentification != null && message.hasOwnProperty(\\\"languageIdentification\\\")) {\\n            if (!Array.isArray(message.languageIdentification))\\n                return \\\"languageIdentification: array expected\\\";\\n            for (var i = 0; i < message.languageIdentification.length; ++i) {\\n                var error = $root.SdkTranscriptLanguageWithScore.verify(message.languageIdentification[i]);\\n                if (error)\\n                    return \\\"languageIdentification.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptResult message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptResult} SdkTranscriptResult\\n     */\\n    SdkTranscriptResult.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptResult)\\n            return object;\\n        var message = new $root.SdkTranscriptResult();\\n        if (object.alternatives) {\\n            if (!Array.isArray(object.alternatives))\\n                throw TypeError(\\\".SdkTranscriptResult.alternatives: array expected\\\");\\n            message.alternatives = [];\\n            for (var i = 0; i < object.alternatives.length; ++i) {\\n                if (typeof object.alternatives[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscriptResult.alternatives: object expected\\\");\\n                message.alternatives[i] = $root.SdkTranscriptAlternative.fromObject(object.alternatives[i]);\\n            }\\n        }\\n        if (object.channelId != null)\\n            message.channelId = String(object.channelId);\\n        if (object.endTime != null)\\n            if ($util.Long)\\n                (message.endTime = $util.Long.fromValue(object.endTime)).unsigned = false;\\n            else if (typeof object.endTime === \\\"string\\\")\\n                message.endTime = parseInt(object.endTime, 10);\\n            else if (typeof object.endTime === \\\"number\\\")\\n                message.endTime = object.endTime;\\n            else if (typeof object.endTime === \\\"object\\\")\\n                message.endTime = new $util.LongBits(object.endTime.low >>> 0, object.endTime.high >>> 0).toNumber();\\n        if (object.isPartial != null)\\n            message.isPartial = Boolean(object.isPartial);\\n        if (object.resultId != null)\\n            message.resultId = String(object.resultId);\\n        if (object.startTime != null)\\n            if ($util.Long)\\n                (message.startTime = $util.Long.fromValue(object.startTime)).unsigned = false;\\n            else if (typeof object.startTime === \\\"string\\\")\\n                message.startTime = parseInt(object.startTime, 10);\\n            else if (typeof object.startTime === \\\"number\\\")\\n                message.startTime = object.startTime;\\n            else if (typeof object.startTime === \\\"object\\\")\\n                message.startTime = new $util.LongBits(object.startTime.low >>> 0, object.startTime.high >>> 0).toNumber();\\n        if (object.languageCode != null)\\n            message.languageCode = String(object.languageCode);\\n        if (object.languageIdentification) {\\n            if (!Array.isArray(object.languageIdentification))\\n                throw TypeError(\\\".SdkTranscriptResult.languageIdentification: array expected\\\");\\n            message.languageIdentification = [];\\n            for (var i = 0; i < object.languageIdentification.length; ++i) {\\n                if (typeof object.languageIdentification[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscriptResult.languageIdentification: object expected\\\");\\n                message.languageIdentification[i] = $root.SdkTranscriptLanguageWithScore.fromObject(object.languageIdentification[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptResult message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptResult\\n     * @static\\n     * @param {SdkTranscriptResult} message SdkTranscriptResult\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptResult.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.alternatives = [];\\n            object.languageIdentification = [];\\n        }\\n        if (options.defaults) {\\n            object.channelId = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.endTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.endTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.isPartial = false;\\n            object.resultId = \\\"\\\";\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.startTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.startTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.languageCode = \\\"\\\";\\n        }\\n        if (message.alternatives && message.alternatives.length) {\\n            object.alternatives = [];\\n            for (var j = 0; j < message.alternatives.length; ++j)\\n                object.alternatives[j] = $root.SdkTranscriptAlternative.toObject(message.alternatives[j], options);\\n        }\\n        if (message.channelId != null && message.hasOwnProperty(\\\"channelId\\\"))\\n            object.channelId = message.channelId;\\n        if (message.endTime != null && message.hasOwnProperty(\\\"endTime\\\"))\\n            if (typeof message.endTime === \\\"number\\\")\\n                object.endTime = options.longs === String ? String(message.endTime) : message.endTime;\\n            else\\n                object.endTime = options.longs === String ? $util.Long.prototype.toString.call(message.endTime) : options.longs === Number ? new $util.LongBits(message.endTime.low >>> 0, message.endTime.high >>> 0).toNumber() : message.endTime;\\n        if (message.isPartial != null && message.hasOwnProperty(\\\"isPartial\\\"))\\n            object.isPartial = message.isPartial;\\n        if (message.resultId != null && message.hasOwnProperty(\\\"resultId\\\"))\\n            object.resultId = message.resultId;\\n        if (message.startTime != null && message.hasOwnProperty(\\\"startTime\\\"))\\n            if (typeof message.startTime === \\\"number\\\")\\n                object.startTime = options.longs === String ? String(message.startTime) : message.startTime;\\n            else\\n                object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber() : message.startTime;\\n        if (message.languageCode != null && message.hasOwnProperty(\\\"languageCode\\\"))\\n            object.languageCode = message.languageCode;\\n        if (message.languageIdentification && message.languageIdentification.length) {\\n            object.languageIdentification = [];\\n            for (var j = 0; j < message.languageIdentification.length; ++j)\\n                object.languageIdentification[j] = $root.SdkTranscriptLanguageWithScore.toObject(message.languageIdentification[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptResult to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptResult\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptResult.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptResult;\\n})();\\n\\n$root.SdkTranscript = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscript.\\n     * @exports ISdkTranscript\\n     * @interface ISdkTranscript\\n     * @property {Array.<ISdkTranscriptResult>|null} [results] SdkTranscript results\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscript.\\n     * @exports SdkTranscript\\n     * @classdesc Represents a SdkTranscript.\\n     * @implements ISdkTranscript\\n     * @constructor\\n     * @param {ISdkTranscript=} [properties] Properties to set\\n     */\\n    function SdkTranscript(properties) {\\n        this.results = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscript results.\\n     * @member {Array.<ISdkTranscriptResult>} results\\n     * @memberof SdkTranscript\\n     * @instance\\n     */\\n    SdkTranscript.prototype.results = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkTranscript instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {ISdkTranscript=} [properties] Properties to set\\n     * @returns {SdkTranscript} SdkTranscript instance\\n     */\\n    SdkTranscript.create = function create(properties) {\\n        return new SdkTranscript(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscript message. Does not implicitly {@link SdkTranscript.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {ISdkTranscript} message SdkTranscript message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscript.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.results != null && message.results.length)\\n            for (var i = 0; i < message.results.length; ++i)\\n                $root.SdkTranscriptResult.encode(message.results[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscript message, length delimited. Does not implicitly {@link SdkTranscript.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {ISdkTranscript} message SdkTranscript message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscript.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscript message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscript} SdkTranscript\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscript.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscript();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.results && message.results.length))\\n                    message.results = [];\\n                message.results.push($root.SdkTranscriptResult.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscript message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscript} SdkTranscript\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscript.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscript message.\\n     * @function verify\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscript.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.results != null && message.hasOwnProperty(\\\"results\\\")) {\\n            if (!Array.isArray(message.results))\\n                return \\\"results: array expected\\\";\\n            for (var i = 0; i < message.results.length; ++i) {\\n                var error = $root.SdkTranscriptResult.verify(message.results[i]);\\n                if (error)\\n                    return \\\"results.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscript message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscript} SdkTranscript\\n     */\\n    SdkTranscript.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscript)\\n            return object;\\n        var message = new $root.SdkTranscript();\\n        if (object.results) {\\n            if (!Array.isArray(object.results))\\n                throw TypeError(\\\".SdkTranscript.results: array expected\\\");\\n            message.results = [];\\n            for (var i = 0; i < object.results.length; ++i) {\\n                if (typeof object.results[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscript.results: object expected\\\");\\n                message.results[i] = $root.SdkTranscriptResult.fromObject(object.results[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscript message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscript\\n     * @static\\n     * @param {SdkTranscript} message SdkTranscript\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscript.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.results = [];\\n        if (message.results && message.results.length) {\\n            object.results = [];\\n            for (var j = 0; j < message.results.length; ++j)\\n                object.results[j] = $root.SdkTranscriptResult.toObject(message.results[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscript to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscript\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscript.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscript;\\n})();\\n\\n$root.SdkTranscriptionStatus = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptionStatus.\\n     * @exports ISdkTranscriptionStatus\\n     * @interface ISdkTranscriptionStatus\\n     * @property {SdkTranscriptionStatus.Type|null} [type] SdkTranscriptionStatus type\\n     * @property {number|Long|null} [eventTime] SdkTranscriptionStatus eventTime\\n     * @property {string|null} [transcriptionRegion] SdkTranscriptionStatus transcriptionRegion\\n     * @property {string|null} [transcriptionConfiguration] SdkTranscriptionStatus transcriptionConfiguration\\n     * @property {string|null} [message] SdkTranscriptionStatus message\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptionStatus.\\n     * @exports SdkTranscriptionStatus\\n     * @classdesc Represents a SdkTranscriptionStatus.\\n     * @implements ISdkTranscriptionStatus\\n     * @constructor\\n     * @param {ISdkTranscriptionStatus=} [properties] Properties to set\\n     */\\n    function SdkTranscriptionStatus(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptionStatus type.\\n     * @member {SdkTranscriptionStatus.Type} type\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     */\\n    SdkTranscriptionStatus.prototype.type = 1;\\n\\n    /**\\n     * SdkTranscriptionStatus eventTime.\\n     * @member {number|Long} eventTime\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     */\\n    SdkTranscriptionStatus.prototype.eventTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\\n\\n    /**\\n     * SdkTranscriptionStatus transcriptionRegion.\\n     * @member {string} transcriptionRegion\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     */\\n    SdkTranscriptionStatus.prototype.transcriptionRegion = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptionStatus transcriptionConfiguration.\\n     * @member {string} transcriptionConfiguration\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     */\\n    SdkTranscriptionStatus.prototype.transcriptionConfiguration = \\\"\\\";\\n\\n    /**\\n     * SdkTranscriptionStatus message.\\n     * @member {string} message\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     */\\n    SdkTranscriptionStatus.prototype.message = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkTranscriptionStatus instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {ISdkTranscriptionStatus=} [properties] Properties to set\\n     * @returns {SdkTranscriptionStatus} SdkTranscriptionStatus instance\\n     */\\n    SdkTranscriptionStatus.create = function create(properties) {\\n        return new SdkTranscriptionStatus(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptionStatus message. Does not implicitly {@link SdkTranscriptionStatus.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {ISdkTranscriptionStatus} message SdkTranscriptionStatus message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptionStatus.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.type != null && Object.hasOwnProperty.call(message, \\\"type\\\"))\\n            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);\\n        if (message.eventTime != null && Object.hasOwnProperty.call(message, \\\"eventTime\\\"))\\n            writer.uint32(/* id 2, wireType 0 =*/16).int64(message.eventTime);\\n        if (message.transcriptionRegion != null && Object.hasOwnProperty.call(message, \\\"transcriptionRegion\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.transcriptionRegion);\\n        if (message.transcriptionConfiguration != null && Object.hasOwnProperty.call(message, \\\"transcriptionConfiguration\\\"))\\n            writer.uint32(/* id 4, wireType 2 =*/34).string(message.transcriptionConfiguration);\\n        if (message.message != null && Object.hasOwnProperty.call(message, \\\"message\\\"))\\n            writer.uint32(/* id 5, wireType 2 =*/42).string(message.message);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptionStatus message, length delimited. Does not implicitly {@link SdkTranscriptionStatus.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {ISdkTranscriptionStatus} message SdkTranscriptionStatus message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptionStatus.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptionStatus message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptionStatus} SdkTranscriptionStatus\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptionStatus.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptionStatus();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.type = reader.int32();\\n                break;\\n            case 2:\\n                message.eventTime = reader.int64();\\n                break;\\n            case 3:\\n                message.transcriptionRegion = reader.string();\\n                break;\\n            case 4:\\n                message.transcriptionConfiguration = reader.string();\\n                break;\\n            case 5:\\n                message.message = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptionStatus message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptionStatus} SdkTranscriptionStatus\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptionStatus.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptionStatus message.\\n     * @function verify\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptionStatus.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            switch (message.type) {\\n            default:\\n                return \\\"type: enum value expected\\\";\\n            case 1:\\n            case 2:\\n            case 3:\\n            case 4:\\n            case 5:\\n                break;\\n            }\\n        if (message.eventTime != null && message.hasOwnProperty(\\\"eventTime\\\"))\\n            if (!$util.isInteger(message.eventTime) && !(message.eventTime && $util.isInteger(message.eventTime.low) && $util.isInteger(message.eventTime.high)))\\n                return \\\"eventTime: integer|Long expected\\\";\\n        if (message.transcriptionRegion != null && message.hasOwnProperty(\\\"transcriptionRegion\\\"))\\n            if (!$util.isString(message.transcriptionRegion))\\n                return \\\"transcriptionRegion: string expected\\\";\\n        if (message.transcriptionConfiguration != null && message.hasOwnProperty(\\\"transcriptionConfiguration\\\"))\\n            if (!$util.isString(message.transcriptionConfiguration))\\n                return \\\"transcriptionConfiguration: string expected\\\";\\n        if (message.message != null && message.hasOwnProperty(\\\"message\\\"))\\n            if (!$util.isString(message.message))\\n                return \\\"message: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptionStatus message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptionStatus} SdkTranscriptionStatus\\n     */\\n    SdkTranscriptionStatus.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptionStatus)\\n            return object;\\n        var message = new $root.SdkTranscriptionStatus();\\n        switch (object.type) {\\n        case \\\"STARTED\\\":\\n        case 1:\\n            message.type = 1;\\n            break;\\n        case \\\"INTERRUPTED\\\":\\n        case 2:\\n            message.type = 2;\\n            break;\\n        case \\\"RESUMED\\\":\\n        case 3:\\n            message.type = 3;\\n            break;\\n        case \\\"STOPPED\\\":\\n        case 4:\\n            message.type = 4;\\n            break;\\n        case \\\"FAILED\\\":\\n        case 5:\\n            message.type = 5;\\n            break;\\n        }\\n        if (object.eventTime != null)\\n            if ($util.Long)\\n                (message.eventTime = $util.Long.fromValue(object.eventTime)).unsigned = false;\\n            else if (typeof object.eventTime === \\\"string\\\")\\n                message.eventTime = parseInt(object.eventTime, 10);\\n            else if (typeof object.eventTime === \\\"number\\\")\\n                message.eventTime = object.eventTime;\\n            else if (typeof object.eventTime === \\\"object\\\")\\n                message.eventTime = new $util.LongBits(object.eventTime.low >>> 0, object.eventTime.high >>> 0).toNumber();\\n        if (object.transcriptionRegion != null)\\n            message.transcriptionRegion = String(object.transcriptionRegion);\\n        if (object.transcriptionConfiguration != null)\\n            message.transcriptionConfiguration = String(object.transcriptionConfiguration);\\n        if (object.message != null)\\n            message.message = String(object.message);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptionStatus message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptionStatus\\n     * @static\\n     * @param {SdkTranscriptionStatus} message SdkTranscriptionStatus\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptionStatus.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.type = options.enums === String ? \\\"STARTED\\\" : 1;\\n            if ($util.Long) {\\n                var long = new $util.Long(0, 0, false);\\n                object.eventTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\\n            } else\\n                object.eventTime = options.longs === String ? \\\"0\\\" : 0;\\n            object.transcriptionRegion = \\\"\\\";\\n            object.transcriptionConfiguration = \\\"\\\";\\n            object.message = \\\"\\\";\\n        }\\n        if (message.type != null && message.hasOwnProperty(\\\"type\\\"))\\n            object.type = options.enums === String ? $root.SdkTranscriptionStatus.Type[message.type] : message.type;\\n        if (message.eventTime != null && message.hasOwnProperty(\\\"eventTime\\\"))\\n            if (typeof message.eventTime === \\\"number\\\")\\n                object.eventTime = options.longs === String ? String(message.eventTime) : message.eventTime;\\n            else\\n                object.eventTime = options.longs === String ? $util.Long.prototype.toString.call(message.eventTime) : options.longs === Number ? new $util.LongBits(message.eventTime.low >>> 0, message.eventTime.high >>> 0).toNumber() : message.eventTime;\\n        if (message.transcriptionRegion != null && message.hasOwnProperty(\\\"transcriptionRegion\\\"))\\n            object.transcriptionRegion = message.transcriptionRegion;\\n        if (message.transcriptionConfiguration != null && message.hasOwnProperty(\\\"transcriptionConfiguration\\\"))\\n            object.transcriptionConfiguration = message.transcriptionConfiguration;\\n        if (message.message != null && message.hasOwnProperty(\\\"message\\\"))\\n            object.message = message.message;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptionStatus to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptionStatus\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptionStatus.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    /**\\n     * Type enum.\\n     * @name SdkTranscriptionStatus.Type\\n     * @enum {number}\\n     * @property {number} STARTED=1 STARTED value\\n     * @property {number} INTERRUPTED=2 INTERRUPTED value\\n     * @property {number} RESUMED=3 RESUMED value\\n     * @property {number} STOPPED=4 STOPPED value\\n     * @property {number} FAILED=5 FAILED value\\n     */\\n    SdkTranscriptionStatus.Type = (function() {\\n        var valuesById = {}, values = Object.create(valuesById);\\n        values[valuesById[1] = \\\"STARTED\\\"] = 1;\\n        values[valuesById[2] = \\\"INTERRUPTED\\\"] = 2;\\n        values[valuesById[3] = \\\"RESUMED\\\"] = 3;\\n        values[valuesById[4] = \\\"STOPPED\\\"] = 4;\\n        values[valuesById[5] = \\\"FAILED\\\"] = 5;\\n        return values;\\n    })();\\n\\n    return SdkTranscriptionStatus;\\n})();\\n\\n$root.SdkTranscriptEvent = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptEvent.\\n     * @exports ISdkTranscriptEvent\\n     * @interface ISdkTranscriptEvent\\n     * @property {ISdkTranscriptionStatus|null} [status] SdkTranscriptEvent status\\n     * @property {ISdkTranscript|null} [transcript] SdkTranscriptEvent transcript\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptEvent.\\n     * @exports SdkTranscriptEvent\\n     * @classdesc Represents a SdkTranscriptEvent.\\n     * @implements ISdkTranscriptEvent\\n     * @constructor\\n     * @param {ISdkTranscriptEvent=} [properties] Properties to set\\n     */\\n    function SdkTranscriptEvent(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptEvent status.\\n     * @member {ISdkTranscriptionStatus|null|undefined} status\\n     * @memberof SdkTranscriptEvent\\n     * @instance\\n     */\\n    SdkTranscriptEvent.prototype.status = null;\\n\\n    /**\\n     * SdkTranscriptEvent transcript.\\n     * @member {ISdkTranscript|null|undefined} transcript\\n     * @memberof SdkTranscriptEvent\\n     * @instance\\n     */\\n    SdkTranscriptEvent.prototype.transcript = null;\\n\\n    // OneOf field names bound to virtual getters and setters\\n    var $oneOfFields;\\n\\n    /**\\n     * SdkTranscriptEvent Event.\\n     * @member {\\\"status\\\"|\\\"transcript\\\"|undefined} Event\\n     * @memberof SdkTranscriptEvent\\n     * @instance\\n     */\\n    Object.defineProperty(SdkTranscriptEvent.prototype, \\\"Event\\\", {\\n        get: $util.oneOfGetter($oneOfFields = [\\\"status\\\", \\\"transcript\\\"]),\\n        set: $util.oneOfSetter($oneOfFields)\\n    });\\n\\n    /**\\n     * Creates a new SdkTranscriptEvent instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {ISdkTranscriptEvent=} [properties] Properties to set\\n     * @returns {SdkTranscriptEvent} SdkTranscriptEvent instance\\n     */\\n    SdkTranscriptEvent.create = function create(properties) {\\n        return new SdkTranscriptEvent(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptEvent message. Does not implicitly {@link SdkTranscriptEvent.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {ISdkTranscriptEvent} message SdkTranscriptEvent message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptEvent.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.status != null && Object.hasOwnProperty.call(message, \\\"status\\\"))\\n            $root.SdkTranscriptionStatus.encode(message.status, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.transcript != null && Object.hasOwnProperty.call(message, \\\"transcript\\\"))\\n            $root.SdkTranscript.encode(message.transcript, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptEvent message, length delimited. Does not implicitly {@link SdkTranscriptEvent.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {ISdkTranscriptEvent} message SdkTranscriptEvent message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptEvent.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptEvent message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptEvent} SdkTranscriptEvent\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptEvent.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptEvent();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.status = $root.SdkTranscriptionStatus.decode(reader, reader.uint32());\\n                break;\\n            case 2:\\n                message.transcript = $root.SdkTranscript.decode(reader, reader.uint32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptEvent message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptEvent} SdkTranscriptEvent\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptEvent.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptEvent message.\\n     * @function verify\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptEvent.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        var properties = {};\\n        if (message.status != null && message.hasOwnProperty(\\\"status\\\")) {\\n            properties.Event = 1;\\n            {\\n                var error = $root.SdkTranscriptionStatus.verify(message.status);\\n                if (error)\\n                    return \\\"status.\\\" + error;\\n            }\\n        }\\n        if (message.transcript != null && message.hasOwnProperty(\\\"transcript\\\")) {\\n            if (properties.Event === 1)\\n                return \\\"Event: multiple values\\\";\\n            properties.Event = 1;\\n            {\\n                var error = $root.SdkTranscript.verify(message.transcript);\\n                if (error)\\n                    return \\\"transcript.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptEvent message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptEvent} SdkTranscriptEvent\\n     */\\n    SdkTranscriptEvent.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptEvent)\\n            return object;\\n        var message = new $root.SdkTranscriptEvent();\\n        if (object.status != null) {\\n            if (typeof object.status !== \\\"object\\\")\\n                throw TypeError(\\\".SdkTranscriptEvent.status: object expected\\\");\\n            message.status = $root.SdkTranscriptionStatus.fromObject(object.status);\\n        }\\n        if (object.transcript != null) {\\n            if (typeof object.transcript !== \\\"object\\\")\\n                throw TypeError(\\\".SdkTranscriptEvent.transcript: object expected\\\");\\n            message.transcript = $root.SdkTranscript.fromObject(object.transcript);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptEvent message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptEvent\\n     * @static\\n     * @param {SdkTranscriptEvent} message SdkTranscriptEvent\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptEvent.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (message.status != null && message.hasOwnProperty(\\\"status\\\")) {\\n            object.status = $root.SdkTranscriptionStatus.toObject(message.status, options);\\n            if (options.oneofs)\\n                object.Event = \\\"status\\\";\\n        }\\n        if (message.transcript != null && message.hasOwnProperty(\\\"transcript\\\")) {\\n            object.transcript = $root.SdkTranscript.toObject(message.transcript, options);\\n            if (options.oneofs)\\n                object.Event = \\\"transcript\\\";\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptEvent to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptEvent\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptEvent.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptEvent;\\n})();\\n\\n$root.SdkTranscriptFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkTranscriptFrame.\\n     * @exports ISdkTranscriptFrame\\n     * @interface ISdkTranscriptFrame\\n     * @property {Array.<ISdkTranscriptEvent>|null} [events] SdkTranscriptFrame events\\n     */\\n\\n    /**\\n     * Constructs a new SdkTranscriptFrame.\\n     * @exports SdkTranscriptFrame\\n     * @classdesc Represents a SdkTranscriptFrame.\\n     * @implements ISdkTranscriptFrame\\n     * @constructor\\n     * @param {ISdkTranscriptFrame=} [properties] Properties to set\\n     */\\n    function SdkTranscriptFrame(properties) {\\n        this.events = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkTranscriptFrame events.\\n     * @member {Array.<ISdkTranscriptEvent>} events\\n     * @memberof SdkTranscriptFrame\\n     * @instance\\n     */\\n    SdkTranscriptFrame.prototype.events = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkTranscriptFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {ISdkTranscriptFrame=} [properties] Properties to set\\n     * @returns {SdkTranscriptFrame} SdkTranscriptFrame instance\\n     */\\n    SdkTranscriptFrame.create = function create(properties) {\\n        return new SdkTranscriptFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptFrame message. Does not implicitly {@link SdkTranscriptFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {ISdkTranscriptFrame} message SdkTranscriptFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.events != null && message.events.length)\\n            for (var i = 0; i < message.events.length; ++i)\\n                $root.SdkTranscriptEvent.encode(message.events[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkTranscriptFrame message, length delimited. Does not implicitly {@link SdkTranscriptFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {ISdkTranscriptFrame} message SdkTranscriptFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkTranscriptFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkTranscriptFrame} SdkTranscriptFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkTranscriptFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.events && message.events.length))\\n                    message.events = [];\\n                message.events.push($root.SdkTranscriptEvent.decode(reader, reader.uint32()));\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkTranscriptFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkTranscriptFrame} SdkTranscriptFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkTranscriptFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkTranscriptFrame message.\\n     * @function verify\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkTranscriptFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.events != null && message.hasOwnProperty(\\\"events\\\")) {\\n            if (!Array.isArray(message.events))\\n                return \\\"events: array expected\\\";\\n            for (var i = 0; i < message.events.length; ++i) {\\n                var error = $root.SdkTranscriptEvent.verify(message.events[i]);\\n                if (error)\\n                    return \\\"events.\\\" + error;\\n            }\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkTranscriptFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkTranscriptFrame} SdkTranscriptFrame\\n     */\\n    SdkTranscriptFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkTranscriptFrame)\\n            return object;\\n        var message = new $root.SdkTranscriptFrame();\\n        if (object.events) {\\n            if (!Array.isArray(object.events))\\n                throw TypeError(\\\".SdkTranscriptFrame.events: array expected\\\");\\n            message.events = [];\\n            for (var i = 0; i < object.events.length; ++i) {\\n                if (typeof object.events[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkTranscriptFrame.events: object expected\\\");\\n                message.events[i] = $root.SdkTranscriptEvent.fromObject(object.events[i]);\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkTranscriptFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkTranscriptFrame\\n     * @static\\n     * @param {SdkTranscriptFrame} message SdkTranscriptFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkTranscriptFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults)\\n            object.events = [];\\n        if (message.events && message.events.length) {\\n            object.events = [];\\n            for (var j = 0; j < message.events.length; ++j)\\n                object.events[j] = $root.SdkTranscriptEvent.toObject(message.events[j], options);\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkTranscriptFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkTranscriptFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkTranscriptFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkTranscriptFrame;\\n})();\\n\\n$root.SdkRemoteVideoUpdateFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkRemoteVideoUpdateFrame.\\n     * @exports ISdkRemoteVideoUpdateFrame\\n     * @interface ISdkRemoteVideoUpdateFrame\\n     * @property {Array.<ISdkVideoSubscriptionConfiguration>|null} [addedOrUpdatedVideoSubscriptions] SdkRemoteVideoUpdateFrame addedOrUpdatedVideoSubscriptions\\n     * @property {Array.<string>|null} [removedVideoSubscriptionMids] SdkRemoteVideoUpdateFrame removedVideoSubscriptionMids\\n     */\\n\\n    /**\\n     * Constructs a new SdkRemoteVideoUpdateFrame.\\n     * @exports SdkRemoteVideoUpdateFrame\\n     * @classdesc Represents a SdkRemoteVideoUpdateFrame.\\n     * @implements ISdkRemoteVideoUpdateFrame\\n     * @constructor\\n     * @param {ISdkRemoteVideoUpdateFrame=} [properties] Properties to set\\n     */\\n    function SdkRemoteVideoUpdateFrame(properties) {\\n        this.addedOrUpdatedVideoSubscriptions = [];\\n        this.removedVideoSubscriptionMids = [];\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkRemoteVideoUpdateFrame addedOrUpdatedVideoSubscriptions.\\n     * @member {Array.<ISdkVideoSubscriptionConfiguration>} addedOrUpdatedVideoSubscriptions\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @instance\\n     */\\n    SdkRemoteVideoUpdateFrame.prototype.addedOrUpdatedVideoSubscriptions = $util.emptyArray;\\n\\n    /**\\n     * SdkRemoteVideoUpdateFrame removedVideoSubscriptionMids.\\n     * @member {Array.<string>} removedVideoSubscriptionMids\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @instance\\n     */\\n    SdkRemoteVideoUpdateFrame.prototype.removedVideoSubscriptionMids = $util.emptyArray;\\n\\n    /**\\n     * Creates a new SdkRemoteVideoUpdateFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {ISdkRemoteVideoUpdateFrame=} [properties] Properties to set\\n     * @returns {SdkRemoteVideoUpdateFrame} SdkRemoteVideoUpdateFrame instance\\n     */\\n    SdkRemoteVideoUpdateFrame.create = function create(properties) {\\n        return new SdkRemoteVideoUpdateFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkRemoteVideoUpdateFrame message. Does not implicitly {@link SdkRemoteVideoUpdateFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {ISdkRemoteVideoUpdateFrame} message SdkRemoteVideoUpdateFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkRemoteVideoUpdateFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.addedOrUpdatedVideoSubscriptions != null && message.addedOrUpdatedVideoSubscriptions.length)\\n            for (var i = 0; i < message.addedOrUpdatedVideoSubscriptions.length; ++i)\\n                $root.SdkVideoSubscriptionConfiguration.encode(message.addedOrUpdatedVideoSubscriptions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        if (message.removedVideoSubscriptionMids != null && message.removedVideoSubscriptionMids.length)\\n            for (var i = 0; i < message.removedVideoSubscriptionMids.length; ++i)\\n                writer.uint32(/* id 2, wireType 2 =*/18).string(message.removedVideoSubscriptionMids[i]);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkRemoteVideoUpdateFrame message, length delimited. Does not implicitly {@link SdkRemoteVideoUpdateFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {ISdkRemoteVideoUpdateFrame} message SdkRemoteVideoUpdateFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkRemoteVideoUpdateFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkRemoteVideoUpdateFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkRemoteVideoUpdateFrame} SdkRemoteVideoUpdateFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkRemoteVideoUpdateFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkRemoteVideoUpdateFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                if (!(message.addedOrUpdatedVideoSubscriptions && message.addedOrUpdatedVideoSubscriptions.length))\\n                    message.addedOrUpdatedVideoSubscriptions = [];\\n                message.addedOrUpdatedVideoSubscriptions.push($root.SdkVideoSubscriptionConfiguration.decode(reader, reader.uint32()));\\n                break;\\n            case 2:\\n                if (!(message.removedVideoSubscriptionMids && message.removedVideoSubscriptionMids.length))\\n                    message.removedVideoSubscriptionMids = [];\\n                message.removedVideoSubscriptionMids.push(reader.string());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkRemoteVideoUpdateFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkRemoteVideoUpdateFrame} SdkRemoteVideoUpdateFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkRemoteVideoUpdateFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkRemoteVideoUpdateFrame message.\\n     * @function verify\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkRemoteVideoUpdateFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.addedOrUpdatedVideoSubscriptions != null && message.hasOwnProperty(\\\"addedOrUpdatedVideoSubscriptions\\\")) {\\n            if (!Array.isArray(message.addedOrUpdatedVideoSubscriptions))\\n                return \\\"addedOrUpdatedVideoSubscriptions: array expected\\\";\\n            for (var i = 0; i < message.addedOrUpdatedVideoSubscriptions.length; ++i) {\\n                var error = $root.SdkVideoSubscriptionConfiguration.verify(message.addedOrUpdatedVideoSubscriptions[i]);\\n                if (error)\\n                    return \\\"addedOrUpdatedVideoSubscriptions.\\\" + error;\\n            }\\n        }\\n        if (message.removedVideoSubscriptionMids != null && message.hasOwnProperty(\\\"removedVideoSubscriptionMids\\\")) {\\n            if (!Array.isArray(message.removedVideoSubscriptionMids))\\n                return \\\"removedVideoSubscriptionMids: array expected\\\";\\n            for (var i = 0; i < message.removedVideoSubscriptionMids.length; ++i)\\n                if (!$util.isString(message.removedVideoSubscriptionMids[i]))\\n                    return \\\"removedVideoSubscriptionMids: string[] expected\\\";\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkRemoteVideoUpdateFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkRemoteVideoUpdateFrame} SdkRemoteVideoUpdateFrame\\n     */\\n    SdkRemoteVideoUpdateFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkRemoteVideoUpdateFrame)\\n            return object;\\n        var message = new $root.SdkRemoteVideoUpdateFrame();\\n        if (object.addedOrUpdatedVideoSubscriptions) {\\n            if (!Array.isArray(object.addedOrUpdatedVideoSubscriptions))\\n                throw TypeError(\\\".SdkRemoteVideoUpdateFrame.addedOrUpdatedVideoSubscriptions: array expected\\\");\\n            message.addedOrUpdatedVideoSubscriptions = [];\\n            for (var i = 0; i < object.addedOrUpdatedVideoSubscriptions.length; ++i) {\\n                if (typeof object.addedOrUpdatedVideoSubscriptions[i] !== \\\"object\\\")\\n                    throw TypeError(\\\".SdkRemoteVideoUpdateFrame.addedOrUpdatedVideoSubscriptions: object expected\\\");\\n                message.addedOrUpdatedVideoSubscriptions[i] = $root.SdkVideoSubscriptionConfiguration.fromObject(object.addedOrUpdatedVideoSubscriptions[i]);\\n            }\\n        }\\n        if (object.removedVideoSubscriptionMids) {\\n            if (!Array.isArray(object.removedVideoSubscriptionMids))\\n                throw TypeError(\\\".SdkRemoteVideoUpdateFrame.removedVideoSubscriptionMids: array expected\\\");\\n            message.removedVideoSubscriptionMids = [];\\n            for (var i = 0; i < object.removedVideoSubscriptionMids.length; ++i)\\n                message.removedVideoSubscriptionMids[i] = String(object.removedVideoSubscriptionMids[i]);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkRemoteVideoUpdateFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @static\\n     * @param {SdkRemoteVideoUpdateFrame} message SdkRemoteVideoUpdateFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkRemoteVideoUpdateFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.arrays || options.defaults) {\\n            object.addedOrUpdatedVideoSubscriptions = [];\\n            object.removedVideoSubscriptionMids = [];\\n        }\\n        if (message.addedOrUpdatedVideoSubscriptions && message.addedOrUpdatedVideoSubscriptions.length) {\\n            object.addedOrUpdatedVideoSubscriptions = [];\\n            for (var j = 0; j < message.addedOrUpdatedVideoSubscriptions.length; ++j)\\n                object.addedOrUpdatedVideoSubscriptions[j] = $root.SdkVideoSubscriptionConfiguration.toObject(message.addedOrUpdatedVideoSubscriptions[j], options);\\n        }\\n        if (message.removedVideoSubscriptionMids && message.removedVideoSubscriptionMids.length) {\\n            object.removedVideoSubscriptionMids = [];\\n            for (var j = 0; j < message.removedVideoSubscriptionMids.length; ++j)\\n                object.removedVideoSubscriptionMids[j] = message.removedVideoSubscriptionMids[j];\\n        }\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkRemoteVideoUpdateFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkRemoteVideoUpdateFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkRemoteVideoUpdateFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkRemoteVideoUpdateFrame;\\n})();\\n\\n$root.SdkVideoSubscriptionConfiguration = (function() {\\n\\n    /**\\n     * Properties of a SdkVideoSubscriptionConfiguration.\\n     * @exports ISdkVideoSubscriptionConfiguration\\n     * @interface ISdkVideoSubscriptionConfiguration\\n     * @property {string} mid SdkVideoSubscriptionConfiguration mid\\n     * @property {string|null} [attendeeId] SdkVideoSubscriptionConfiguration attendeeId\\n     * @property {number|null} [streamId] SdkVideoSubscriptionConfiguration streamId\\n     * @property {number|null} [priority] SdkVideoSubscriptionConfiguration priority\\n     * @property {number|null} [targetBitrateKbps] SdkVideoSubscriptionConfiguration targetBitrateKbps\\n     * @property {number|null} [groupId] SdkVideoSubscriptionConfiguration groupId\\n     */\\n\\n    /**\\n     * Constructs a new SdkVideoSubscriptionConfiguration.\\n     * @exports SdkVideoSubscriptionConfiguration\\n     * @classdesc Represents a SdkVideoSubscriptionConfiguration.\\n     * @implements ISdkVideoSubscriptionConfiguration\\n     * @constructor\\n     * @param {ISdkVideoSubscriptionConfiguration=} [properties] Properties to set\\n     */\\n    function SdkVideoSubscriptionConfiguration(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration mid.\\n     * @member {string} mid\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.mid = \\\"\\\";\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration attendeeId.\\n     * @member {string} attendeeId\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.attendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration streamId.\\n     * @member {number} streamId\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.streamId = 0;\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration priority.\\n     * @member {number} priority\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.priority = 0;\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration targetBitrateKbps.\\n     * @member {number} targetBitrateKbps\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.targetBitrateKbps = 0;\\n\\n    /**\\n     * SdkVideoSubscriptionConfiguration groupId.\\n     * @member {number} groupId\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.groupId = 0;\\n\\n    /**\\n     * Creates a new SdkVideoSubscriptionConfiguration instance using the specified properties.\\n     * @function create\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {ISdkVideoSubscriptionConfiguration=} [properties] Properties to set\\n     * @returns {SdkVideoSubscriptionConfiguration} SdkVideoSubscriptionConfiguration instance\\n     */\\n    SdkVideoSubscriptionConfiguration.create = function create(properties) {\\n        return new SdkVideoSubscriptionConfiguration(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkVideoSubscriptionConfiguration message. Does not implicitly {@link SdkVideoSubscriptionConfiguration.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {ISdkVideoSubscriptionConfiguration} message SdkVideoSubscriptionConfiguration message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkVideoSubscriptionConfiguration.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        writer.uint32(/* id 1, wireType 2 =*/10).string(message.mid);\\n        if (message.attendeeId != null && Object.hasOwnProperty.call(message, \\\"attendeeId\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.attendeeId);\\n        if (message.streamId != null && Object.hasOwnProperty.call(message, \\\"streamId\\\"))\\n            writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.streamId);\\n        if (message.priority != null && Object.hasOwnProperty.call(message, \\\"priority\\\"))\\n            writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.priority);\\n        if (message.targetBitrateKbps != null && Object.hasOwnProperty.call(message, \\\"targetBitrateKbps\\\"))\\n            writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.targetBitrateKbps);\\n        if (message.groupId != null && Object.hasOwnProperty.call(message, \\\"groupId\\\"))\\n            writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.groupId);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkVideoSubscriptionConfiguration message, length delimited. Does not implicitly {@link SdkVideoSubscriptionConfiguration.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {ISdkVideoSubscriptionConfiguration} message SdkVideoSubscriptionConfiguration message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkVideoSubscriptionConfiguration.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkVideoSubscriptionConfiguration message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkVideoSubscriptionConfiguration} SdkVideoSubscriptionConfiguration\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkVideoSubscriptionConfiguration.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkVideoSubscriptionConfiguration();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.mid = reader.string();\\n                break;\\n            case 2:\\n                message.attendeeId = reader.string();\\n                break;\\n            case 3:\\n                message.streamId = reader.uint32();\\n                break;\\n            case 4:\\n                message.priority = reader.uint32();\\n                break;\\n            case 5:\\n                message.targetBitrateKbps = reader.uint32();\\n                break;\\n            case 6:\\n                message.groupId = reader.uint32();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        if (!message.hasOwnProperty(\\\"mid\\\"))\\n            throw $util.ProtocolError(\\\"missing required 'mid'\\\", { instance: message });\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkVideoSubscriptionConfiguration message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkVideoSubscriptionConfiguration} SdkVideoSubscriptionConfiguration\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkVideoSubscriptionConfiguration.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkVideoSubscriptionConfiguration message.\\n     * @function verify\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkVideoSubscriptionConfiguration.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (!$util.isString(message.mid))\\n            return \\\"mid: string expected\\\";\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            if (!$util.isString(message.attendeeId))\\n                return \\\"attendeeId: string expected\\\";\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            if (!$util.isInteger(message.streamId))\\n                return \\\"streamId: integer expected\\\";\\n        if (message.priority != null && message.hasOwnProperty(\\\"priority\\\"))\\n            if (!$util.isInteger(message.priority))\\n                return \\\"priority: integer expected\\\";\\n        if (message.targetBitrateKbps != null && message.hasOwnProperty(\\\"targetBitrateKbps\\\"))\\n            if (!$util.isInteger(message.targetBitrateKbps))\\n                return \\\"targetBitrateKbps: integer expected\\\";\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            if (!$util.isInteger(message.groupId))\\n                return \\\"groupId: integer expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkVideoSubscriptionConfiguration message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkVideoSubscriptionConfiguration} SdkVideoSubscriptionConfiguration\\n     */\\n    SdkVideoSubscriptionConfiguration.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkVideoSubscriptionConfiguration)\\n            return object;\\n        var message = new $root.SdkVideoSubscriptionConfiguration();\\n        if (object.mid != null)\\n            message.mid = String(object.mid);\\n        if (object.attendeeId != null)\\n            message.attendeeId = String(object.attendeeId);\\n        if (object.streamId != null)\\n            message.streamId = object.streamId >>> 0;\\n        if (object.priority != null)\\n            message.priority = object.priority >>> 0;\\n        if (object.targetBitrateKbps != null)\\n            message.targetBitrateKbps = object.targetBitrateKbps >>> 0;\\n        if (object.groupId != null)\\n            message.groupId = object.groupId >>> 0;\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkVideoSubscriptionConfiguration message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @static\\n     * @param {SdkVideoSubscriptionConfiguration} message SdkVideoSubscriptionConfiguration\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkVideoSubscriptionConfiguration.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.mid = \\\"\\\";\\n            object.attendeeId = \\\"\\\";\\n            object.streamId = 0;\\n            object.priority = 0;\\n            object.targetBitrateKbps = 0;\\n            object.groupId = 0;\\n        }\\n        if (message.mid != null && message.hasOwnProperty(\\\"mid\\\"))\\n            object.mid = message.mid;\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            object.attendeeId = message.attendeeId;\\n        if (message.streamId != null && message.hasOwnProperty(\\\"streamId\\\"))\\n            object.streamId = message.streamId;\\n        if (message.priority != null && message.hasOwnProperty(\\\"priority\\\"))\\n            object.priority = message.priority;\\n        if (message.targetBitrateKbps != null && message.hasOwnProperty(\\\"targetBitrateKbps\\\"))\\n            object.targetBitrateKbps = message.targetBitrateKbps;\\n        if (message.groupId != null && message.hasOwnProperty(\\\"groupId\\\"))\\n            object.groupId = message.groupId;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkVideoSubscriptionConfiguration to JSON.\\n     * @function toJSON\\n     * @memberof SdkVideoSubscriptionConfiguration\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkVideoSubscriptionConfiguration.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkVideoSubscriptionConfiguration;\\n})();\\n\\n$root.SdkPrimaryMeetingJoinFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkPrimaryMeetingJoinFrame.\\n     * @exports ISdkPrimaryMeetingJoinFrame\\n     * @interface ISdkPrimaryMeetingJoinFrame\\n     * @property {ISdkMeetingSessionCredentials|null} [credentials] SdkPrimaryMeetingJoinFrame credentials\\n     */\\n\\n    /**\\n     * Constructs a new SdkPrimaryMeetingJoinFrame.\\n     * @exports SdkPrimaryMeetingJoinFrame\\n     * @classdesc Represents a SdkPrimaryMeetingJoinFrame.\\n     * @implements ISdkPrimaryMeetingJoinFrame\\n     * @constructor\\n     * @param {ISdkPrimaryMeetingJoinFrame=} [properties] Properties to set\\n     */\\n    function SdkPrimaryMeetingJoinFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkPrimaryMeetingJoinFrame credentials.\\n     * @member {ISdkMeetingSessionCredentials|null|undefined} credentials\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @instance\\n     */\\n    SdkPrimaryMeetingJoinFrame.prototype.credentials = null;\\n\\n    /**\\n     * Creates a new SdkPrimaryMeetingJoinFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinFrame=} [properties] Properties to set\\n     * @returns {SdkPrimaryMeetingJoinFrame} SdkPrimaryMeetingJoinFrame instance\\n     */\\n    SdkPrimaryMeetingJoinFrame.create = function create(properties) {\\n        return new SdkPrimaryMeetingJoinFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingJoinFrame message. Does not implicitly {@link SdkPrimaryMeetingJoinFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinFrame} message SdkPrimaryMeetingJoinFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingJoinFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.credentials != null && Object.hasOwnProperty.call(message, \\\"credentials\\\"))\\n            $root.SdkMeetingSessionCredentials.encode(message.credentials, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingJoinFrame message, length delimited. Does not implicitly {@link SdkPrimaryMeetingJoinFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinFrame} message SdkPrimaryMeetingJoinFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingJoinFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingJoinFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkPrimaryMeetingJoinFrame} SdkPrimaryMeetingJoinFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingJoinFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkPrimaryMeetingJoinFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.credentials = $root.SdkMeetingSessionCredentials.decode(reader, reader.uint32());\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingJoinFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkPrimaryMeetingJoinFrame} SdkPrimaryMeetingJoinFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingJoinFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkPrimaryMeetingJoinFrame message.\\n     * @function verify\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkPrimaryMeetingJoinFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.credentials != null && message.hasOwnProperty(\\\"credentials\\\")) {\\n            var error = $root.SdkMeetingSessionCredentials.verify(message.credentials);\\n            if (error)\\n                return \\\"credentials.\\\" + error;\\n        }\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkPrimaryMeetingJoinFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkPrimaryMeetingJoinFrame} SdkPrimaryMeetingJoinFrame\\n     */\\n    SdkPrimaryMeetingJoinFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkPrimaryMeetingJoinFrame)\\n            return object;\\n        var message = new $root.SdkPrimaryMeetingJoinFrame();\\n        if (object.credentials != null) {\\n            if (typeof object.credentials !== \\\"object\\\")\\n                throw TypeError(\\\".SdkPrimaryMeetingJoinFrame.credentials: object expected\\\");\\n            message.credentials = $root.SdkMeetingSessionCredentials.fromObject(object.credentials);\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkPrimaryMeetingJoinFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @static\\n     * @param {SdkPrimaryMeetingJoinFrame} message SdkPrimaryMeetingJoinFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkPrimaryMeetingJoinFrame.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults)\\n            object.credentials = null;\\n        if (message.credentials != null && message.hasOwnProperty(\\\"credentials\\\"))\\n            object.credentials = $root.SdkMeetingSessionCredentials.toObject(message.credentials, options);\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkPrimaryMeetingJoinFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkPrimaryMeetingJoinFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkPrimaryMeetingJoinFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkPrimaryMeetingJoinFrame;\\n})();\\n\\n$root.SdkPrimaryMeetingJoinAckFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkPrimaryMeetingJoinAckFrame.\\n     * @exports ISdkPrimaryMeetingJoinAckFrame\\n     * @interface ISdkPrimaryMeetingJoinAckFrame\\n     */\\n\\n    /**\\n     * Constructs a new SdkPrimaryMeetingJoinAckFrame.\\n     * @exports SdkPrimaryMeetingJoinAckFrame\\n     * @classdesc Represents a SdkPrimaryMeetingJoinAckFrame.\\n     * @implements ISdkPrimaryMeetingJoinAckFrame\\n     * @constructor\\n     * @param {ISdkPrimaryMeetingJoinAckFrame=} [properties] Properties to set\\n     */\\n    function SdkPrimaryMeetingJoinAckFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * Creates a new SdkPrimaryMeetingJoinAckFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinAckFrame=} [properties] Properties to set\\n     * @returns {SdkPrimaryMeetingJoinAckFrame} SdkPrimaryMeetingJoinAckFrame instance\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.create = function create(properties) {\\n        return new SdkPrimaryMeetingJoinAckFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingJoinAckFrame message. Does not implicitly {@link SdkPrimaryMeetingJoinAckFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinAckFrame} message SdkPrimaryMeetingJoinAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingJoinAckFrame message, length delimited. Does not implicitly {@link SdkPrimaryMeetingJoinAckFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingJoinAckFrame} message SdkPrimaryMeetingJoinAckFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingJoinAckFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkPrimaryMeetingJoinAckFrame} SdkPrimaryMeetingJoinAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkPrimaryMeetingJoinAckFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingJoinAckFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkPrimaryMeetingJoinAckFrame} SdkPrimaryMeetingJoinAckFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkPrimaryMeetingJoinAckFrame message.\\n     * @function verify\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkPrimaryMeetingJoinAckFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkPrimaryMeetingJoinAckFrame} SdkPrimaryMeetingJoinAckFrame\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkPrimaryMeetingJoinAckFrame)\\n            return object;\\n        return new $root.SdkPrimaryMeetingJoinAckFrame();\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkPrimaryMeetingJoinAckFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @static\\n     * @param {SdkPrimaryMeetingJoinAckFrame} message SdkPrimaryMeetingJoinAckFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.toObject = function toObject() {\\n        return {};\\n    };\\n\\n    /**\\n     * Converts this SdkPrimaryMeetingJoinAckFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkPrimaryMeetingJoinAckFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkPrimaryMeetingJoinAckFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkPrimaryMeetingJoinAckFrame;\\n})();\\n\\n$root.SdkPrimaryMeetingLeaveFrame = (function() {\\n\\n    /**\\n     * Properties of a SdkPrimaryMeetingLeaveFrame.\\n     * @exports ISdkPrimaryMeetingLeaveFrame\\n     * @interface ISdkPrimaryMeetingLeaveFrame\\n     */\\n\\n    /**\\n     * Constructs a new SdkPrimaryMeetingLeaveFrame.\\n     * @exports SdkPrimaryMeetingLeaveFrame\\n     * @classdesc Represents a SdkPrimaryMeetingLeaveFrame.\\n     * @implements ISdkPrimaryMeetingLeaveFrame\\n     * @constructor\\n     * @param {ISdkPrimaryMeetingLeaveFrame=} [properties] Properties to set\\n     */\\n    function SdkPrimaryMeetingLeaveFrame(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * Creates a new SdkPrimaryMeetingLeaveFrame instance using the specified properties.\\n     * @function create\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingLeaveFrame=} [properties] Properties to set\\n     * @returns {SdkPrimaryMeetingLeaveFrame} SdkPrimaryMeetingLeaveFrame instance\\n     */\\n    SdkPrimaryMeetingLeaveFrame.create = function create(properties) {\\n        return new SdkPrimaryMeetingLeaveFrame(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingLeaveFrame message. Does not implicitly {@link SdkPrimaryMeetingLeaveFrame.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingLeaveFrame} message SdkPrimaryMeetingLeaveFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingLeaveFrame.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkPrimaryMeetingLeaveFrame message, length delimited. Does not implicitly {@link SdkPrimaryMeetingLeaveFrame.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {ISdkPrimaryMeetingLeaveFrame} message SdkPrimaryMeetingLeaveFrame message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkPrimaryMeetingLeaveFrame.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingLeaveFrame message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkPrimaryMeetingLeaveFrame} SdkPrimaryMeetingLeaveFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingLeaveFrame.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkPrimaryMeetingLeaveFrame();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkPrimaryMeetingLeaveFrame message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkPrimaryMeetingLeaveFrame} SdkPrimaryMeetingLeaveFrame\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkPrimaryMeetingLeaveFrame.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkPrimaryMeetingLeaveFrame message.\\n     * @function verify\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkPrimaryMeetingLeaveFrame.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkPrimaryMeetingLeaveFrame message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkPrimaryMeetingLeaveFrame} SdkPrimaryMeetingLeaveFrame\\n     */\\n    SdkPrimaryMeetingLeaveFrame.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkPrimaryMeetingLeaveFrame)\\n            return object;\\n        return new $root.SdkPrimaryMeetingLeaveFrame();\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkPrimaryMeetingLeaveFrame message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @static\\n     * @param {SdkPrimaryMeetingLeaveFrame} message SdkPrimaryMeetingLeaveFrame\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkPrimaryMeetingLeaveFrame.toObject = function toObject() {\\n        return {};\\n    };\\n\\n    /**\\n     * Converts this SdkPrimaryMeetingLeaveFrame to JSON.\\n     * @function toJSON\\n     * @memberof SdkPrimaryMeetingLeaveFrame\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkPrimaryMeetingLeaveFrame.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkPrimaryMeetingLeaveFrame;\\n})();\\n\\n$root.SdkMeetingSessionCredentials = (function() {\\n\\n    /**\\n     * Properties of a SdkMeetingSessionCredentials.\\n     * @exports ISdkMeetingSessionCredentials\\n     * @interface ISdkMeetingSessionCredentials\\n     * @property {string|null} [attendeeId] SdkMeetingSessionCredentials attendeeId\\n     * @property {string|null} [externalUserId] SdkMeetingSessionCredentials externalUserId\\n     * @property {string|null} [joinToken] SdkMeetingSessionCredentials joinToken\\n     */\\n\\n    /**\\n     * Constructs a new SdkMeetingSessionCredentials.\\n     * @exports SdkMeetingSessionCredentials\\n     * @classdesc Represents a SdkMeetingSessionCredentials.\\n     * @implements ISdkMeetingSessionCredentials\\n     * @constructor\\n     * @param {ISdkMeetingSessionCredentials=} [properties] Properties to set\\n     */\\n    function SdkMeetingSessionCredentials(properties) {\\n        if (properties)\\n            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\\n                if (properties[keys[i]] != null)\\n                    this[keys[i]] = properties[keys[i]];\\n    }\\n\\n    /**\\n     * SdkMeetingSessionCredentials attendeeId.\\n     * @member {string} attendeeId\\n     * @memberof SdkMeetingSessionCredentials\\n     * @instance\\n     */\\n    SdkMeetingSessionCredentials.prototype.attendeeId = \\\"\\\";\\n\\n    /**\\n     * SdkMeetingSessionCredentials externalUserId.\\n     * @member {string} externalUserId\\n     * @memberof SdkMeetingSessionCredentials\\n     * @instance\\n     */\\n    SdkMeetingSessionCredentials.prototype.externalUserId = \\\"\\\";\\n\\n    /**\\n     * SdkMeetingSessionCredentials joinToken.\\n     * @member {string} joinToken\\n     * @memberof SdkMeetingSessionCredentials\\n     * @instance\\n     */\\n    SdkMeetingSessionCredentials.prototype.joinToken = \\\"\\\";\\n\\n    /**\\n     * Creates a new SdkMeetingSessionCredentials instance using the specified properties.\\n     * @function create\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {ISdkMeetingSessionCredentials=} [properties] Properties to set\\n     * @returns {SdkMeetingSessionCredentials} SdkMeetingSessionCredentials instance\\n     */\\n    SdkMeetingSessionCredentials.create = function create(properties) {\\n        return new SdkMeetingSessionCredentials(properties);\\n    };\\n\\n    /**\\n     * Encodes the specified SdkMeetingSessionCredentials message. Does not implicitly {@link SdkMeetingSessionCredentials.verify|verify} messages.\\n     * @function encode\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {ISdkMeetingSessionCredentials} message SdkMeetingSessionCredentials message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkMeetingSessionCredentials.encode = function encode(message, writer) {\\n        if (!writer)\\n            writer = $Writer.create();\\n        if (message.attendeeId != null && Object.hasOwnProperty.call(message, \\\"attendeeId\\\"))\\n            writer.uint32(/* id 1, wireType 2 =*/10).string(message.attendeeId);\\n        if (message.externalUserId != null && Object.hasOwnProperty.call(message, \\\"externalUserId\\\"))\\n            writer.uint32(/* id 2, wireType 2 =*/18).string(message.externalUserId);\\n        if (message.joinToken != null && Object.hasOwnProperty.call(message, \\\"joinToken\\\"))\\n            writer.uint32(/* id 3, wireType 2 =*/26).string(message.joinToken);\\n        return writer;\\n    };\\n\\n    /**\\n     * Encodes the specified SdkMeetingSessionCredentials message, length delimited. Does not implicitly {@link SdkMeetingSessionCredentials.verify|verify} messages.\\n     * @function encodeDelimited\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {ISdkMeetingSessionCredentials} message SdkMeetingSessionCredentials message or plain object to encode\\n     * @param {$protobuf.Writer} [writer] Writer to encode to\\n     * @returns {$protobuf.Writer} Writer\\n     */\\n    SdkMeetingSessionCredentials.encodeDelimited = function encodeDelimited(message, writer) {\\n        return this.encode(message, writer).ldelim();\\n    };\\n\\n    /**\\n     * Decodes a SdkMeetingSessionCredentials message from the specified reader or buffer.\\n     * @function decode\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @param {number} [length] Message length if known beforehand\\n     * @returns {SdkMeetingSessionCredentials} SdkMeetingSessionCredentials\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkMeetingSessionCredentials.decode = function decode(reader, length) {\\n        if (!(reader instanceof $Reader))\\n            reader = $Reader.create(reader);\\n        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.SdkMeetingSessionCredentials();\\n        while (reader.pos < end) {\\n            var tag = reader.uint32();\\n            switch (tag >>> 3) {\\n            case 1:\\n                message.attendeeId = reader.string();\\n                break;\\n            case 2:\\n                message.externalUserId = reader.string();\\n                break;\\n            case 3:\\n                message.joinToken = reader.string();\\n                break;\\n            default:\\n                reader.skipType(tag & 7);\\n                break;\\n            }\\n        }\\n        return message;\\n    };\\n\\n    /**\\n     * Decodes a SdkMeetingSessionCredentials message from the specified reader or buffer, length delimited.\\n     * @function decodeDelimited\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\\n     * @returns {SdkMeetingSessionCredentials} SdkMeetingSessionCredentials\\n     * @throws {Error} If the payload is not a reader or valid buffer\\n     * @throws {$protobuf.util.ProtocolError} If required fields are missing\\n     */\\n    SdkMeetingSessionCredentials.decodeDelimited = function decodeDelimited(reader) {\\n        if (!(reader instanceof $Reader))\\n            reader = new $Reader(reader);\\n        return this.decode(reader, reader.uint32());\\n    };\\n\\n    /**\\n     * Verifies a SdkMeetingSessionCredentials message.\\n     * @function verify\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {Object.<string,*>} message Plain object to verify\\n     * @returns {string|null} `null` if valid, otherwise the reason why it is not\\n     */\\n    SdkMeetingSessionCredentials.verify = function verify(message) {\\n        if (typeof message !== \\\"object\\\" || message === null)\\n            return \\\"object expected\\\";\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            if (!$util.isString(message.attendeeId))\\n                return \\\"attendeeId: string expected\\\";\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            if (!$util.isString(message.externalUserId))\\n                return \\\"externalUserId: string expected\\\";\\n        if (message.joinToken != null && message.hasOwnProperty(\\\"joinToken\\\"))\\n            if (!$util.isString(message.joinToken))\\n                return \\\"joinToken: string expected\\\";\\n        return null;\\n    };\\n\\n    /**\\n     * Creates a SdkMeetingSessionCredentials message from a plain object. Also converts values to their respective internal types.\\n     * @function fromObject\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {Object.<string,*>} object Plain object\\n     * @returns {SdkMeetingSessionCredentials} SdkMeetingSessionCredentials\\n     */\\n    SdkMeetingSessionCredentials.fromObject = function fromObject(object) {\\n        if (object instanceof $root.SdkMeetingSessionCredentials)\\n            return object;\\n        var message = new $root.SdkMeetingSessionCredentials();\\n        if (object.attendeeId != null)\\n            message.attendeeId = String(object.attendeeId);\\n        if (object.externalUserId != null)\\n            message.externalUserId = String(object.externalUserId);\\n        if (object.joinToken != null)\\n            message.joinToken = String(object.joinToken);\\n        return message;\\n    };\\n\\n    /**\\n     * Creates a plain object from a SdkMeetingSessionCredentials message. Also converts values to other types if specified.\\n     * @function toObject\\n     * @memberof SdkMeetingSessionCredentials\\n     * @static\\n     * @param {SdkMeetingSessionCredentials} message SdkMeetingSessionCredentials\\n     * @param {$protobuf.IConversionOptions} [options] Conversion options\\n     * @returns {Object.<string,*>} Plain object\\n     */\\n    SdkMeetingSessionCredentials.toObject = function toObject(message, options) {\\n        if (!options)\\n            options = {};\\n        var object = {};\\n        if (options.defaults) {\\n            object.attendeeId = \\\"\\\";\\n            object.externalUserId = \\\"\\\";\\n            object.joinToken = \\\"\\\";\\n        }\\n        if (message.attendeeId != null && message.hasOwnProperty(\\\"attendeeId\\\"))\\n            object.attendeeId = message.attendeeId;\\n        if (message.externalUserId != null && message.hasOwnProperty(\\\"externalUserId\\\"))\\n            object.externalUserId = message.externalUserId;\\n        if (message.joinToken != null && message.hasOwnProperty(\\\"joinToken\\\"))\\n            object.joinToken = message.joinToken;\\n        return object;\\n    };\\n\\n    /**\\n     * Converts this SdkMeetingSessionCredentials to JSON.\\n     * @function toJSON\\n     * @memberof SdkMeetingSessionCredentials\\n     * @instance\\n     * @returns {Object.<string,*>} JSON object\\n     */\\n    SdkMeetingSessionCredentials.prototype.toJSON = function toJSON() {\\n        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\\n    };\\n\\n    return SdkMeetingSessionCredentials;\\n})();\\n\\n/**\\n * SdkVideoCodecCapability enum.\\n * @exports SdkVideoCodecCapability\\n * @enum {number}\\n * @property {number} VP8=1 VP8 value\\n * @property {number} H264_CONSTRAINED_BASELINE_PROFILE=3 H264_CONSTRAINED_BASELINE_PROFILE value\\n */\\n$root.SdkVideoCodecCapability = (function() {\\n    var valuesById = {}, values = Object.create(valuesById);\\n    values[valuesById[1] = \\\"VP8\\\"] = 1;\\n    values[valuesById[3] = \\\"H264_CONSTRAINED_BASELINE_PROFILE\\\"] = 3;\\n    return values;\\n})();\\n\\nmodule.exports = $root;\\n$util.Long = undefined;\\n$protobuf.configure();\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/sigv4/DefaultSigV4.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/sigv4/DefaultSigV4.js ***!\n  \\**********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst sha256_js_1 = __webpack_require__(/*! @aws-crypto/sha256-js */ \\\"./node_modules/@aws-crypto/sha256-js/build/index.js\\\");\\nconst util_hex_encoding_1 = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ \\\"./node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nclass DefaultSigV4 {\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\\n    constructor(chimeClient) {\\n        this.chimeClient = chimeClient;\\n    }\\n    makeTwoDigits(n) {\\n        /* istanbul ignore if */\\n        /* istanbul ignore else */\\n        if (n > 9) {\\n            return n.toString();\\n        }\\n        else {\\n            return '0' + n.toString();\\n        }\\n    }\\n    hmac(data, secret) {\\n        const hash = new sha256_js_1.Sha256(secret);\\n        hash.update(data);\\n        return hash.digest();\\n    }\\n    getDateTimeString() {\\n        const d = new Date();\\n        return (d.getUTCFullYear() +\\n            this.makeTwoDigits(d.getUTCMonth() + 1) +\\n            this.makeTwoDigits(d.getUTCDate()) +\\n            'T' +\\n            this.makeTwoDigits(d.getUTCHours()) +\\n            this.makeTwoDigits(d.getUTCMinutes()) +\\n            this.makeTwoDigits(d.getUTCSeconds()) +\\n            'Z');\\n    }\\n    getDateString(dateTimeString) {\\n        return dateTimeString.substring(0, dateTimeString.indexOf('T'));\\n    }\\n    getSignatureKey(key, date, regionName, serviceName) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const kDate = yield this.hmac(date, 'AWS4' + key);\\n            const kRegion = yield this.hmac(regionName, kDate);\\n            const kService = yield this.hmac(serviceName, kRegion);\\n            const kSigning = yield this.hmac('aws4_request', kService);\\n            return kSigning;\\n        });\\n    }\\n    signURL(method, scheme, serviceName, hostname, path, payload, queryParams) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const now = this.getDateTimeString();\\n            const today = this.getDateString(now);\\n            const algorithm = 'AWS4-HMAC-SHA256';\\n            let region = '';\\n            // in AWS SDK v3 region is a function\\n            if (this.chimeClient.config.region instanceof Function) {\\n                region = yield this.chimeClient.config.region();\\n            }\\n            else {\\n                region = this.chimeClient.config.region;\\n            }\\n            const signedHeaders = 'host';\\n            const canonicalHeaders = 'host:' + hostname.toLowerCase() + '\\\\n';\\n            const credentialScope = today + '/' + region + '/' + serviceName + '/' + 'aws4_request';\\n            let credentials = undefined;\\n            // in AWS SDK v3 credentials is a function\\n            if (this.chimeClient.config.credentials instanceof Function) {\\n                credentials = yield this.chimeClient.config.credentials();\\n            }\\n            else {\\n                credentials = this.chimeClient.config.credentials;\\n            }\\n            let params = new Map();\\n            params.set('X-Amz-Algorithm', [algorithm]);\\n            params.set('X-Amz-Credential', [\\n                encodeURIComponent(credentials.accessKeyId + '/' + credentialScope),\\n            ]);\\n            params.set('X-Amz-Date', [now]);\\n            params.set('X-Amz-Expires', ['10']);\\n            params.set('X-Amz-SignedHeaders', ['host']);\\n            if (credentials.sessionToken) {\\n                params.set('X-Amz-Security-Token', [encodeURIComponent(credentials.sessionToken)]);\\n            }\\n            params.set(Versioning_1.default.X_AMZN_VERSION, [encodeURIComponent(Versioning_1.default.sdkVersion)]);\\n            params.set(Versioning_1.default.X_AMZN_USER_AGENT, [\\n                encodeURIComponent(Versioning_1.default.sdkUserAgentLowResolution),\\n            ]);\\n            queryParams === null || queryParams === void 0 ? void 0 : queryParams.forEach((values, key) => {\\n                const encodedKey = encodeURIComponent(key);\\n                values.sort().forEach((value) => {\\n                    if (!params.has(encodedKey)) {\\n                        params.set(encodedKey, []);\\n                    }\\n                    params.get(encodedKey).push(encodeURIComponent(value));\\n                });\\n            });\\n            let canonicalQuerystring = '';\\n            params = new Map([...params.entries()].sort());\\n            params.forEach((values, key) => {\\n                values.forEach(value => {\\n                    if (canonicalQuerystring.length) {\\n                        canonicalQuerystring += '&';\\n                    }\\n                    canonicalQuerystring += key + '=' + value;\\n                });\\n            });\\n            const canonicalRequest = method +\\n                '\\\\n' +\\n                path +\\n                '\\\\n' +\\n                canonicalQuerystring +\\n                '\\\\n' +\\n                canonicalHeaders +\\n                '\\\\n' +\\n                signedHeaders +\\n                '\\\\n' +\\n                util_hex_encoding_1.toHex(yield this.hmac(payload));\\n            const hashedCanonicalRequest = util_hex_encoding_1.toHex(yield this.hmac(canonicalRequest));\\n            const stringToSign = 'AWS4-HMAC-SHA256\\\\n' +\\n                now +\\n                '\\\\n' +\\n                today +\\n                '/' +\\n                region +\\n                '/' +\\n                serviceName +\\n                '/aws4_request\\\\n' +\\n                hashedCanonicalRequest;\\n            const signingKey = yield this.getSignatureKey(credentials.secretAccessKey, today, region, serviceName);\\n            const signature = util_hex_encoding_1.toHex(yield this.hmac(stringToSign, signingKey));\\n            const finalParams = canonicalQuerystring + '&X-Amz-Signature=' + signature;\\n            return scheme + '://' + hostname + path + '?' + finalParams;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultSigV4;\\n//# sourceMappingURL=DefaultSigV4.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/sigv4/DefaultSigV4.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/simulcastlayers/SimulcastLayers.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/simulcastlayers/SimulcastLayers.js ***!\n  \\***********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.SimulcastLayers = void 0;\\n/**\\n * [[SimulcastLayers]] represents simulcast layers for selected simulcast video streams.\\n */\\nvar SimulcastLayers;\\n(function (SimulcastLayers) {\\n    /**\\n     * Low resolution video stream.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"Low\\\"] = 0] = \\\"Low\\\";\\n    /**\\n     * Low and medium resolution video streams.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"LowAndMedium\\\"] = 1] = \\\"LowAndMedium\\\";\\n    /**\\n     * Low and high resolution video streams.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"LowAndHigh\\\"] = 2] = \\\"LowAndHigh\\\";\\n    /**\\n     * Medium resolution video stream.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"Medium\\\"] = 3] = \\\"Medium\\\";\\n    /**\\n     * Medium and high resolution video streams.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"MediumAndHigh\\\"] = 4] = \\\"MediumAndHigh\\\";\\n    /**\\n     * High resolution video stream.\\n     */\\n    SimulcastLayers[SimulcastLayers[\\\"High\\\"] = 5] = \\\"High\\\";\\n})(SimulcastLayers = exports.SimulcastLayers || (exports.SimulcastLayers = {}));\\nexports[\\\"default\\\"] = SimulcastLayers;\\n//# sourceMappingURL=SimulcastLayers.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/simulcastlayers/SimulcastLayers.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.AudioLogEvent = void 0;\\nvar AudioLogEvent;\\n(function (AudioLogEvent) {\\n    AudioLogEvent[AudioLogEvent[\\\"DeviceChanged\\\"] = 0] = \\\"DeviceChanged\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"MutedLocal\\\"] = 1] = \\\"MutedLocal\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"UnmutedLocal\\\"] = 2] = \\\"UnmutedLocal\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"Connected\\\"] = 3] = \\\"Connected\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"ConnectFailed\\\"] = 4] = \\\"ConnectFailed\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"RedmicStartLoss\\\"] = 5] = \\\"RedmicStartLoss\\\";\\n    AudioLogEvent[AudioLogEvent[\\\"RedmicEndLoss\\\"] = 6] = \\\"RedmicEndLoss\\\";\\n})(AudioLogEvent = exports.AudioLogEvent || (exports.AudioLogEvent = {}));\\nexports[\\\"default\\\"] = AudioLogEvent;\\n//# sourceMappingURL=AudioLogEvent.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/statscollector/StatsCollector.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/statscollector/StatsCollector.js ***!\n  \\*********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ClientMetricReport_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReport.js\\\");\\nconst ClientMetricReportDirection_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportDirection */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\\\");\\nconst ClientMetricReportMediaType_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportMediaType */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\\\");\\nconst StreamMetricReport_1 = __webpack_require__(/*! ../clientmetricreport/StreamMetricReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/StreamMetricReport.js\\\");\\nconst MeetingSessionLifecycleEvent_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionLifecycleEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEvent.js\\\");\\nconst MeetingSessionLifecycleEventCondition_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionLifecycleEventCondition */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionLifecycleEventCondition.js\\\");\\nconst IntervalScheduler_1 = __webpack_require__(/*! ../scheduler/IntervalScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/IntervalScheduler.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst AudioLogEvent_1 = __webpack_require__(/*! ./AudioLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js\\\");\\nconst VideoLogEvent_1 = __webpack_require__(/*! ./VideoLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js\\\");\\n/**\\n * [[StatsCollector]] gathers statistics and sends metrics.\\n */\\nclass StatsCollector {\\n    constructor(audioVideoController, logger, interval = StatsCollector.INTERVAL_MS) {\\n        this.audioVideoController = audioVideoController;\\n        this.logger = logger;\\n        this.interval = interval;\\n        this.intervalScheduler = null;\\n        // TODO: Implement metricsAddTime() and metricsLogEvent().\\n        this.metricsAddTime = (_name, _duration, _attributes) => { };\\n        this.metricsLogEvent = (_name, _attributes) => { };\\n    }\\n    // TODO: Update toAttribute() and toSuffix() methods to convert raw data to a required type.\\n    /**\\n     * Converts string to attribute format.\\n     */\\n    toAttribute(str) {\\n        return this.toSuffix(str).substring(1);\\n    }\\n    /**\\n     * Converts string to suffix format.\\n     */\\n    toSuffix(str) {\\n        if (str.toLowerCase() === str) {\\n            // e.g. lower_case -> _lower_case\\n            return `_${str}`;\\n        }\\n        else if (str.toUpperCase() === str) {\\n            // e.g. UPPER_CASE -> _upper_case\\n            return `_${str.toLowerCase()}`;\\n        }\\n        else {\\n            // e.g. CamelCaseWithCAPS -> _camel_case_with_caps\\n            return str\\n                .replace(/([A-Z][a-z]+)/g, function ($1) {\\n                return `_${$1}`;\\n            })\\n                .replace(/([A-Z][A-Z]+)/g, function ($1) {\\n                return `_${$1}`;\\n            })\\n                .toLowerCase();\\n        }\\n    }\\n    /**\\n     * Logs the latency.\\n     */\\n    logLatency(eventName, timeMs, attributes) {\\n        const event = this.toSuffix(eventName);\\n        this.logEventTime('meeting' + event, timeMs, attributes);\\n    }\\n    /**\\n     * Logs the state timeout.\\n     */\\n    logStateTimeout(stateName, attributes) {\\n        const state = this.toSuffix(stateName);\\n        this.logEvent('meeting_session_state_timeout', Object.assign(Object.assign({}, attributes), { state: `state${state}` }));\\n    }\\n    /**\\n     * Logs the audio event.\\n     */\\n    logAudioEvent(eventName, attributes) {\\n        const event = 'audio' + this.toSuffix(AudioLogEvent_1.default[eventName]);\\n        this.logEvent(event, attributes);\\n    }\\n    /**\\n     * Logs the video event.\\n     */\\n    logVideoEvent(eventName, attributes) {\\n        const event = 'video' + this.toSuffix(VideoLogEvent_1.default[eventName]);\\n        this.logEvent(event, attributes);\\n    }\\n    logEventTime(eventName, timeMs, attributes = {}) {\\n        const finalAttributes = Object.assign(Object.assign({}, attributes), { call_id: this.audioVideoController.configuration.meetingId, client_type: StatsCollector.CLIENT_TYPE, metric_type: 'latency' });\\n        this.logger.debug(() => {\\n            return `[StatsCollector] ${eventName}: ${JSON.stringify(finalAttributes)}`;\\n        });\\n        this.metricsAddTime(eventName, timeMs, finalAttributes);\\n    }\\n    /**\\n     * Logs the session status.\\n     */\\n    logMeetingSessionStatus(status) {\\n        // TODO: Generate the status event name given the status code.\\n        const statusEventName = `${status.statusCode()}`;\\n        this.logEvent(statusEventName);\\n        const statusAttribute = {\\n            status: statusEventName,\\n            status_code: `${status.statusCode()}`,\\n        };\\n        this.logEvent('meeting_session_status', statusAttribute);\\n        if (status.isTerminal()) {\\n            this.logEvent('meeting_session_stopped', statusAttribute);\\n        }\\n        if (status.isAudioConnectionFailure()) {\\n            this.logEvent('meeting_session_audio_failed', statusAttribute);\\n        }\\n        if (status.isFailure()) {\\n            this.logEvent('meeting_session_failed', statusAttribute);\\n        }\\n    }\\n    /**\\n     * Logs the lifecycle event.\\n     */\\n    logLifecycleEvent(lifecycleEvent, condition) {\\n        const attributes = {\\n            lifecycle_event: `lifecycle${this.toSuffix(MeetingSessionLifecycleEvent_1.default[lifecycleEvent])}`,\\n            lifecycle_event_code: `${lifecycleEvent}`,\\n            lifecycle_event_condition: `condition${this.toSuffix(MeetingSessionLifecycleEventCondition_1.default[condition])}`,\\n            lifecycle_event_condition_code: `${condition}`,\\n        };\\n        this.logEvent('meeting_session_lifecycle', attributes);\\n    }\\n    /**\\n     * Logs the events.\\n     */\\n    logEvent(eventName, attributes = {}) {\\n        const finalAttributes = Object.assign(Object.assign({}, attributes), { call_id: this.audioVideoController.configuration.meetingId, client_type: StatsCollector.CLIENT_TYPE });\\n        this.logger.debug(() => {\\n            return `[StatsCollector] ${eventName}: ${JSON.stringify(finalAttributes)}`;\\n        });\\n        this.metricsLogEvent(eventName, finalAttributes);\\n    }\\n    /**\\n     * Starts collecting statistics.\\n     */\\n    start(signalingClient, videoStreamIndex) {\\n        if (this.intervalScheduler) {\\n            return false;\\n        }\\n        this.logger.info('Starting StatsCollector');\\n        this.signalingClient = signalingClient;\\n        this.videoStreamIndex = videoStreamIndex;\\n        this.clientMetricReport = new ClientMetricReport_1.default(this.logger, this.videoStreamIndex, this.audioVideoController.configuration.credentials.attendeeId);\\n        this.intervalScheduler = new IntervalScheduler_1.default(this.interval);\\n        this.intervalScheduler.start(() => __awaiter(this, void 0, void 0, function* () {\\n            yield this.getStatsWrapper();\\n        }));\\n        return true;\\n    }\\n    /*\\n     * Stops the stats collector.\\n     */\\n    stop() {\\n        this.logger.info('Stopping StatsCollector');\\n        if (this.intervalScheduler) {\\n            this.intervalScheduler.stop();\\n        }\\n        this.intervalScheduler = null;\\n    }\\n    /**\\n     * Convert raw metrics to client metric report.\\n     */\\n    updateMetricValues(rawMetricReport, isStream) {\\n        const metricReport = isStream\\n            ? this.clientMetricReport.streamMetricReports[Number(rawMetricReport.ssrc)]\\n            : this.clientMetricReport.globalMetricReport;\\n        let metricMap;\\n        if (isStream) {\\n            metricMap = this.clientMetricReport.getMetricMap(metricReport.mediaType, metricReport.direction);\\n        }\\n        else {\\n            metricMap = this.clientMetricReport.getMetricMap();\\n        }\\n        for (const rawMetric in rawMetricReport) {\\n            if (rawMetric in metricMap) {\\n                if (typeof rawMetricReport[rawMetric] === 'number') {\\n                    metricReport.previousMetrics[rawMetric] = metricReport.currentMetrics[rawMetric];\\n                    metricReport.currentMetrics[rawMetric] = rawMetricReport[rawMetric];\\n                }\\n                else if (typeof rawMetricReport[rawMetric] === 'string') {\\n                    metricReport.currentStringMetrics[rawMetric] = rawMetricReport[rawMetric];\\n                }\\n                else {\\n                    this.logger.error(`Unknown metric value type ${typeof rawMetricReport[rawMetric]} for metric ${rawMetric}`);\\n                }\\n            }\\n        }\\n    }\\n    /**\\n     * Converts RawMetricReport to StreamMetricReport and GlobalMetricReport and stores them as clientMetricReport.\\n     */\\n    processRawMetricReports(rawMetricReports) {\\n        this.clientMetricReport.currentSsrcs = {};\\n        const timeStamp = Date.now();\\n        for (const rawMetricReport of rawMetricReports) {\\n            const isStream = this.isStreamRawMetricReport(rawMetricReport.type);\\n            if (isStream) {\\n                const existingStreamMetricReport = this.clientMetricReport.streamMetricReports[Number(rawMetricReport.ssrc)];\\n                if (!existingStreamMetricReport) {\\n                    const streamMetricReport = new StreamMetricReport_1.default();\\n                    streamMetricReport.mediaType = this.getMediaType(rawMetricReport);\\n                    streamMetricReport.direction = this.getDirectionType(rawMetricReport);\\n                    if (!this.videoStreamIndex.allStreams().empty()) {\\n                        streamMetricReport.streamId = this.videoStreamIndex.streamIdForSSRC(Number(rawMetricReport.ssrc));\\n                    }\\n                    this.clientMetricReport.streamMetricReports[Number(rawMetricReport.ssrc)] = streamMetricReport;\\n                }\\n                else {\\n                    // Update stream ID in case we have overridden it locally in the case of remote video\\n                    // updates completed without a negotiation\\n                    existingStreamMetricReport.streamId = this.videoStreamIndex.streamIdForSSRC(Number(rawMetricReport.ssrc));\\n                }\\n                this.clientMetricReport.currentSsrcs[Number(rawMetricReport.ssrc)] = 1;\\n            }\\n            this.updateMetricValues(rawMetricReport, isStream);\\n        }\\n        this.clientMetricReport.removeDestroyedSsrcs();\\n        this.clientMetricReport.previousTimestampMs = this.clientMetricReport.currentTimestampMs;\\n        this.clientMetricReport.currentTimestampMs = timeStamp;\\n        this.clientMetricReport.print();\\n    }\\n    /**\\n     *  Add stream metric dimension frames derived from metrics\\n     */\\n    addStreamMetricDimensionFrames(streamMetricFrame, streamMetricReport) {\\n        const streamDimensionMap = this.clientMetricReport.getStreamDimensionMap();\\n        for (const metricName in streamMetricReport.currentStringMetrics) {\\n            if (metricName in streamDimensionMap) {\\n                const dimensionFrame = SignalingProtocol_js_1.SdkStreamDimension.create();\\n                dimensionFrame.type = streamDimensionMap[metricName];\\n                const dimensionValue = SignalingProtocol_js_1.SdkDimensionValue.create();\\n                dimensionValue.stringValue = streamMetricReport.currentStringMetrics[metricName];\\n                dimensionFrame.value = dimensionValue;\\n                streamMetricFrame.dimensions.push(dimensionFrame);\\n            }\\n        }\\n    }\\n    /**\\n     * Packages a metric into the MetricFrame.\\n     */\\n    addMetricFrame(metricName, clientMetricFrame, metricSpec, ssrc) {\\n        const type = metricSpec.type;\\n        const transform = metricSpec.transform;\\n        const sourceMetric = metricSpec.source;\\n        const streamMetricFramesLength = clientMetricFrame.streamMetricFrames.length;\\n        const latestStreamMetricFrame = clientMetricFrame.streamMetricFrames[streamMetricFramesLength - 1];\\n        if (type) {\\n            const metricFrame = SignalingProtocol_js_1.SdkMetric.create();\\n            metricFrame.type = type;\\n            metricFrame.value = sourceMetric\\n                ? transform(sourceMetric, ssrc)\\n                : transform(metricName, ssrc);\\n            ssrc\\n                ? latestStreamMetricFrame.metrics.push(metricFrame)\\n                : clientMetricFrame.globalMetrics.push(metricFrame);\\n        }\\n    }\\n    /**\\n     * Packages metrics in GlobalMetricReport into the MetricFrame.\\n     */\\n    addGlobalMetricsToProtobuf(clientMetricFrame) {\\n        const metricMap = this.clientMetricReport.getMetricMap();\\n        for (const metricName in this.clientMetricReport.globalMetricReport.currentMetrics) {\\n            this.addMetricFrame(metricName, clientMetricFrame, metricMap[metricName]);\\n        }\\n    }\\n    /**\\n     * Packages metrics in StreamMetricReport into the MetricFrame.\\n     */\\n    addStreamMetricsToProtobuf(clientMetricFrame) {\\n        for (const ssrc in this.clientMetricReport.streamMetricReports) {\\n            const streamMetricReport = this.clientMetricReport.streamMetricReports[ssrc];\\n            const streamMetricFrame = SignalingProtocol_js_1.SdkStreamMetricFrame.create();\\n            streamMetricFrame.streamId = streamMetricReport.streamId;\\n            streamMetricFrame.metrics = [];\\n            this.addStreamMetricDimensionFrames(streamMetricFrame, streamMetricReport);\\n            clientMetricFrame.streamMetricFrames.push(streamMetricFrame);\\n            const metricMap = this.clientMetricReport.getMetricMap(streamMetricReport.mediaType, streamMetricReport.direction);\\n            for (const metricName in streamMetricReport.currentMetrics) {\\n                this.addMetricFrame(metricName, clientMetricFrame, metricMap[metricName], Number(ssrc));\\n            }\\n            for (const metricName in streamMetricReport.currentStringMetrics) {\\n                this.addMetricFrame(metricName, clientMetricFrame, metricMap[metricName], Number(ssrc));\\n            }\\n        }\\n    }\\n    /**\\n     * Packages all metrics into the MetricFrame.\\n     */\\n    makeClientMetricProtobuf() {\\n        const clientMetricFrame = SignalingProtocol_js_1.SdkClientMetricFrame.create();\\n        clientMetricFrame.globalMetrics = [];\\n        clientMetricFrame.streamMetricFrames = [];\\n        this.addGlobalMetricsToProtobuf(clientMetricFrame);\\n        this.addStreamMetricsToProtobuf(clientMetricFrame);\\n        return clientMetricFrame;\\n    }\\n    /**\\n     * Sends the MetricFrame to Tincan via ProtoBuf.\\n     */\\n    sendClientMetricProtobuf(clientMetricFrame) {\\n        this.signalingClient.sendClientMetrics(clientMetricFrame);\\n    }\\n    /**\\n     * Checks if the type of RawMetricReport is stream related.\\n     */\\n    isStreamRawMetricReport(type) {\\n        return ['inbound-rtp', 'outbound-rtp', 'remote-inbound-rtp', 'remote-outbound-rtp'].includes(type);\\n    }\\n    /**\\n     * Returns the MediaType for a RawMetricReport.\\n     */\\n    getMediaType(rawMetricReport) {\\n        return rawMetricReport.kind === 'audio' ? ClientMetricReportMediaType_1.default.AUDIO : ClientMetricReportMediaType_1.default.VIDEO;\\n    }\\n    /**\\n     * Returns the Direction for a RawMetricReport.\\n     */\\n    getDirectionType(rawMetricReport) {\\n        const { type } = rawMetricReport;\\n        return type === 'inbound-rtp' || type === 'remote-outbound-rtp'\\n            ? ClientMetricReportDirection_1.default.DOWNSTREAM\\n            : ClientMetricReportDirection_1.default.UPSTREAM;\\n    }\\n    /**\\n     * Checks if a RawMetricReport belongs to certain types.\\n     */\\n    isValidStandardRawMetric(rawMetricReport) {\\n        return (rawMetricReport.type === 'inbound-rtp' ||\\n            rawMetricReport.type === 'outbound-rtp' ||\\n            rawMetricReport.type === 'remote-inbound-rtp' ||\\n            rawMetricReport.type === 'remote-outbound-rtp' ||\\n            (rawMetricReport.type === 'candidate-pair' && rawMetricReport.state === 'succeeded'));\\n    }\\n    /**\\n     * Checks if a RawMetricReport is stream related.\\n     */\\n    isValidSsrc(rawMetricReport) {\\n        let validSsrc = true;\\n        if (this.isStreamRawMetricReport(rawMetricReport.type) &&\\n            this.getDirectionType(rawMetricReport) === ClientMetricReportDirection_1.default.DOWNSTREAM &&\\n            this.getMediaType(rawMetricReport) === ClientMetricReportMediaType_1.default.VIDEO) {\\n            validSsrc = this.videoStreamIndex.streamIdForSSRC(Number(rawMetricReport.ssrc)) > 0;\\n        }\\n        return validSsrc;\\n    }\\n    /**\\n     * Checks if a RawMetricReport is valid.\\n     */\\n    isValidRawMetricReport(rawMetricReport) {\\n        return this.isValidStandardRawMetric(rawMetricReport) && this.isValidSsrc(rawMetricReport);\\n    }\\n    /**\\n     * Filters RawMetricReports and keeps the required parts.\\n     */\\n    filterRawMetricReports(rawMetricReports) {\\n        const filteredRawMetricReports = [];\\n        for (const rawMetricReport of rawMetricReports) {\\n            if (this.isValidRawMetricReport(rawMetricReport)) {\\n                filteredRawMetricReports.push(rawMetricReport);\\n            }\\n        }\\n        return filteredRawMetricReports;\\n    }\\n    /**\\n     * Performs a series operation on RawMetricReport.\\n     */\\n    handleRawMetricReports(rawMetricReports) {\\n        const filteredRawMetricReports = this.filterRawMetricReports(rawMetricReports);\\n        this.logger.debug(() => {\\n            return `Filtered raw metrics : ${JSON.stringify(filteredRawMetricReports)}`;\\n        });\\n        this.processRawMetricReports(filteredRawMetricReports);\\n        const clientMetricFrame = this.makeClientMetricProtobuf();\\n        this.sendClientMetricProtobuf(clientMetricFrame);\\n        this.audioVideoController.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.metricsDidReceive).map(f => f.bind(observer)(this.clientMetricReport.clone()));\\n        });\\n    }\\n    /**\\n     * Gets raw WebRTC metrics.\\n     */\\n    getStatsWrapper() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.audioVideoController.rtcPeerConnection) {\\n                return;\\n            }\\n            const rawMetricReports = [];\\n            // @ts-ignore\\n            try {\\n                const report = yield this.audioVideoController.rtcPeerConnection.getStats();\\n                this.clientMetricReport.rtcStatsReport = report;\\n                report.forEach((item) => {\\n                    rawMetricReports.push(item);\\n                });\\n                this.handleRawMetricReports(rawMetricReports);\\n            }\\n            catch (error) {\\n                this.logger.error(error.message);\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = StatsCollector;\\nStatsCollector.INTERVAL_MS = 1000;\\nStatsCollector.CLIENT_TYPE = 'amazon-chime-sdk-js';\\n//# sourceMappingURL=StatsCollector.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/statscollector/StatsCollector.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js ***!\n  \\********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.VideoLogEvent = void 0;\\nvar VideoLogEvent;\\n(function (VideoLogEvent) {\\n    VideoLogEvent[VideoLogEvent[\\\"InputAttached\\\"] = 0] = \\\"InputAttached\\\";\\n    VideoLogEvent[VideoLogEvent[\\\"SendingFailed\\\"] = 1] = \\\"SendingFailed\\\";\\n    VideoLogEvent[VideoLogEvent[\\\"SendingSuccess\\\"] = 2] = \\\"SendingSuccess\\\";\\n})(VideoLogEvent = exports.VideoLogEvent || (exports.VideoLogEvent = {}));\\nexports[\\\"default\\\"] = VideoLogEvent;\\n//# sourceMappingURL=VideoLogEvent.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/AttachMediaInputTask.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/AttachMediaInputTask.js ***!\n  \\*****************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst VideoLogEvent_1 = __webpack_require__(/*! ../statscollector/VideoLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/VideoLogEvent.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[AttachMediaInputTask]] adds audio and video input to peer connection.\\n */\\nclass AttachMediaInputTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'AttachMediaInputTask';\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const transceiverController = this.context.transceiverController;\\n            transceiverController.setPeer(this.context.peer);\\n            transceiverController.setupLocalTransceivers();\\n            const audioInput = this.context.activeAudioInput;\\n            if (audioInput) {\\n                const audioTracks = audioInput.getAudioTracks();\\n                this.context.logger.info('attaching audio track to peer connection');\\n                yield transceiverController.setAudioInput(audioTracks.length ? audioTracks[0] : null);\\n            }\\n            else {\\n                yield transceiverController.setAudioInput(null);\\n                this.context.logger.info('no audio track');\\n            }\\n            const videoInput = this.context.activeVideoInput;\\n            if (videoInput) {\\n                const videoTracks = videoInput.getVideoTracks();\\n                const videoTrack = videoTracks.length ? videoTracks[0] : null;\\n                this.context.logger.info('attaching video track to peer connection');\\n                yield transceiverController.setVideoInput(videoTrack);\\n                if (this.context.enableSimulcast && this.context.videoUplinkBandwidthPolicy) {\\n                    const encodingParam = this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters();\\n                    transceiverController.setEncodingParameters(encodingParam);\\n                }\\n                if (videoTrack) {\\n                    this.context.statsCollector.logVideoEvent(VideoLogEvent_1.default.InputAttached, this.context.videoDeviceInformation);\\n                    this.context.videoInputAttachedTimestampMs = Date.now();\\n                }\\n            }\\n            else {\\n                yield transceiverController.setVideoInput(null);\\n                this.context.logger.info('no video track');\\n            }\\n            this.context.videoSubscriptions = transceiverController.updateVideoTransceivers(this.context.videoStreamIndex, this.context.videosToReceive);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = AttachMediaInputTask;\\n//# sourceMappingURL=AttachMediaInputTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/AttachMediaInputTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js ***!\n  \\*****************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst OnceTask_1 = __webpack_require__(/*! ./OnceTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/OnceTask.js\\\");\\nconst TaskStatus_1 = __webpack_require__(/*! ./TaskStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js\\\");\\n/*\\n * [[BaseTask]] provides common utilities for task implementations.\\n */\\nclass BaseTask {\\n    constructor(logger) {\\n        this.logger = logger;\\n        this.taskName = 'BaseTask';\\n        this.parentTask = null;\\n        this.status = TaskStatus_1.default.IDLE;\\n        this.run = this.baseRun.bind(this, this.run);\\n        this.cancel = this.baseCancel.bind(this, this.cancel);\\n    }\\n    once(...dependencies) {\\n        return new OnceTask_1.default(this.logger, this, dependencies);\\n    }\\n    cancel() { }\\n    name() {\\n        return this.parentTask ? `${this.parentTask.name()}/${this.taskName}` : this.taskName;\\n    }\\n    setParent(parentTask) {\\n        this.parentTask = parentTask;\\n    }\\n    getStatus() {\\n        return this.status;\\n    }\\n    logAndThrow(message) {\\n        this.logger.info(message);\\n        throw new Error(message);\\n    }\\n    baseRun(originalRun) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                const startTime = Date.now();\\n                this.logger.info(`running task ${this.name()}`);\\n                switch (this.status) {\\n                    case TaskStatus_1.default.RUNNING:\\n                        this.logAndThrow(`${this.name()} is already running`);\\n                    case TaskStatus_1.default.CANCELED:\\n                        this.logAndThrow(`${this.name()} was canceled before running`);\\n                    case TaskStatus_1.default.FINISHED:\\n                        this.logAndThrow(`${this.name()} was already finished`);\\n                }\\n                this.status = TaskStatus_1.default.RUNNING;\\n                yield originalRun.call(this);\\n                this.logger.info(`${this.name()} took ${Math.round(Date.now() - startTime)} ms`);\\n            }\\n            catch (err) {\\n                throw err;\\n            }\\n            finally {\\n                if (this.status !== TaskStatus_1.default.CANCELED) {\\n                    this.status = TaskStatus_1.default.FINISHED;\\n                }\\n            }\\n        });\\n    }\\n    baseCancel(originalCancel) {\\n        if (this.status === TaskStatus_1.default.CANCELED || this.status === TaskStatus_1.default.FINISHED) {\\n            this.logger.info(`Not canceling ${this.name()}: state is ${this.status}`);\\n            return;\\n        }\\n        this.logger.info(`canceling task ${this.name()}`);\\n        this.status = TaskStatus_1.default.CANCELED;\\n        originalCancel.call(this);\\n    }\\n}\\nexports[\\\"default\\\"] = BaseTask;\\n//# sourceMappingURL=BaseTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/CleanRestartedSessionTask.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/CleanRestartedSessionTask.js ***!\n  \\**********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nclass CleanRestartedSessionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'CleanRestartedSessionTask';\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.context.peer) {\\n                this.context.peer.close();\\n            }\\n            this.context.transceiverController.reset();\\n            this.context.peer = null;\\n            this.context.videoDownlinkBandwidthPolicy.reset();\\n            if (this.context.videoUplinkBandwidthPolicy.reset) {\\n                this.context.videoUplinkBandwidthPolicy.reset();\\n            }\\n            this.context.iceCandidateHandler = null;\\n            this.context.iceCandidates = [];\\n            this.context.previousSdpOffer = null;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = CleanRestartedSessionTask;\\n//# sourceMappingURL=CleanRestartedSessionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/CleanRestartedSessionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/CleanStoppedSessionTask.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/CleanStoppedSessionTask.js ***!\n  \\********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nclass CleanStoppedSessionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'CleanStoppedSessionTask';\\n        this.taskCanceler = null;\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                if (this.context.signalingClient.ready()) {\\n                    this.context.signalingClient.closeConnection();\\n                    yield this.receiveWebSocketClosedEvent();\\n                }\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n            finally {\\n                for (const observer of this.context.removableObservers) {\\n                    observer.removeObserver();\\n                }\\n                this.context.statsCollector.stop();\\n                this.context.statsCollector = null;\\n                this.context.connectionMonitor.stop();\\n                this.context.connectionMonitor = null;\\n                if (this.context.peer) {\\n                    this.context.peer.close();\\n                }\\n                this.context.peer = null;\\n                this.context.sdpAnswer = null;\\n                this.context.sdpOfferInit = null;\\n                this.context.indexFrame = null;\\n                this.context.videoDownlinkBandwidthPolicy.reset();\\n                if (this.context.videoUplinkBandwidthPolicy.reset) {\\n                    this.context.videoUplinkBandwidthPolicy.reset();\\n                }\\n                this.context.iceCandidateHandler = null;\\n                this.context.iceCandidates = [];\\n                this.context.turnCredentials = null;\\n                this.context.videoSubscriptions = null;\\n                this.context.transceiverController.reset();\\n                if (this.context.videoUplinkBandwidthPolicy.setTransceiverController) {\\n                    this.context.videoUplinkBandwidthPolicy.setTransceiverController(undefined);\\n                }\\n                if (this.context.videoDownlinkBandwidthPolicy.bindToTileController) {\\n                    this.context.videoDownlinkBandwidthPolicy.bindToTileController(undefined);\\n                }\\n                const tile = this.context.videoTileController.getLocalVideoTile();\\n                if (tile) {\\n                    tile.bindVideoStream('', true, null, null, null, null);\\n                }\\n                this.context.videoTileController.removeAllVideoTiles();\\n            }\\n        });\\n    }\\n    receiveWebSocketClosedEvent() {\\n        return new Promise((resolve, reject) => {\\n            class Interceptor {\\n                constructor(signalingClient) {\\n                    this.signalingClient = signalingClient;\\n                }\\n                cancel() {\\n                    this.signalingClient.removeObserver(this);\\n                    reject(new Error(`CleanStoppedSessionTask got canceled while waiting for the WebSocket closed event`));\\n                }\\n                handleSignalingClientEvent(event) {\\n                    if (event.type === SignalingClientEventType_1.default.WebSocketClosed) {\\n                        this.signalingClient.removeObserver(this);\\n                        resolve();\\n                    }\\n                }\\n            }\\n            const interceptor = new Interceptor(this.context.signalingClient);\\n            this.taskCanceler = interceptor;\\n            this.context.signalingClient.registerObserver(interceptor);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = CleanStoppedSessionTask;\\n//# sourceMappingURL=CleanStoppedSessionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/CleanStoppedSessionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/CreatePeerConnectionTask.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/CreatePeerConnectionTask.js ***!\n  \\*********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[CreatePeerConnectionTask]] sets up the peer connection object.\\n */\\nclass CreatePeerConnectionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'CreatePeerConnectionTask';\\n        this.removeTrackAddedEventListener = null;\\n        this.removeTrackRemovedEventListeners = {};\\n        this.trackEvents = [\\n            'ended',\\n            'mute',\\n            'unmute',\\n            'isolationchange',\\n            'overconstrained',\\n        ];\\n        this.removeVideoTrackEventListeners = {};\\n        this.trackAddedHandler = (event) => {\\n            const track = event.track;\\n            this.context.logger.info(`received track event: kind=${track.kind} id=${track.id} label=${track.label}`);\\n            if (event.transceiver && event.transceiver.currentDirection === 'inactive') {\\n                return;\\n            }\\n            if (event.streams.length === 0) {\\n                this.context.logger.warn(`Track event but no stream`);\\n                return;\\n            }\\n            const stream = event.streams[0];\\n            if (track.kind === 'audio') {\\n                this.context.audioMixController.bindAudioStream(stream);\\n            }\\n            else if (track.kind === 'video' && !this.trackIsVideoInput(track)) {\\n                this.addRemoteVideoTrack(track, stream);\\n            }\\n        };\\n    }\\n    removeObserver() {\\n        this.removeTrackAddedEventListener && this.removeTrackAddedEventListener();\\n        for (const trackId in this.removeTrackRemovedEventListeners) {\\n            this.removeTrackRemovedEventListeners[trackId]();\\n        }\\n    }\\n    addPeerConnectionEventLogger() {\\n        const peer = this.context.peer;\\n        peer.addEventListener('connectionstatechange', () => {\\n            this.context.logger.info(`peer connection state changed: ${peer.connectionState}`);\\n        });\\n        peer.addEventListener('negotiationneeded', () => {\\n            this.context.logger.info('peer connection negotiation is needed');\\n        });\\n        peer.addEventListener('icegatheringstatechange', () => {\\n            this.context.logger.info(`peer connection ice gathering state changed: ${peer.iceGatheringState}`);\\n        });\\n        peer.addEventListener('icecandidate', (event) => {\\n            this.context.logger.info(`peer connection ice candidate: ${event.candidate ? event.candidate.candidate : '(null)'}`);\\n        });\\n        peer.addEventListener('iceconnectionstatechange', () => {\\n            this.context.logger.info(`peer connection ice connection state changed: ${peer.iceConnectionState}`);\\n        });\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.context.removableObservers.push(this);\\n            const hasTurnCredentials = this.context.turnCredentials && this.context.turnCredentials.uris.length > 0;\\n            const configuration = hasTurnCredentials\\n                ? {\\n                    iceServers: [\\n                        {\\n                            urls: this.context.turnCredentials.uris,\\n                            username: this.context.turnCredentials.username,\\n                            credential: this.context.turnCredentials.password,\\n                            credentialType: 'password',\\n                        },\\n                    ],\\n                    iceTransportPolicy: 'relay',\\n                }\\n                : {};\\n            configuration.bundlePolicy = this.context.browserBehavior.requiresBundlePolicy();\\n            // @ts-ignore\\n            configuration.sdpSemantics = 'unified-plan';\\n            if (this.context.peer) {\\n                this.context.logger.info('reusing peer connection');\\n            }\\n            else {\\n                this.context.logger.info('creating new peer connection');\\n                // @ts-ignore\\n                this.context.peer = new RTCPeerConnection(configuration);\\n                this.addPeerConnectionEventLogger();\\n            }\\n            this.removeTrackAddedEventListener = () => {\\n                if (this.context.peer) {\\n                    this.context.peer.removeEventListener('track', this.trackAddedHandler);\\n                }\\n                this.removeTrackAddedEventListener = null;\\n            };\\n            this.context.peer.addEventListener('track', this.trackAddedHandler);\\n        });\\n    }\\n    trackIsVideoInput(track) {\\n        if (this.context.transceiverController.useTransceivers()) {\\n            this.logger.debug(() => {\\n                return `getting video track type`;\\n            });\\n            return this.context.transceiverController.trackIsVideoInput(track);\\n        }\\n        return false;\\n    }\\n    addRemoteVideoTrack(track, stream) {\\n        var _a;\\n        const trackId = stream.id;\\n        const attendeeId = this.context.videoStreamIndex.attendeeIdForTrack(trackId);\\n        let skipAdding;\\n        let tile;\\n        if (this.context.videoTileController.getVideoTileForAttendeeId) {\\n            tile = this.context.videoTileController.getVideoTileForAttendeeId(attendeeId);\\n            skipAdding = !!((_a = tile === null || tile === void 0 ? void 0 : tile.state()) === null || _a === void 0 ? void 0 : _a.boundVideoStream);\\n        }\\n        else {\\n            skipAdding = this.context.videoTileController.haveVideoTileForAttendeeId(attendeeId);\\n        }\\n        if (skipAdding) {\\n            this.context.logger.info(`Not adding remote track. Already have tile for attendeeId:  ${attendeeId}`);\\n            return;\\n        }\\n        if (!tile) {\\n            tile = this.context.videoTileController.addVideoTile();\\n            this.logger.info(`Created video tile ${tile.id()}`);\\n        }\\n        let streamId = this.context.videoStreamIndex.streamIdForTrack(trackId);\\n        if (typeof streamId === 'undefined') {\\n            this.logger.warn(`stream not found for tile=${tile.id()} track=${trackId}`);\\n            streamId = null;\\n        }\\n        for (let i = 0; i < this.trackEvents.length; i++) {\\n            const trackEvent = this.trackEvents[i];\\n            const videoTracks = stream.getVideoTracks();\\n            if (videoTracks && videoTracks.length) {\\n                const videoTrack = videoTracks[0];\\n                const callback = () => {\\n                    this.context.logger.info(`received the ${trackEvent} event for tile=${tile.id()} id=${track.id} streamId=${streamId}`);\\n                    if (trackEvent === 'ended') {\\n                        this.removeRemoteVideoTrack(track, tile.state());\\n                    }\\n                };\\n                videoTrack.addEventListener(trackEvent, callback);\\n                if (!this.removeVideoTrackEventListeners[track.id]) {\\n                    this.removeVideoTrackEventListeners[track.id] = [];\\n                }\\n                this.removeVideoTrackEventListeners[track.id].push(() => {\\n                    videoTrack.removeEventListener(trackEvent, callback);\\n                });\\n            }\\n        }\\n        let width;\\n        let height;\\n        if (track.getSettings) {\\n            const cap = track.getSettings();\\n            width = cap.width;\\n            height = cap.height;\\n        }\\n        else {\\n            const cap = track.getCapabilities();\\n            width = cap.width;\\n            height = cap.height;\\n        }\\n        const externalUserId = this.context.videoStreamIndex.externalUserIdForTrack(trackId);\\n        tile.bindVideoStream(attendeeId, false, stream, width, height, streamId, externalUserId);\\n        this.logger.info(`video track added, use tile=${tile.id()} track=${trackId} streamId=${streamId}`);\\n        const endEvent = 'removetrack';\\n        const target = stream;\\n        const trackRemovedHandler = () => this.removeRemoteVideoTrack(track, tile.state());\\n        this.removeTrackRemovedEventListeners[track.id] = () => {\\n            target.removeEventListener(endEvent, trackRemovedHandler);\\n            delete this.removeTrackRemovedEventListeners[track.id];\\n        };\\n        target.addEventListener(endEvent, trackRemovedHandler);\\n    }\\n    removeRemoteVideoTrack(track, tileState) {\\n        if (this.removeTrackRemovedEventListeners.hasOwnProperty(track.id)) {\\n            this.removeTrackRemovedEventListeners[track.id]();\\n            for (const removeVideoTrackEventListener of this.removeVideoTrackEventListeners[track.id]) {\\n                removeVideoTrackEventListener();\\n            }\\n            delete this.removeVideoTrackEventListeners[track.id];\\n        }\\n        this.logger.info(`video track ended, removing tile=${tileState.tileId} id=${track.id} stream=${tileState.streamId}`);\\n        if (tileState.streamId) {\\n            this.context.videosPaused.remove(tileState.streamId);\\n        }\\n        else {\\n            this.logger.warn(`no stream found for tile=${tileState.tileId}`);\\n        }\\n        this.context.videoTileController.removeVideoTile(tileState.tileId);\\n    }\\n}\\nexports[\\\"default\\\"] = CreatePeerConnectionTask;\\nCreatePeerConnectionTask.REMOVE_HANDLER_INTERVAL_MS = 10000;\\n//# sourceMappingURL=CreatePeerConnectionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/CreatePeerConnectionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/CreateSDPTask.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/CreateSDPTask.js ***!\n  \\**********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst SDP_1 = __webpack_require__(/*! ../sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[CreateSDPTask]] asynchronously calls [[createOffer]] on peer connection.\\n */\\nclass CreateSDPTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'CreateSDPTask';\\n    }\\n    cancel() {\\n        // Just in case. The baseCancel behavior should prevent this.\\n        /* istanbul ignore else */\\n        if (this.cancelPromise) {\\n            const error = new Error(`canceling ${this.name()}`);\\n            this.cancelPromise(error);\\n            delete this.cancelPromise;\\n        }\\n    }\\n    sessionUsesAudio() {\\n        var _a, _b;\\n        return !!((_b = (_a = this.context.meetingSessionConfiguration) === null || _a === void 0 ? void 0 : _a.urls) === null || _b === void 0 ? void 0 : _b.audioHostURL);\\n    }\\n    sessionUsesVideo() {\\n        const enabled = true;\\n        let sending;\\n        if (this.context.transceiverController.useTransceivers()) {\\n            sending = this.context.transceiverController.hasVideoInput();\\n        }\\n        else {\\n            sending = this.context.videoTileController.hasStartedLocalVideoTile();\\n        }\\n        const receiving = !!this.context.videosToReceive && !this.context.videosToReceive.empty();\\n        const usesVideo = enabled && (sending || receiving);\\n        this.context.logger.info(`uses video: ${usesVideo} (enabled: ${enabled}, sending: ${sending}, receiving: ${receiving})`);\\n        return usesVideo;\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const offerOptions = {\\n                offerToReceiveAudio: this.sessionUsesAudio(),\\n                offerToReceiveVideo: this.sessionUsesVideo(),\\n            };\\n            this.logger.info(`peer connection offerOptions: ${JSON.stringify(offerOptions)}`);\\n            yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\\n                this.cancelPromise = (error) => {\\n                    reject(error);\\n                };\\n                try {\\n                    this.context.sdpOfferInit = yield this.context.peer.createOffer(offerOptions);\\n                    this.context.logger.info('peer connection created offer');\\n                    if (this.context.previousSdpOffer) {\\n                        if (new SDP_1.default(this.context.sdpOfferInit.sdp).videoSendSectionHasDifferentSSRC(this.context.previousSdpOffer)) {\\n                            const error = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.IncompatibleSDP}`);\\n                            this.context.previousSdpOffer = null;\\n                            reject(error);\\n                            return;\\n                        }\\n                    }\\n                    resolve();\\n                }\\n                catch (error) {\\n                    reject(error);\\n                }\\n                finally {\\n                    delete this.cancelPromise;\\n                }\\n            }));\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = CreateSDPTask;\\n//# sourceMappingURL=CreateSDPTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/CreateSDPTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/FinishGatheringICECandidatesTask.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/FinishGatheringICECandidatesTask.js ***!\n  \\*****************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst SDP_1 = __webpack_require__(/*! ../sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[FinishGatheringICECandidatesTask]] add ice-candidate event handler on peer connection to\\n * collect ice candidates and wait for peer connection ice gathering state to complete\\n */\\nclass FinishGatheringICECandidatesTask extends BaseTask_1.default {\\n    constructor(context, chromeVpnTimeoutMs = FinishGatheringICECandidatesTask.CHROME_VPN_TIMEOUT_MS) {\\n        super(context.logger);\\n        this.context = context;\\n        this.chromeVpnTimeoutMs = chromeVpnTimeoutMs;\\n        this.taskName = 'FinishGatheringICECandidatesTask';\\n    }\\n    removeEventListener() {\\n        if (this.context.peer) {\\n            this.context.peer.removeEventListener('icecandidate', this.context.iceCandidateHandler);\\n            if (!this.context.turnCredentials) {\\n                this.context.peer.removeEventListener('icegatheringstatechange', this.context.iceGatheringStateEventHandler);\\n            }\\n        }\\n    }\\n    cancel() {\\n        let error;\\n        // TODO: Remove when the Chrome VPN reconnect bug is fixed.\\n        // In Chrome, SDK may fail to establish TURN session after VPN reconnect.\\n        // https://bugs.chromium.org/p/webrtc/issues/detail?id=9097\\n        if (this.context.browserBehavior.requiresIceCandidateGatheringTimeoutWorkaround()) {\\n            if (this.chromeVpnTimeoutMs < this.context.meetingSessionConfiguration.connectionTimeoutMs) {\\n                const duration = Date.now() - this.startTimestampMs;\\n                if (duration > this.chromeVpnTimeoutMs) {\\n                    error = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.ICEGatheringTimeoutWorkaround}`);\\n                }\\n            }\\n        }\\n        // Just in case. The baseCancel behavior should prevent this.\\n        /* istanbul ignore else */\\n        if (this.cancelPromise) {\\n            error = error || new Error(`canceling ${this.name()}`);\\n            this.cancelPromise(error);\\n            delete this.cancelPromise;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.context.peer) {\\n                this.logAndThrow(`session does not have peer connection; bypass ice gathering`);\\n            }\\n            if (this.context.browserBehavior.requiresCheckForSdpConnectionAttributes()) {\\n                if (new SDP_1.default(this.context.peer.localDescription.sdp).hasCandidatesForAllMLines()) {\\n                    this.context.logger.info(`ice gathering already complete; bypass gathering, current local description ${this.context.peer.localDescription.sdp}`);\\n                    return;\\n                }\\n            }\\n            else {\\n                this.context.logger.info(`iOS device does not require checking for connection attributes in SDP, current local description ${this.context.peer.localDescription.sdp}`);\\n            }\\n            /*\\n             * To bypass waiting for events, it is required that \\\"icegatheringstate\\\" to be complete and sdp to have candidate\\n             * For Firefox, it takes long for iceGatheringState === 'complete'\\n             * Ref: https://github.com/aws/amazon-chime-sdk-js/issues/609\\n             */\\n            if ((this.context.browserBehavior.hasFirefoxWebRTC() ||\\n                this.context.peer.iceGatheringState === 'complete') &&\\n                new SDP_1.default(this.context.peer.localDescription.sdp).hasCandidates()) {\\n                this.context.logger.info('ice gathering state is complete and candidates are in SDP; bypass gathering');\\n                return;\\n            }\\n            try {\\n                yield new Promise((resolve, reject) => {\\n                    this.cancelPromise = (error) => {\\n                        this.removeEventListener();\\n                        reject(error);\\n                    };\\n                    if (!this.context.turnCredentials) {\\n                        // if one day, we found a case where a FinishGatheringICECandidate did not resolve but ice gathering state is complete and SDP answer has ice candidates\\n                        // we may need to enable this\\n                        this.context.iceGatheringStateEventHandler = () => {\\n                            if (this.context.peer.iceGatheringState === 'complete') {\\n                                this.removeEventListener();\\n                                resolve();\\n                                delete this.cancelPromise;\\n                                return;\\n                            }\\n                        };\\n                        this.context.peer.addEventListener('icegatheringstatechange', this.context.iceGatheringStateEventHandler);\\n                    }\\n                    this.context.iceCandidateHandler = (event) => {\\n                        this.context.logger.info(`ice candidate: ${event.candidate ? event.candidate.candidate : '(null)'} state: ${this.context.peer.iceGatheringState}`);\\n                        // Ice candidate arrives, do not need to wait anymore.\\n                        // https://webrtcglossary.com/trickle-ice/\\n                        if (event.candidate) {\\n                            if (SDP_1.default.isRTPCandidate(event.candidate.candidate)) {\\n                                this.context.iceCandidates.push(event.candidate);\\n                            }\\n                            // Could there be a case the candidate is not written to SDP ?\\n                            if (this.context.turnCredentials && this.context.iceCandidates.length >= 1) {\\n                                this.context.logger.info('gathered at least one relay candidate');\\n                                this.removeEventListener();\\n                                resolve();\\n                                delete this.cancelPromise;\\n                                return;\\n                            }\\n                        }\\n                        // Ice candidate gathering is complete, additional barrier to make sure sdp contain an ice candidate.\\n                        // TODO: Could there be a race where iceGatheringState is flipped after this task is run ? This could only be handled if ice state is monitored persistently.\\n                        if (this.context.peer.iceGatheringState === 'complete') {\\n                            this.context.logger.info('done gathering ice candidates');\\n                            this.removeEventListener();\\n                            if (!new SDP_1.default(this.context.peer.localDescription.sdp).hasCandidates() ||\\n                                this.context.iceCandidates.length === 0) {\\n                                reject(new Error('no ice candidates were gathered'));\\n                                delete this.cancelPromise;\\n                            }\\n                            else {\\n                                resolve();\\n                                delete this.cancelPromise;\\n                            }\\n                        }\\n                    };\\n                    // SDK does not catch candidate itself and send to sever. Rather, WebRTC handles candidate events and writes candidate to SDP.\\n                    this.context.peer.addEventListener('icecandidate', this.context.iceCandidateHandler);\\n                    this.startTimestampMs = Date.now();\\n                });\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n            finally {\\n                /* istanbul ignore else */\\n                if (this.startTimestampMs) {\\n                    this.context.iceGatheringDurationMs = Math.round(Date.now() - this.startTimestampMs);\\n                }\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = FinishGatheringICECandidatesTask;\\nFinishGatheringICECandidatesTask.CHROME_VPN_TIMEOUT_MS = 5000;\\n//# sourceMappingURL=FinishGatheringICECandidatesTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/FinishGatheringICECandidatesTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/JoinAndReceiveIndexTask.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/JoinAndReceiveIndexTask.js ***!\n  \\********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst MeetingSessionTURNCredentials_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionTURNCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js\\\");\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ../signalingclient/ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingClientJoin_1 = __webpack_require__(/*! ../signalingclient/SignalingClientJoin */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientJoin.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[JoinAndReceiveIndexTask]] sends the JoinFrame and asynchronously waits for the server to send the [[SdkIndexFrame]].\\n * It should run with the [[TimeoutTask]] as the subtask so it can get canceled after timeout.\\n */\\nclass JoinAndReceiveIndexTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'JoinAndReceiveIndexTask';\\n        this.taskCanceler = null;\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const indexFrame = yield new Promise((resolve, reject) => {\\n                const context = this.context;\\n                context.turnCredentials = null;\\n                class IndexFrameInterceptor {\\n                    constructor(signalingClient) {\\n                        this.signalingClient = signalingClient;\\n                    }\\n                    cancel() {\\n                        this.signalingClient.removeObserver(this);\\n                        reject(new Error(`JoinAndReceiveIndexTask got canceled while waiting for SdkIndexFrame`));\\n                    }\\n                    handleSignalingClientEvent(event) {\\n                        if (event.type === SignalingClientEventType_1.default.WebSocketClosed) {\\n                            let message = `The signaling connection was closed with code ${event.closeCode} and reason: ${event.closeReason}`;\\n                            context.logger.warn(message);\\n                            let statusCode = MeetingSessionStatusCode_1.default.SignalingBadRequest;\\n                            if (event.closeCode === 4410) {\\n                                message = 'The meeting already ended.';\\n                                context.logger.warn(message);\\n                                statusCode = MeetingSessionStatusCode_1.default.MeetingEnded;\\n                            }\\n                            else if (event.closeCode >= 4500 && event.closeCode < 4600) {\\n                                statusCode = MeetingSessionStatusCode_1.default.SignalingInternalServerError;\\n                            }\\n                            context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1.default(statusCode), new Error(message));\\n                            return;\\n                        }\\n                        if (event.type !== SignalingClientEventType_1.default.ReceivedSignalFrame) {\\n                            return;\\n                        }\\n                        if (event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.JOIN_ACK) {\\n                            // @ts-ignore: force cast to SdkJoinAckFrame\\n                            const joinAckFrame = event.message.joinack;\\n                            if (joinAckFrame && joinAckFrame.videoSubscriptionLimit) {\\n                                context.videoSubscriptionLimit = joinAckFrame.videoSubscriptionLimit;\\n                            }\\n                            context.serverSupportsCompression = joinAckFrame === null || joinAckFrame === void 0 ? void 0 : joinAckFrame.wantsCompressedSdp;\\n                            if ((joinAckFrame === null || joinAckFrame === void 0 ? void 0 : joinAckFrame.defaultServerSideNetworkAdaption) !== undefined &&\\n                                joinAckFrame.defaultServerSideNetworkAdaption !== ServerSideNetworkAdaption_1.default.Default &&\\n                                context.videoDownlinkBandwidthPolicy.setServerSideNetworkAdaption !== undefined) {\\n                                const defaultServerSideNetworkAdaption = joinAckFrame.defaultServerSideNetworkAdaption;\\n                                context.logger.info(`Overriding server side network adaption value to ${defaultServerSideNetworkAdaption}`);\\n                                context.videoDownlinkBandwidthPolicy.setServerSideNetworkAdaption(ServerSideNetworkAdaption_1.convertServerSideNetworkAdaptionEnumFromSignaled(defaultServerSideNetworkAdaption));\\n                            }\\n                            if (joinAckFrame && joinAckFrame.turnCredentials) {\\n                                context.turnCredentials = new MeetingSessionTURNCredentials_1.default();\\n                                context.turnCredentials.username = joinAckFrame.turnCredentials.username;\\n                                context.turnCredentials.password = joinAckFrame.turnCredentials.password;\\n                                context.turnCredentials.ttl = joinAckFrame.turnCredentials.ttl;\\n                                context.turnCredentials.uris = joinAckFrame.turnCredentials.uris\\n                                    .map((uri) => {\\n                                    return context.meetingSessionConfiguration.urls.urlRewriter(uri);\\n                                })\\n                                    .filter((uri) => {\\n                                    return !!uri;\\n                                });\\n                            }\\n                            else {\\n                                context.logger.error('missing TURN credentials in JoinAckFrame');\\n                            }\\n                            return;\\n                        }\\n                        if (event.message.type !== SignalingProtocol_js_1.SdkSignalFrame.Type.INDEX) {\\n                            return;\\n                        }\\n                        this.signalingClient.removeObserver(this);\\n                        // @ts-ignore: force cast to SdkIndexFrame\\n                        const indexFrame = event.message.index;\\n                        resolve(indexFrame);\\n                    }\\n                }\\n                const interceptor = new IndexFrameInterceptor(this.context.signalingClient);\\n                this.context.signalingClient.registerObserver(interceptor);\\n                this.taskCanceler = interceptor;\\n                // reset SDP compression state\\n                this.context.previousSdpAnswerAsString = '';\\n                this.context.previousSdpOffer = null;\\n                this.context.serverSupportsCompression = false;\\n                const join = new SignalingClientJoin_1.default(this.context.meetingSessionConfiguration.applicationMetadata);\\n                if (this.context.videoDownlinkBandwidthPolicy.getServerSideNetworkAdaption !== undefined &&\\n                    this.context.videoDownlinkBandwidthPolicy.supportedServerSideNetworkAdaptions !== undefined) {\\n                    join.serverSideNetworkAdaption = this.context.videoDownlinkBandwidthPolicy.getServerSideNetworkAdaption();\\n                    join.supportedServerSideNetworkAdaptions = this.context.videoDownlinkBandwidthPolicy.supportedServerSideNetworkAdaptions();\\n                }\\n                this.context.signalingClient.join(join);\\n            });\\n            this.context.logger.info(`received first index ${JSON.stringify(indexFrame)}`);\\n            // We currently don't bother ingesting this into the same places as `ReceiveVideoStreamIndexTask` as we synchronously attempt a first subscribe\\n            // after this task completes and the state isn't quite in the right place to make it work without some refactoring. However that\\n            // means that we will always have an initial subscribe without any received videos.\\n            this.context.indexFrame = indexFrame;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = JoinAndReceiveIndexTask;\\n//# sourceMappingURL=JoinAndReceiveIndexTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/JoinAndReceiveIndexTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/LeaveAndReceiveLeaveAckTask.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/LeaveAndReceiveLeaveAckTask.js ***!\n  \\************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[LeaveAndReceiveLeaveAckTask]] sends a Leave frame and waits for a LeaveAck.\\n */\\nclass LeaveAndReceiveLeaveAckTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'LeaveAndReceiveLeaveAckTask';\\n        this.taskCanceler = null;\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.context.signalingClient.ready()) {\\n                this.context.signalingClient.leave();\\n                this.context.logger.info('sent leave');\\n                yield this.receiveLeaveAck();\\n            }\\n        });\\n    }\\n    receiveLeaveAck() {\\n        return new Promise((resolve, reject) => {\\n            class Interceptor {\\n                constructor(signalingClient, logger) {\\n                    this.signalingClient = signalingClient;\\n                    this.logger = logger;\\n                }\\n                cancel() {\\n                    this.signalingClient.removeObserver(this);\\n                    reject(new Error(`LeaveAndReceiveLeaveAckTask got canceled while waiting for IndexFrame`));\\n                }\\n                handleSignalingClientEvent(event) {\\n                    if (event.isConnectionTerminated()) {\\n                        this.signalingClient.removeObserver(this);\\n                        this.logger.info('LeaveAndReceiveLeaveAckTask connection terminated');\\n                        // don't treat this as an error\\n                        resolve();\\n                        return;\\n                    }\\n                    if (event.type === SignalingClientEventType_1.default.ReceivedSignalFrame &&\\n                        event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.LEAVE_ACK) {\\n                        this.signalingClient.removeObserver(this);\\n                        this.logger.info('got leave ack');\\n                        resolve();\\n                    }\\n                }\\n            }\\n            const interceptor = new Interceptor(this.context.signalingClient, this.context.logger);\\n            this.taskCanceler = interceptor;\\n            this.context.signalingClient.registerObserver(interceptor);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = LeaveAndReceiveLeaveAckTask;\\n//# sourceMappingURL=LeaveAndReceiveLeaveAckTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/LeaveAndReceiveLeaveAckTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ListenForVolumeIndicatorsTask.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ListenForVolumeIndicatorsTask.js ***!\n  \\**************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nclass ListenForVolumeIndicatorsTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'ListenForVolumeIndicatorsTask';\\n        this.realtimeMuteAndUnmuteHandler = (muted) => {\\n            this.context.signalingClient.mute(muted);\\n        };\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.context.removableObservers.push(this);\\n            this.context.signalingClient.registerObserver(this);\\n            this.context.realtimeController.realtimeSubscribeToMuteAndUnmuteLocalAudio(this.realtimeMuteAndUnmuteHandler);\\n        });\\n    }\\n    removeObserver() {\\n        this.context.realtimeController.realtimeUnsubscribeToMuteAndUnmuteLocalAudio(this.realtimeMuteAndUnmuteHandler);\\n        this.context.signalingClient.removeObserver(this);\\n    }\\n    handleSignalingClientEvent(event) {\\n        if (event.type !== SignalingClientEventType_1.default.ReceivedSignalFrame) {\\n            return;\\n        }\\n        if (event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.AUDIO_STREAM_ID_INFO) {\\n            // @ts-ignore\\n            const audioStreamIdInfo = event.message.audioStreamIdInfo;\\n            this.context.volumeIndicatorAdapter.sendRealtimeUpdatesForAudioStreamIdInfo(audioStreamIdInfo);\\n        }\\n        else if (event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.AUDIO_METADATA) {\\n            // @ts-ignore\\n            const audioMetadata = event.message.audioMetadata;\\n            this.context.volumeIndicatorAdapter.sendRealtimeUpdatesForAudioMetadata(audioMetadata);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = ListenForVolumeIndicatorsTask;\\n//# sourceMappingURL=ListenForVolumeIndicatorsTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ListenForVolumeIndicatorsTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/MonitorTask.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/MonitorTask.js ***!\n  \\********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ClientMetricReportDirection_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportDirection */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\\\");\\nconst ClientMetricReportMediaType_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportMediaType */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\\\");\\nconst ClientVideoStreamReceivingReport_1 = __webpack_require__(/*! ../clientmetricreport/ClientVideoStreamReceivingReport */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientVideoStreamReceivingReport.js\\\");\\nconst ReconnectionHealthPolicy_1 = __webpack_require__(/*! ../connectionhealthpolicy/ReconnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/ReconnectionHealthPolicy.js\\\");\\nconst SendingAudioFailureConnectionHealthPolicy_1 = __webpack_require__(/*! ../connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/SendingAudioFailureConnectionHealthPolicy.js\\\");\\nconst UnusableAudioWarningConnectionHealthPolicy_1 = __webpack_require__(/*! ../connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/connectionhealthpolicy/UnusableAudioWarningConnectionHealthPolicy.js\\\");\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst AudioLogEvent_1 = __webpack_require__(/*! ../statscollector/AudioLogEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/statscollector/AudioLogEvent.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[MonitorTask]] monitors connections using SignalingAndMetricsConnectionMonitor.\\n */\\nclass MonitorTask extends BaseTask_1.default {\\n    constructor(context, connectionHealthPolicyConfiguration, initialConnectionHealthData) {\\n        super(context.logger);\\n        this.context = context;\\n        this.initialConnectionHealthData = initialConnectionHealthData;\\n        this.taskName = 'MonitorTask';\\n        this.prevSignalStrength = 1;\\n        this.currentVideoDownlinkBandwidthEstimationKbps = 10000;\\n        this.currentAvailableStreamAvgBitrates = null;\\n        this.hasSignalingError = false;\\n        this.presenceHandlerCalled = false;\\n        // See comment above invocation of `pauseResubscribeCheck` in `DefaultAudioVideoController`\\n        // for explanation.\\n        this.isResubscribeCheckPaused = false;\\n        this.pendingMetricsReport = undefined;\\n        this.checkAndSendWeakSignalEvent = (signalStrength) => {\\n            const isCurrentSignalBad = signalStrength < 1;\\n            const isPrevSignalBad = this.prevSignalStrength < 1;\\n            const signalStrengthEventType = isCurrentSignalBad\\n                ? !isPrevSignalBad\\n                    ? AudioLogEvent_1.default.RedmicStartLoss\\n                    : null\\n                : isPrevSignalBad\\n                    ? AudioLogEvent_1.default.RedmicEndLoss\\n                    : null;\\n            if (signalStrengthEventType) {\\n                this.context.statsCollector.logAudioEvent(signalStrengthEventType);\\n            }\\n            this.prevSignalStrength = signalStrength;\\n        };\\n        this.realtimeFatalErrorCallback = (error) => {\\n            this.logger.error(`realtime error: ${error}: ${error.stack}`);\\n            this.context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.RealtimeApiFailed), error);\\n        };\\n        this.realtimeAttendeeIdPresenceHandler = (presentAttendeeId, present) => {\\n            var _a;\\n            const attendeeId = this.context.meetingSessionConfiguration.credentials.attendeeId;\\n            this.logger.info(`attendeePresenceReceived: ${attendeeId}`);\\n            if (attendeeId === presentAttendeeId && present && !this.presenceHandlerCalled) {\\n                this.presenceHandlerCalled = true;\\n                this.context.attendeePresenceDurationMs = Date.now() - this.context.startAudioVideoTimestamp;\\n                (_a = this.context.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('attendeePresenceReceived', {\\n                    attendeePresenceDurationMs: this.context.attendeePresenceDurationMs,\\n                });\\n            }\\n        };\\n        this.generateBaseAudioVideoEventAttributes = () => {\\n            const { signalingOpenDurationMs, startTimeMs, iceGatheringDurationMs, attendeePresenceDurationMs, meetingStartDurationMs, } = this.context;\\n            return {\\n                meetingDurationMs: startTimeMs === null ? 0 : Math.round(Date.now() - startTimeMs),\\n                signalingOpenDurationMs,\\n                iceGatheringDurationMs,\\n                attendeePresenceDurationMs,\\n                meetingStartDurationMs,\\n            };\\n        };\\n        this.generateAudioVideoEventAttributesForReceivingAudioDropped = () => {\\n            const baseAttributes = this.generateBaseAudioVideoEventAttributes();\\n            return Object.assign(Object.assign({}, baseAttributes), { maxVideoTileCount: this.context.maxVideoTileCount, poorConnectionCount: this.context.poorConnectionCount });\\n        };\\n        this.reconnectionHealthPolicy = new ReconnectionHealthPolicy_1.default(context.logger, Object.assign({}, connectionHealthPolicyConfiguration), this.initialConnectionHealthData.clone());\\n        this.unusableAudioWarningHealthPolicy = new UnusableAudioWarningConnectionHealthPolicy_1.default(Object.assign({}, connectionHealthPolicyConfiguration), this.initialConnectionHealthData.clone());\\n        this.sendingAudioFailureHealthPolicy = new SendingAudioFailureConnectionHealthPolicy_1.default(context.logger, Object.assign({}, connectionHealthPolicyConfiguration), this.initialConnectionHealthData.clone());\\n    }\\n    removeObserver() {\\n        this.context.audioVideoController.removeObserver(this);\\n        this.context.realtimeController.realtimeUnsubscribeToFatalError(this.realtimeFatalErrorCallback);\\n        this.context.realtimeController.realtimeUnsubscribeToLocalSignalStrengthChange(this.checkAndSendWeakSignalEvent);\\n        this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(this.realtimeAttendeeIdPresenceHandler);\\n        this.context.signalingClient.removeObserver(this);\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.context.removableObservers.push(this);\\n            this.context.audioVideoController.addObserver(this);\\n            this.context.realtimeController.realtimeSubscribeToFatalError(this.realtimeFatalErrorCallback);\\n            this.context.realtimeController.realtimeSubscribeToLocalSignalStrengthChange(this.checkAndSendWeakSignalEvent);\\n            this.context.realtimeController.realtimeSubscribeToAttendeeIdPresence(this.realtimeAttendeeIdPresenceHandler);\\n            this.context.connectionMonitor.start();\\n            this.context.statsCollector.start(this.context.signalingClient, this.context.videoStreamIndex);\\n            this.context.signalingClient.registerObserver(this);\\n        });\\n    }\\n    pauseResubscribeCheck() {\\n        this.isResubscribeCheckPaused = true;\\n    }\\n    resumeResubscribeCheck() {\\n        if (!this.isResubscribeCheckPaused) {\\n            // Do not recheck subcribe if it wasn't paused to begin with.\\n            return;\\n        }\\n        this.isResubscribeCheckPaused = false;\\n        if (this.pendingMetricsReport) {\\n            this.context.logger.info('Resuming resubscribe check with pending metrics report');\\n            if (this.checkResubscribe(this.pendingMetricsReport)) {\\n                this.context.audioVideoController.update({ needsRenegotiation: false });\\n            }\\n        }\\n    }\\n    videoTileDidUpdate(_tileState) {\\n        this.context.maxVideoTileCount = Math.max(this.context.maxVideoTileCount, this.context.videoTileController.getAllVideoTiles().length);\\n    }\\n    checkResubscribe(clientMetricReport) {\\n        if (this.isResubscribeCheckPaused) {\\n            this.context.logger.info('Resubscribe check is paused, setting incoming client metric report as pending');\\n            this.pendingMetricsReport = clientMetricReport;\\n            return;\\n        }\\n        else {\\n            this.pendingMetricsReport = undefined;\\n        }\\n        const metricReport = clientMetricReport.getObservableMetrics();\\n        if (!metricReport) {\\n            return false;\\n        }\\n        const availableSendBandwidth = metricReport.availableOutgoingBitrate;\\n        const nackCountPerSecond = metricReport.nackCountReceivedPerSecond;\\n        let needResubscribe = false;\\n        this.context.videoDownlinkBandwidthPolicy.updateMetrics(clientMetricReport);\\n        const resubscribeForDownlink = this.context.videoDownlinkBandwidthPolicy.wantsResubscribe();\\n        needResubscribe = needResubscribe || resubscribeForDownlink;\\n        if (resubscribeForDownlink) {\\n            const videoSubscriptionIdSet = this.context.videoDownlinkBandwidthPolicy.chooseSubscriptions();\\n            // Same logic as in `ReceiveVideoStreamIndexTask`, immediately truncating rather then truncating on subscribe\\n            // avoids any issues with components (e.g. transceiver controller) along the way.\\n            this.context.videosToReceive = videoSubscriptionIdSet.truncate(this.context.videoSubscriptionLimit);\\n            if (videoSubscriptionIdSet.size() > this.context.videosToReceive.size()) {\\n                this.logger.warn(`Video receive limit exceeded. Limiting the videos to ${this.context.videosToReceive.size()}. Please consider using AllHighestVideoBandwidthPolicy or VideoPriorityBasedPolicy along with chooseRemoteVideoSources api to select the video sources to be displayed.`);\\n            }\\n            this.logger.info(`trigger resubscribe for down=${resubscribeForDownlink}; videosToReceive=[${this.context.videosToReceive.array()}]`);\\n        }\\n        if (this.context.videoTileController.hasStartedLocalVideoTile()) {\\n            this.context.videoUplinkBandwidthPolicy.updateConnectionMetric({\\n                uplinkKbps: availableSendBandwidth / 1000,\\n                nackCountPerSecond: nackCountPerSecond,\\n            });\\n            const resubscribeForUplink = this.context.videoUplinkBandwidthPolicy.wantsResubscribe();\\n            needResubscribe = needResubscribe || resubscribeForUplink;\\n            if (resubscribeForUplink) {\\n                this.logger.info(`trigger resubscribe for up=${resubscribeForUplink}; videosToReceive=[${this.context.videosToReceive.array()}]`);\\n                this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters();\\n                this.context.videoUplinkBandwidthPolicy.chooseMediaTrackConstraints();\\n            }\\n        }\\n        return needResubscribe;\\n    }\\n    metricsDidReceive(clientMetricReport) {\\n        const defaultClientMetricReport = clientMetricReport;\\n        if (!defaultClientMetricReport) {\\n            return;\\n        }\\n        if (this.checkResubscribe(clientMetricReport)) {\\n            this.context.audioVideoController.update({ needsRenegotiation: false });\\n        }\\n        if (!this.currentAvailableStreamAvgBitrates) {\\n            return;\\n        }\\n        const streamMetricReport = defaultClientMetricReport.streamMetricReports;\\n        if (!streamMetricReport) {\\n            return;\\n        }\\n        const metricReport = clientMetricReport.getObservableMetrics();\\n        this.currentVideoDownlinkBandwidthEstimationKbps = metricReport.availableIncomingBitrate;\\n        const downlinkVideoStream = new Map();\\n        const videoReceivingBitrateMap = new Map();\\n        // TODO: move those logic to stats collector.\\n        for (const ssrc in streamMetricReport) {\\n            if (streamMetricReport[ssrc].mediaType === ClientMetricReportMediaType_1.default.VIDEO &&\\n                streamMetricReport[ssrc].direction === ClientMetricReportDirection_1.default.DOWNSTREAM) {\\n                downlinkVideoStream.set(streamMetricReport[ssrc].streamId, streamMetricReport[ssrc]);\\n            }\\n        }\\n        let fireCallback = false;\\n        for (const bitrate of this.currentAvailableStreamAvgBitrates.bitrates) {\\n            if (downlinkVideoStream.has(bitrate.sourceStreamId)) {\\n                const report = downlinkVideoStream.get(bitrate.sourceStreamId);\\n                const attendeeId = this.context.videoStreamIndex.attendeeIdForStreamId(bitrate.sourceStreamId);\\n                if (!attendeeId) {\\n                    continue;\\n                }\\n                const newReport = new ClientVideoStreamReceivingReport_1.default();\\n                const prevBytesReceived = report.previousMetrics['bytesReceived'];\\n                const currBytesReceived = report.currentMetrics['bytesReceived'];\\n                if (!prevBytesReceived || !currBytesReceived) {\\n                    continue;\\n                }\\n                const receivedBitrate = ((currBytesReceived - prevBytesReceived) * 8) / 1000;\\n                newReport.expectedAverageBitrateKbps = bitrate.avgBitrateBps / 1000;\\n                newReport.receivedAverageBitrateKbps = receivedBitrate;\\n                newReport.attendeeId = attendeeId;\\n                if (receivedBitrate <\\n                    (bitrate.avgBitrateBps / 1000) * MonitorTask.DEFAULT_DOWNLINK_CALLRATE_UNDERSHOOT_FACTOR) {\\n                    fireCallback = true;\\n                }\\n                videoReceivingBitrateMap.set(attendeeId, newReport);\\n            }\\n        }\\n        if (fireCallback) {\\n            this.logger.info(`One or more video streams are not receiving expected amounts of data ${JSON.stringify(Array.from(videoReceivingBitrateMap.values()))}`);\\n        }\\n    }\\n    connectionHealthDidChange(connectionHealthData) {\\n        if (connectionHealthData.consecutiveMissedPongs === 0) {\\n            if (this.context.reconnectController) {\\n                this.context.reconnectController.setLastActiveTimestampMs(Date.now());\\n            }\\n        }\\n        this.applyHealthPolicy(this.reconnectionHealthPolicy, connectionHealthData, () => {\\n            this.context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1.default(MeetingSessionStatusCode_1.default.ConnectionHealthReconnect), null);\\n        });\\n        this.applyHealthPolicy(this.unusableAudioWarningHealthPolicy, connectionHealthData, () => {\\n            var _a;\\n            this.context.poorConnectionCount += 1;\\n            const attributes = this.generateAudioVideoEventAttributesForReceivingAudioDropped();\\n            (_a = this.context.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('receivingAudioDropped', attributes);\\n            if (this.context.videoTileController.haveVideoTilesWithStreams()) {\\n                this.context.audioVideoController.forEachObserver((observer) => {\\n                    Types_1.Maybe.of(observer.connectionDidSuggestStopVideo).map(f => f.bind(observer)());\\n                });\\n            }\\n            else {\\n                this.context.audioVideoController.forEachObserver((observer) => {\\n                    Types_1.Maybe.of(observer.connectionDidBecomePoor).map(f => f.bind(observer)());\\n                });\\n            }\\n        }, () => {\\n            this.context.audioVideoController.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.connectionDidBecomeGood).map(f => f.bind(observer)());\\n            });\\n        });\\n        this.applyHealthPolicy(this.sendingAudioFailureHealthPolicy, connectionHealthData, () => {\\n            var _a;\\n            const attributes = this.generateBaseAudioVideoEventAttributes();\\n            (_a = this.context.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('sendingAudioFailed', attributes);\\n        }, () => {\\n            var _a;\\n            const attributes = this.generateBaseAudioVideoEventAttributes();\\n            (_a = this.context.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('sendingAudioRecovered', attributes);\\n        });\\n    }\\n    applyHealthPolicy(healthPolicy, connectionHealthData, unhealthyCallback, healthyCallback) {\\n        healthPolicy.update(connectionHealthData);\\n        const healthValue = healthPolicy.healthIfChanged();\\n        if (healthValue !== null) {\\n            this.logger.info(`${healthPolicy.name} value is now ${healthValue}`);\\n            if (healthValue <= healthPolicy.minimumHealth()) {\\n                Types_1.Maybe.of(unhealthyCallback).map(f => f.bind(this)());\\n            }\\n            else {\\n                Types_1.Maybe.of(healthyCallback).map(f => f.bind(this)());\\n            }\\n        }\\n    }\\n    handleBitrateFrame(bitrates) {\\n        let requiredBandwidthKbps = 0;\\n        this.currentAvailableStreamAvgBitrates = bitrates;\\n        this.logger.debug(() => {\\n            return `simulcast: bitrates from server ${JSON.stringify(bitrates)}`;\\n        });\\n        for (const bitrate of bitrates.bitrates) {\\n            if (this.context.videosToReceive.contain(bitrate.sourceStreamId)) {\\n                requiredBandwidthKbps += bitrate.avgBitrateBps;\\n            }\\n        }\\n        requiredBandwidthKbps /= 1000;\\n        if (this.currentVideoDownlinkBandwidthEstimationKbps *\\n            MonitorTask.DEFAULT_DOWNLINK_CALLRATE_OVERSHOOT_FACTOR <\\n            requiredBandwidthKbps) {\\n            this.logger.info(`Downlink bandwidth pressure is high: estimated bandwidth ${this.currentVideoDownlinkBandwidthEstimationKbps}Kbps, required bandwidth ${requiredBandwidthKbps}Kbps`);\\n        }\\n    }\\n    handleSignalingClientEvent(event) {\\n        var _a;\\n        // Don't add two or more consecutive \\\"signalingDropped\\\" states.\\n        if ((event.type === SignalingClientEventType_1.default.WebSocketClosed &&\\n            (event.closeCode === 4410 || (event.closeCode >= 4500 && event.closeCode < 4600))) ||\\n            event.type === SignalingClientEventType_1.default.WebSocketError ||\\n            event.type === SignalingClientEventType_1.default.WebSocketFailed) {\\n            if (!this.hasSignalingError) {\\n                const attributes = this.generateAudioVideoEventAttributesForReceivingAudioDropped();\\n                (_a = this.context.eventController) === null || _a === void 0 ? void 0 : _a.publishEvent('signalingDropped', attributes);\\n                this.hasSignalingError = true;\\n            }\\n        }\\n        else if (event.type === SignalingClientEventType_1.default.WebSocketOpen) {\\n            this.hasSignalingError = false;\\n        }\\n        if (event.type === SignalingClientEventType_1.default.ReceivedSignalFrame) {\\n            if (!!event.message.bitrates) {\\n                const bitrateFrame = event.message.bitrates;\\n                this.context.videoStreamIndex.integrateBitratesFrame(bitrateFrame);\\n                this.context.videoDownlinkBandwidthPolicy.updateIndex(this.context.videoStreamIndex);\\n                this.handleBitrateFrame(event.message.bitrates);\\n            }\\n            const status = MeetingSessionStatus_1.default.fromSignalFrame(event.message);\\n            // Primary meeting join ack status will be handled by `PromoteToPrimaryMeetingTask`\\n            if (event.message.type !== SignalingProtocol_1.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN_ACK &&\\n                status.statusCode() !== MeetingSessionStatusCode_1.default.OK) {\\n                this.context.audioVideoController.handleMeetingSessionStatus(status, null);\\n            }\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = MonitorTask;\\nMonitorTask.DEFAULT_DOWNLINK_CALLRATE_OVERSHOOT_FACTOR = 2.0;\\nMonitorTask.DEFAULT_DOWNLINK_CALLRATE_UNDERSHOOT_FACTOR = 0.2;\\n//# sourceMappingURL=MonitorTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/MonitorTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/NoOpTask.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/NoOpTask.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass NoOpTask {\\n    cancel() { }\\n    name() {\\n        return 'NoOpTask';\\n    }\\n    run() {\\n        return Promise.resolve();\\n    }\\n    setParent(_parentTask) { }\\n}\\nexports[\\\"default\\\"] = NoOpTask;\\n//# sourceMappingURL=NoOpTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/NoOpTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/OnceTask.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/OnceTask.js ***!\n  \\*****************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst LogLevel_1 = __webpack_require__(/*! ../logger/LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nconst AsyncScheduler_1 = __webpack_require__(/*! ../scheduler/AsyncScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/AsyncScheduler.js\\\");\\n/**\\n * A task that wraps another task and ensures it is run only once,\\n * regardless of how many times `run` is called.\\n *\\n * This allows you to implement a kind of barrier synchronization.\\n */\\nclass OnceTask {\\n    constructor(logger, task, dependencies) {\\n        this.logger = logger;\\n        this.task = task;\\n        this.dependencies = dependencies;\\n        // Whether we have canceled.\\n        this.canceled = false;\\n    }\\n    name() {\\n        return `${this.task.name()} (once)`;\\n    }\\n    cancel() {\\n        // We want to preserve one interesting property: the deepest dependency that hasn't\\n        // already finished or been canceled is the first to be canceled, and its failure\\n        // will propagate back up the promise chain.\\n        //\\n        // We can't just cancel ourselves with cancelPromise -- we will cut off the rest of\\n        // the tree. Nor can we necessarily do it on the same event loop tick, because the\\n        // cancelation might be subtly async.\\n        //\\n        // Instead, we immediately cancel each dependency, and then we cancel the current\\n        // task (if it's running), and then we cancel via our promise escape hatch if needed.\\n        /* istanbul ignore if */\\n        if (this.canceled) {\\n            return;\\n        }\\n        if (this.dependencies) {\\n            for (const dep of this.dependencies) {\\n                dep.cancel();\\n            }\\n        }\\n        // Do this on the next tick so that our canceled dependencies cascade.\\n        this.logger.info(`Canceling ${this.name()}`);\\n        AsyncScheduler_1.default.nextTick(() => this.task.cancel());\\n        this.canceled = true;\\n        if (this.cancelPromise) {\\n            AsyncScheduler_1.default.nextTick(() => this.cancelPromise(new Error(`canceling ${this.name()}`)));\\n        }\\n    }\\n    logDependencies() {\\n        if (this.logger.getLogLevel() > LogLevel_1.default.INFO) {\\n            return;\\n        }\\n        if (!this.dependencies) {\\n            return;\\n        }\\n        const names = this.dependencies\\n            .filter(d => d)\\n            .map(d => d.name())\\n            .join(', ');\\n        this.logger.info(`${this.task.name()} waiting for dependencies: ${names}`);\\n    }\\n    run() {\\n        if (this.promise) {\\n            return this.promise;\\n        }\\n        const dependencies = this.dependencies\\n            ? Promise.all(this.dependencies.map(d => d === null || d === void 0 ? void 0 : d.run()))\\n            : Promise.resolve();\\n        this.logDependencies();\\n        this.ongoing = dependencies.then(() => this.task.run());\\n        return (this.promise = new Promise((resolve, reject) => {\\n            this.cancelPromise = reject;\\n            this.ongoing.then(resolve).catch(reject);\\n        }));\\n    }\\n    setParent(parentTask) {\\n        this.task.setParent(parentTask);\\n    }\\n}\\nexports[\\\"default\\\"] = OnceTask;\\n//# sourceMappingURL=OnceTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/OnceTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/OpenSignalingConnectionTask.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/OpenSignalingConnectionTask.js ***!\n  \\************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingClientConnectionRequest_1 = __webpack_require__(/*! ../signalingclient/SignalingClientConnectionRequest */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientConnectionRequest.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nclass OpenSignalingConnectionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'OpenSignalingConnectionTask';\\n        this.taskCanceler = null;\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const configuration = this.context.meetingSessionConfiguration;\\n            this.context.signalingClient.openConnection(new SignalingClientConnectionRequest_1.default(configuration.urls.signalingURL, configuration.credentials.joinToken));\\n            const startTimeMs = Date.now();\\n            try {\\n                yield new Promise((resolve, reject) => {\\n                    class WebSocketOpenInterceptor {\\n                        constructor(signalingClient) {\\n                            this.signalingClient = signalingClient;\\n                        }\\n                        cancel() {\\n                            this.signalingClient.removeObserver(this);\\n                            reject(new Error(`OpenSignalingConnectionTask got canceled while waiting to open signaling connection`));\\n                        }\\n                        handleSignalingClientEvent(event) {\\n                            switch (event.type) {\\n                                case SignalingClientEventType_1.default.WebSocketOpen:\\n                                    this.signalingClient.removeObserver(this);\\n                                    resolve();\\n                                    break;\\n                                case SignalingClientEventType_1.default.WebSocketFailed:\\n                                    this.signalingClient.removeObserver(this);\\n                                    reject(new Error('WebSocket connection failed'));\\n                                    break;\\n                            }\\n                        }\\n                    }\\n                    const interceptor = new WebSocketOpenInterceptor(this.context.signalingClient);\\n                    this.context.signalingClient.registerObserver(interceptor);\\n                    this.taskCanceler = interceptor;\\n                });\\n            }\\n            catch (error) {\\n                throw error;\\n            }\\n            finally {\\n                this.context.signalingOpenDurationMs = Math.round(Date.now() - startTimeMs);\\n                this.logger.info(`Opening signaling connection took ${this.context.signalingOpenDurationMs} ms`);\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = OpenSignalingConnectionTask;\\n//# sourceMappingURL=OpenSignalingConnectionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/OpenSignalingConnectionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ParallelGroupTask.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ParallelGroupTask.js ***!\n  \\**************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[ParallelGroupTask]] runs a set of tasks in parallel. When canceled, it\\n * stops any currently running tasks.\\n */\\nclass ParallelGroupTask extends BaseTask_1.default {\\n    constructor(logger, taskName, tasksToRunParallel) {\\n        super(logger);\\n        this.taskName = taskName;\\n        this.tasksToRunParallel = tasksToRunParallel;\\n        for (const task of tasksToRunParallel) {\\n            task.setParent(this);\\n        }\\n    }\\n    cancel() {\\n        for (const task of this.tasksToRunParallel) {\\n            this.logger.info(`canceling parallel group task ${this.name()} subtask ${task.name()}`);\\n            task.cancel();\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const taskResults = [];\\n            for (const task of this.tasksToRunParallel) {\\n                this.logger.info(`parallel group task ${this.name()} running subtask ${task.name()}`);\\n                taskResults.push(task.run());\\n            }\\n            const failures = [];\\n            for (let i = 0; i < taskResults.length; i++) {\\n                try {\\n                    yield taskResults[i];\\n                }\\n                catch (err) {\\n                    failures.push(`task ${this.tasksToRunParallel[i].name()} failed: ${err.message}`);\\n                }\\n                this.logger.info(`parallel group task ${this.name()} completed subtask ${this.tasksToRunParallel[i].name()}`);\\n            }\\n            if (failures.length > 0) {\\n                const failureMessage = failures.join(', ');\\n                this.logAndThrow(`parallel group task ${this.name()} failed for tasks: ${failureMessage}`);\\n            }\\n            this.logger.info(`parallel group task ${this.name()} completed`);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = ParallelGroupTask;\\n//# sourceMappingURL=ParallelGroupTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ParallelGroupTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/PromoteToPrimaryMeetingTask.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/PromoteToPrimaryMeetingTask.js ***!\n  \\************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst __1 = __webpack_require__(/*! .. */ \\\"./node_modules/amazon-chime-sdk-js/build/index.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[PromoteToPrimaryMeetingTask]] sends a `SdkSignalFrame.PrimaryMeetingJoin` and waits for\\n * a `SdkSignalFrame.PrimaryMeetingJoinAck`  frame.\\n */\\nclass PromoteToPrimaryMeetingTask extends BaseTask_1.default {\\n    constructor(context, credentials, completionCallback) {\\n        super(context.logger);\\n        this.context = context;\\n        this.credentials = credentials;\\n        this.completionCallback = completionCallback;\\n        this.taskName = 'PromoteToPrimaryMeetingTask';\\n        this.taskCanceler = null;\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.context.signalingClient.ready()) {\\n                this.context.signalingClient.promoteToPrimaryMeeting(this.credentials);\\n                this.context.logger.info('Sent request to join primary meeting');\\n                yield this.receivePrimaryMeetingJoinAck();\\n            }\\n            else {\\n                this.completionCallback(new __1.MeetingSessionStatus(__1.MeetingSessionStatusCode.SignalingRequestFailed));\\n            }\\n        });\\n    }\\n    receivePrimaryMeetingJoinAck() {\\n        return new Promise((resolve, _) => {\\n            class Interceptor {\\n                constructor(signalingClient, completionCallback, logger) {\\n                    this.signalingClient = signalingClient;\\n                    this.completionCallback = completionCallback;\\n                    this.logger = logger;\\n                }\\n                cancel() {\\n                    this.signalingClient.removeObserver(this);\\n                    // Currently only cancel would come from timeout.  Should\\n                    // be rare enough (ignoring bugs) that we don't need to bother\\n                    // retrying.\\n                    this.completionCallback(new __1.MeetingSessionStatus(__1.MeetingSessionStatusCode.SignalingRequestFailed));\\n                    resolve();\\n                }\\n                handleSignalingClientEvent(event) {\\n                    if (event.isConnectionTerminated()) {\\n                        this.signalingClient.removeObserver(this);\\n                        this.logger.info('PromoteToPrimaryMeetingTask connection terminated');\\n                        // This would happen either in happy or unhappy disconnections.  The\\n                        // timing here is rare enough (ignoring bugs) that we don't need to bother\\n                        // retrying the unhappy case.\\n                        this.completionCallback(new __1.MeetingSessionStatus(__1.MeetingSessionStatusCode.SignalingRequestFailed));\\n                        resolve();\\n                    }\\n                    if (event.type === SignalingClientEventType_1.default.ReceivedSignalFrame &&\\n                        event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN_ACK) {\\n                        this.signalingClient.removeObserver(this);\\n                        this.logger.info('Got a primary meeting join ACK');\\n                        this.completionCallback(__1.MeetingSessionStatus.fromSignalFrame(event.message));\\n                        resolve();\\n                    }\\n                }\\n            }\\n            const interceptor = new Interceptor(this.context.signalingClient, this.completionCallback, this.context.logger);\\n            this.taskCanceler = interceptor;\\n            this.context.signalingClient.registerObserver(interceptor);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = PromoteToPrimaryMeetingTask;\\n//# sourceMappingURL=PromoteToPrimaryMeetingTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/PromoteToPrimaryMeetingTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ReceiveAudioInputTask.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ReceiveAudioInputTask.js ***!\n  \\******************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[ReceiveAudioInputTask]] acquires an audio input.\\n */\\nclass ReceiveAudioInputTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'ReceiveAudioInputTask';\\n    }\\n    run() {\\n        var _a, _b;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!((_b = (_a = this.context.meetingSessionConfiguration) === null || _a === void 0 ? void 0 : _a.urls) === null || _b === void 0 ? void 0 : _b.audioHostURL)) {\\n                this.context.logger.info('No audio connection: not acquiring audio input');\\n                return;\\n            }\\n            if (this.context.activeAudioInput) {\\n                this.context.logger.info('an active audio input exists');\\n                return;\\n            }\\n            let audioInput;\\n            try {\\n                audioInput = yield this.context.mediaStreamBroker.acquireAudioInputStream();\\n            }\\n            catch (error) {\\n                this.context.logger.warn('could not acquire audio input from current device');\\n            }\\n            if (audioInput) {\\n                this.context.activeAudioInput = audioInput;\\n            }\\n            else {\\n                this.context.logger.warn('an audio input is not available');\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = ReceiveAudioInputTask;\\n//# sourceMappingURL=ReceiveAudioInputTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ReceiveAudioInputTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ReceiveTURNCredentialsTask.js\":\n/*!***********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ReceiveTURNCredentialsTask.js ***!\n  \\***********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst MeetingSessionTURNCredentials_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionTURNCredentials */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionTURNCredentials.js\\\");\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[ReceiveTURNCredentialsTask]] asynchronously retrieves TURN credentials.\\n */\\nclass ReceiveTURNCredentialsTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'ReceiveTURNCredentialsTask';\\n        this.url = context.meetingSessionConfiguration.urls.turnControlURL;\\n        this.meetingId = context.meetingSessionConfiguration.meetingId;\\n        this.joinToken = context.meetingSessionConfiguration.credentials.joinToken;\\n    }\\n    cancel() {\\n        // Just in case. The baseCancel behavior should prevent this.\\n        /* istanbul ignore else */\\n        if (this.cancelPromise) {\\n            const error = new Error(`canceling ${this.name()}`);\\n            this.cancelPromise(error);\\n            delete this.cancelPromise;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.context.turnCredentials) {\\n                this.context.logger.info('TURN credentials available, skipping credentials fetch');\\n                return;\\n            }\\n            this.context.logger.error('missing TURN credentials - falling back to fetch');\\n            if (!this.url) {\\n                this.context.logger.info('TURN control url not supplied, skipping credentials fetch');\\n                return;\\n            }\\n            const options = {\\n                method: 'POST',\\n                mode: 'cors',\\n                cache: 'no-cache',\\n                credentials: 'omit',\\n                headers: {\\n                    'Content-Type': 'application/json',\\n                    'X-Chime-Auth-Token': '_aws_wt_session=' + new DefaultModality_1.default(this.joinToken).base(),\\n                },\\n                redirect: 'follow',\\n                referrer: 'no-referrer',\\n                body: JSON.stringify({ meetingId: this.meetingId }),\\n            };\\n            this.context.logger.info(`requesting TURN credentials from ${this.url}`);\\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n            const responseBodyJson = yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\\n                this.cancelPromise = (error) => {\\n                    reject(error);\\n                };\\n                try {\\n                    const responseBody = yield fetch(Versioning_1.default.urlWithVersion(this.url), options);\\n                    this.context.logger.info(`received TURN credentials`);\\n                    if (responseBody.status && responseBody.status === 403) {\\n                        reject(new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.TURNCredentialsForbidden}`));\\n                        return;\\n                    }\\n                    if (responseBody.status && responseBody.status === 404) {\\n                        reject(new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.MeetingEnded}`));\\n                        return;\\n                    }\\n                    resolve(yield responseBody.json());\\n                }\\n                catch (error) {\\n                    reject(error);\\n                }\\n                finally {\\n                    delete this.cancelPromise;\\n                }\\n            }));\\n            this.context.turnCredentials = new MeetingSessionTURNCredentials_1.default();\\n            this.context.turnCredentials.password = responseBodyJson.password;\\n            this.context.turnCredentials.ttl = responseBodyJson.ttl;\\n            this.context.turnCredentials.uris = responseBodyJson.uris\\n                .map((uri) => {\\n                return this.context.meetingSessionConfiguration.urls.urlRewriter(uri);\\n            })\\n                .filter((uri) => {\\n                return !!uri;\\n            });\\n            this.context.turnCredentials.username = responseBodyJson.username;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = ReceiveTURNCredentialsTask;\\n//# sourceMappingURL=ReceiveTURNCredentialsTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ReceiveTURNCredentialsTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoInputTask.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoInputTask.js ***!\n  \\******************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[ReceiveVideoInputTask]] acquires a video input from [[DeviceController]].\\n */\\nclass ReceiveVideoInputTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'ReceiveVideoInputTask';\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // TODO: move videoDuplexMode and videoCaptureAndEncodeParameters to video tile controller\\n            const receiveEnabled = this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.RX ||\\n                this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.DUPLEX;\\n            if (this.context.videoTileController.hasStartedLocalVideoTile()) {\\n                this.context.videoDuplexMode = receiveEnabled\\n                    ? SignalingProtocol_js_1.SdkStreamServiceType.DUPLEX\\n                    : SignalingProtocol_js_1.SdkStreamServiceType.TX;\\n            }\\n            else {\\n                this.context.videoDuplexMode = receiveEnabled ? SignalingProtocol_js_1.SdkStreamServiceType.RX : 0;\\n            }\\n            this.context.videoCaptureAndEncodeParameter = this.context.videoUplinkBandwidthPolicy.chooseCaptureAndEncodeParameters();\\n            if (!this.context.videoTileController.hasStartedLocalVideoTile()) {\\n                this.context.logger.info('has not started local video tile');\\n                if (this.context.activeVideoInput) {\\n                    this.context.activeVideoInput = undefined;\\n                    // Indicate to the stream index that we are no longer sending video.  We will\\n                    // no longer be tracking irrelevant local sending bitrates sent via received Bitrate message, nor will\\n                    // we track any spurious allocated stream IDs from the backend.\\n                    this.context.videoStreamIndex.integrateUplinkPolicyDecision([]);\\n                }\\n                return;\\n            }\\n            // TODO: bind after ICE connection started in case of a failure to resubscribe\\n            //       or perform error handling to unbind video stream.\\n            const localTile = this.context.videoTileController.getLocalVideoTile();\\n            let videoInput = undefined;\\n            try {\\n                videoInput = yield this.context.mediaStreamBroker.acquireVideoInputStream();\\n            }\\n            catch (error) {\\n                this.context.logger.warn('could not acquire video input from current device');\\n                this.context.videoTileController.stopLocalVideoTile();\\n            }\\n            if (this.context.enableSimulcast) {\\n                const encodingParams = this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters();\\n                this.context.videoStreamIndex.integrateUplinkPolicyDecision(Array.from(encodingParams.values()));\\n            }\\n            this.context.activeVideoInput = videoInput;\\n            if (videoInput) {\\n                const videoTracks = videoInput.getVideoTracks();\\n                // There can be a race condition when there are several audioVideo.update calls (e.g., calling\\n                // startLocalVideoTile and stopLocalVideoTile at the same time)\\n                // that causes the video stream to not contain any video track.\\n                // This should recovers in the next update call.\\n                if (!videoTracks || videoTracks.length === 0) {\\n                    return;\\n                }\\n                const attendeeId = this.context.meetingSessionConfiguration.credentials.attendeeId;\\n                const isContentAttendee = new DefaultModality_1.default(attendeeId).hasModality(DefaultModality_1.default.MODALITY_CONTENT);\\n                const trackSettings = videoTracks[0].getSettings();\\n                // For video, we currently enforce 720p for simulcast. This logic should be removed in the future.\\n                if (this.context.enableSimulcast && !isContentAttendee) {\\n                    const constraint = this.context.videoUplinkBandwidthPolicy.chooseMediaTrackConstraints();\\n                    this.context.logger.info(`simulcast: choose constraint ${JSON.stringify(constraint)}`);\\n                    try {\\n                        yield videoTracks[0].applyConstraints(constraint);\\n                    }\\n                    catch (error) {\\n                        this.context.logger.info('simulcast: pass video without more constraint');\\n                    }\\n                }\\n                const externalUserId = this.context.audioVideoController.configuration.credentials\\n                    .externalUserId;\\n                localTile.bindVideoStream(attendeeId, true, videoInput, trackSettings.width, trackSettings.height, null, externalUserId);\\n                for (let i = 0; i < videoTracks.length; i++) {\\n                    const track = videoTracks[i];\\n                    this.logger.info(`using video device label=${track.label} id=${track.id}`);\\n                    this.context.videoDeviceInformation['current_camera_name'] = track.label;\\n                    this.context.videoDeviceInformation['current_camera_id'] = track.id;\\n                }\\n            }\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = ReceiveVideoInputTask;\\n//# sourceMappingURL=ReceiveVideoInputTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoInputTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoStreamIndexTask.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoStreamIndexTask.js ***!\n  \\************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionVideoAvailability_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionVideoAvailability */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionVideoAvailability.js\\\");\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst VideoCodecCapability_1 = __webpack_require__(/*! ../sdp/VideoCodecCapability */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/VideoCodecCapability.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[ReceiveVideoStreamIndexTask]] receives [[SdkIndexFrame]] and updates [[VideoUplinkBandwidthPolicy]] and [[VideoDownlinkBandwidthPolicy]].\\n */\\nclass ReceiveVideoStreamIndexTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'ReceiveVideoStreamIndexTask';\\n        // See comment above invocation of `pauseIngestion` in `DefaultAudioVideoController`\\n        // for explanation.\\n        this.isIngestionPaused = false;\\n        this.pendingIndex = null;\\n    }\\n    removeObserver() {\\n        this.context.signalingClient.removeObserver(this);\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.handleIndexFrame(this.context.indexFrame);\\n            this.context.signalingClient.registerObserver(this);\\n            this.context.removableObservers.push(this);\\n        });\\n    }\\n    handleSignalingClientEvent(event) {\\n        if (event.type !== SignalingClientEventType_1.default.ReceivedSignalFrame ||\\n            event.message.type !== SignalingProtocol_js_1.SdkSignalFrame.Type.INDEX) {\\n            return;\\n        }\\n        // @ts-ignore: force cast to SdkIndexFrame\\n        const indexFrame = event.message.index;\\n        this.context.logger.info(`received new index ${JSON.stringify(indexFrame)}`);\\n        this.handleIndexFrame(indexFrame);\\n    }\\n    pauseIngestion() {\\n        this.isIngestionPaused = true;\\n    }\\n    resumeIngestion() {\\n        if (!this.isIngestionPaused) {\\n            // Do not recheck subcribe if it wasn't paused to begin with.\\n            return;\\n        }\\n        this.isIngestionPaused = false;\\n        if (this.pendingIndex) {\\n            this.context.logger.info('Resuming index ingestion with pending index');\\n            this.handleIndexFrame(this.pendingIndex);\\n        }\\n    }\\n    handleIndexFrame(indexFrame) {\\n        if (!indexFrame) {\\n            return;\\n        }\\n        if (this.isIngestionPaused) {\\n            this.context.logger.info(`Index ingestion is paused, setting most recent index as pending`);\\n            this.pendingIndex = indexFrame;\\n            return;\\n        }\\n        else {\\n            this.pendingIndex = null;\\n        }\\n        // Filter out self content share video\\n        const selfAttendeeId = this.context.audioVideoController.configuration.credentials.attendeeId;\\n        indexFrame.sources = indexFrame.sources.filter(source => {\\n            const modality = new DefaultModality_1.default(source.attendeeId);\\n            return !(modality.base() === selfAttendeeId && modality.hasModality(DefaultModality_1.default.MODALITY_CONTENT));\\n        });\\n        const { videoStreamIndex, videoDownlinkBandwidthPolicy, videoUplinkBandwidthPolicy, } = this.context;\\n        const oldVideoSources = videoStreamIndex.allVideoSendingSourcesExcludingSelf(selfAttendeeId);\\n        videoStreamIndex.integrateIndexFrame(indexFrame);\\n        videoDownlinkBandwidthPolicy.updateIndex(videoStreamIndex);\\n        videoUplinkBandwidthPolicy.updateIndex(videoStreamIndex);\\n        this.resubscribe(videoDownlinkBandwidthPolicy, videoUplinkBandwidthPolicy);\\n        this.updateVideoAvailability(indexFrame);\\n        this.handleIndexVideosPausedAtSource();\\n        if (indexFrame.supportedReceiveCodecIntersection.length > 0) {\\n            this.handleSupportedVideoReceiveCodecIntersection(indexFrame);\\n        }\\n        // `forEachObserver`is asynchronous anyways so it doesn't matter (for better or worse) whether we\\n        // trigger it before or after the policy update + possible resubscribe kickoff\\n        const newVideoSources = videoStreamIndex.allVideoSendingSourcesExcludingSelf(selfAttendeeId);\\n        if (!this.areVideoSourcesEqual(oldVideoSources, newVideoSources)) {\\n            this.context.audioVideoController.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.remoteVideoSourcesDidChange).map(f => f.bind(observer)(newVideoSources));\\n            });\\n        }\\n    }\\n    areVideoSourcesEqual(oldVideoSources, newVideoSources) {\\n        if (oldVideoSources.length !== newVideoSources.length) {\\n            return false;\\n        }\\n        const compare = (videoSourceA, videoSourceB) => videoSourceA.attendee.attendeeId.localeCompare(videoSourceB.attendee.attendeeId);\\n        const sortedOldVideoSources = [...oldVideoSources].sort(compare);\\n        const sortedNewVideoSources = [...newVideoSources].sort(compare);\\n        for (let i = 0; i < sortedOldVideoSources.length; i++) {\\n            if (sortedOldVideoSources[i].attendee.attendeeId !==\\n                sortedNewVideoSources[i].attendee.attendeeId) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    resubscribe(videoDownlinkBandwidthPolicy, videoUplinkBandwidthPolicy) {\\n        const resubscribeForDownlink = videoDownlinkBandwidthPolicy.wantsResubscribe();\\n        const resubscribeForUplink = (this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.TX ||\\n            this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.DUPLEX) &&\\n            videoUplinkBandwidthPolicy.wantsResubscribe();\\n        const shouldResubscribe = resubscribeForDownlink || resubscribeForUplink;\\n        this.logger.info(`should resubscribe: ${shouldResubscribe} (downlink: ${resubscribeForDownlink} uplink: ${resubscribeForUplink})`);\\n        if (!shouldResubscribe) {\\n            return;\\n        }\\n        const videoSubscriptionIdSet = videoDownlinkBandwidthPolicy.chooseSubscriptions();\\n        this.context.videosToReceive = videoSubscriptionIdSet.truncate(this.context.videoSubscriptionLimit);\\n        if (videoSubscriptionIdSet.size() > this.context.videosToReceive.size()) {\\n            this.logger.warn(`Video receive limit exceeded. Limiting the videos to ${this.context.videosToReceive.size()}. Please consider using AllHighestVideoBandwidthPolicy or VideoPriorityBasedPolicy along with chooseRemoteVideoSources api to select the video sources to be displayed.`);\\n        }\\n        this.context.videoCaptureAndEncodeParameter = videoUplinkBandwidthPolicy.chooseCaptureAndEncodeParameters();\\n        this.logger.info(`trigger resubscribe for up=${resubscribeForUplink} down=${resubscribeForDownlink}; videosToReceive=[${this.context.videosToReceive.array()}] captureParams=${JSON.stringify(this.context.videoCaptureAndEncodeParameter)}`);\\n        this.context.audioVideoController.update({ needsRenegotiation: false });\\n    }\\n    updateVideoAvailability(indexFrame) {\\n        if (!this.context.videosToReceive) {\\n            this.logger.error('videosToReceive must be set in the meeting context.');\\n            return;\\n        }\\n        const videoAvailability = new MeetingSessionVideoAvailability_1.default();\\n        videoAvailability.remoteVideoAvailable = !this.context.videosToReceive.empty();\\n        videoAvailability.canStartLocalVideo = !indexFrame.atCapacity;\\n        if (!this.context.lastKnownVideoAvailability ||\\n            !this.context.lastKnownVideoAvailability.equal(videoAvailability)) {\\n            this.context.lastKnownVideoAvailability = videoAvailability.clone();\\n            this.context.audioVideoController.forEachObserver((observer) => {\\n                Types_1.Maybe.of(observer.videoAvailabilityDidChange).map(f => f.bind(observer)(videoAvailability.clone()));\\n            });\\n        }\\n    }\\n    handleSupportedVideoReceiveCodecIntersection(index) {\\n        if (this.context.videoSendCodecPreferences === undefined) {\\n            return;\\n        }\\n        const newMeetingSupportedVideoSendCodecPreferences = [];\\n        let willNeedUpdate = false;\\n        // Intersect `this.context.videoSendCodecPreferences` with `index.supportedReceiveCodecIntersection`\\n        for (const capability of this.context.videoSendCodecPreferences) {\\n            let codecSupported = false;\\n            for (const signaledCapability of index.supportedReceiveCodecIntersection) {\\n                if (capability.equals(VideoCodecCapability_1.default.fromSignaled(signaledCapability))) {\\n                    codecSupported = true;\\n                    newMeetingSupportedVideoSendCodecPreferences.push(capability);\\n                    break;\\n                }\\n            }\\n            // We need to renegotiate if we are currently sending a codec that is no longer supported in the call.\\n            if (!codecSupported && capability.equals(this.context.currentVideoSendCodec)) {\\n                willNeedUpdate = true;\\n            }\\n        }\\n        if (newMeetingSupportedVideoSendCodecPreferences.length > 0) {\\n            this.context.meetingSupportedVideoSendCodecPreferences = newMeetingSupportedVideoSendCodecPreferences;\\n        }\\n        else {\\n            this.logger.warn('Interesection of meeting receive codec support and send codec preferences has no overlap, falling back to just values provided in `setVideoCodecSendPreferences`');\\n            this.context.meetingSupportedVideoSendCodecPreferences = undefined;\\n        }\\n        if (willNeedUpdate) {\\n            this.context.audioVideoController.update({ needsRenegotiation: true });\\n        }\\n    }\\n    handleIndexVideosPausedAtSource() {\\n        const streamsPausedAtSource = this.context.videoStreamIndex.streamsPausedAtSource();\\n        for (const tile of this.context.videoTileController.getAllVideoTiles()) {\\n            const tileState = tile.state();\\n            if (streamsPausedAtSource.contain(tileState.streamId)) {\\n                if (tile.markPoorConnection()) {\\n                    this.logger.info(`marks the tile ${tileState.tileId} as having a poor connection`);\\n                }\\n            }\\n            else {\\n                if (tile.unmarkPoorConnection()) {\\n                    this.logger.info(`unmarks the tile ${tileState.tileId} as having a poor connection`);\\n                }\\n            }\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = ReceiveVideoStreamIndexTask;\\n//# sourceMappingURL=ReceiveVideoStreamIndexTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/ReceiveVideoStreamIndexTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/RunnableTask.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/RunnableTask.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[RunnableTask]] Task wrapper for any Promised-operation\\n */\\nclass RunnableTask extends BaseTask_1.default {\\n    constructor(logger, fn, taskName = 'RunnableTask') {\\n        super(logger);\\n        this.fn = fn;\\n        this.taskName = taskName;\\n    }\\n    run() {\\n        return this.fn().then(() => { });\\n    }\\n}\\nexports[\\\"default\\\"] = RunnableTask;\\n//# sourceMappingURL=RunnableTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/RunnableTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/SendAndReceiveDataMessagesTask.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/SendAndReceiveDataMessagesTask.js ***!\n  \\***************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DataMessage_1 = __webpack_require__(/*! ../datamessage/DataMessage */ \\\"./node_modules/amazon-chime-sdk-js/build/datamessage/DataMessage.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nclass SendAndReceiveDataMessagesTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'SendAndReceiveDataMessagesTask';\\n        this.sendDataMessageHandler = (topic, data, // eslint-disable-line @typescript-eslint/no-explicit-any\\n        lifetimeMs) => {\\n            if (this.context.signalingClient.ready()) {\\n                let uint8Data;\\n                if (data instanceof Uint8Array) {\\n                    uint8Data = data;\\n                }\\n                else if (typeof data === 'string') {\\n                    uint8Data = new TextEncoder().encode(data);\\n                }\\n                else {\\n                    uint8Data = new TextEncoder().encode(JSON.stringify(data));\\n                }\\n                this.validateDataMessage(topic, uint8Data, lifetimeMs);\\n                const message = SignalingProtocol_js_1.SdkDataMessagePayload.create();\\n                message.topic = topic;\\n                message.lifetimeMs = lifetimeMs;\\n                message.data = uint8Data;\\n                const messageFrame = SignalingProtocol_js_1.SdkDataMessageFrame.create();\\n                messageFrame.messages = [message];\\n                this.context.signalingClient.sendDataMessage(messageFrame);\\n            }\\n            else {\\n                this.context.logger.error('Signaling client is not ready');\\n            }\\n        };\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.context.removableObservers.push(this);\\n            this.context.signalingClient.registerObserver(this);\\n            this.context.realtimeController.realtimeSubscribeToSendDataMessage(this.sendDataMessageHandler);\\n        });\\n    }\\n    removeObserver() {\\n        this.context.realtimeController.realtimeUnsubscribeFromSendDataMessage(this.sendDataMessageHandler);\\n        this.context.signalingClient.removeObserver(this);\\n    }\\n    handleSignalingClientEvent(event) {\\n        if (event.type === SignalingClientEventType_1.default.ReceivedSignalFrame &&\\n            event.message.type === SignalingProtocol_js_1.SdkSignalFrame.Type.DATA_MESSAGE) {\\n            for (const message of event.message.dataMessage.messages) {\\n                const dataMessage = new DataMessage_1.default(message.ingestTimeNs / 1000000, message.topic, message.data, message.senderAttendeeId, message.senderExternalUserId, message.ingestTimeNs === 0);\\n                this.context.realtimeController.realtimeReceiveDataMessage(dataMessage);\\n            }\\n        }\\n    }\\n    validateDataMessage(topic, data, lifetimeMs) {\\n        if (!SendAndReceiveDataMessagesTask.TOPIC_REGEX.test(topic)) {\\n            throw new Error('Invalid topic');\\n        }\\n        if (data.length > SendAndReceiveDataMessagesTask.DATA_SIZE) {\\n            throw new Error('Data size has to be less than 2048 bytes');\\n        }\\n        if (lifetimeMs && lifetimeMs < 0) {\\n            throw new Error('The life time of the message has to be non negative');\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = SendAndReceiveDataMessagesTask;\\nSendAndReceiveDataMessagesTask.TOPIC_REGEX = new RegExp(/^[a-zA-Z0-9_-]{1,36}$/);\\nSendAndReceiveDataMessagesTask.DATA_SIZE = 2048;\\n//# sourceMappingURL=SendAndReceiveDataMessagesTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/SendAndReceiveDataMessagesTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/SerialGroupTask.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/SerialGroupTask.js ***!\n  \\************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\nconst TaskStatus_1 = __webpack_require__(/*! ./TaskStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js\\\");\\n/**\\n * [[SerialGroupTask]] runs a set of tasks in series. When canceled, it stops\\n * any currently running task and runs no further tasks in the group.\\n */\\nclass SerialGroupTask extends BaseTask_1.default {\\n    constructor(logger, taskName, tasksToRunSerially) {\\n        super(logger);\\n        this.taskName = taskName;\\n        this.tasksToRunSerially = tasksToRunSerially;\\n        this.currentTask = null;\\n        for (const task of tasksToRunSerially) {\\n            task.setParent(this);\\n        }\\n    }\\n    cancel() {\\n        if (this.currentTask) {\\n            this.logger.info(`canceling serial group task ${this.name()} subtask ${this.currentTask.name()}`);\\n            this.currentTask.cancel();\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            for (const task of this.tasksToRunSerially) {\\n                if (this.getStatus() === TaskStatus_1.default.CANCELED) {\\n                    this.logAndThrow(`serial group task ${this.name()} was canceled`);\\n                }\\n                try {\\n                    this.logger.info(`serial group task ${this.name()} running subtask ${task.name()}`);\\n                    this.currentTask = task;\\n                    yield task.run();\\n                    this.logger.info(`serial group task ${this.name()} completed subtask ${task.name()}`);\\n                }\\n                catch (err) {\\n                    this.logAndThrow(`serial group task ${this.name()} was canceled due to subtask ` +\\n                        `${this.currentTask.name()} error: ${err.message}`);\\n                }\\n                finally {\\n                    this.currentTask = null;\\n                }\\n            }\\n            this.logger.info(`serial group task ${this.name()} completed`);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SerialGroupTask;\\n//# sourceMappingURL=SerialGroupTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/SerialGroupTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/SetLocalDescriptionTask.js\":\n/*!********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/SetLocalDescriptionTask.js ***!\n  \\********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst SDP_1 = __webpack_require__(/*! ../sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[SetLocalDescriptionTask]] asynchronously calls [[setLocalDescription]] on peer connection.\\n */\\nclass SetLocalDescriptionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'SetLocalDescriptionTask';\\n    }\\n    cancel() {\\n        // Just in case. The baseCancel behavior should prevent this.\\n        /* istanbul ignore else */\\n        if (this.cancelPromise) {\\n            const error = new Error(`canceling ${this.name()}`);\\n            this.cancelPromise(error);\\n            delete this.cancelPromise;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const peer = this.context.peer;\\n            const sdpOfferInit = this.context.sdpOfferInit;\\n            let sdp = sdpOfferInit.sdp;\\n            if (this.context.browserBehavior.supportsVideoLayersAllocationRtpHeaderExtension()) {\\n                // This will be negotiatiated with backend, and we will only use it to skip resubscribes\\n                // if we confirm support/negotiation via `RTCRtpTranceiver.sender.getParams`\\n                sdp = new SDP_1.default(sdp).withVideoLayersAllocationRtpHeaderExtension(this.context.previousSdpOffer)\\n                    .sdp;\\n            }\\n            if (new DefaultBrowserBehavior_1.default().requiresDisablingH264Encoding()) {\\n                sdp = new SDP_1.default(sdp).removeH264SupportFromSendSection().sdp;\\n            }\\n            if (this.context.videoSendCodecPreferences !== undefined &&\\n                this.context.videoSendCodecPreferences.length > 0) {\\n                sdp = new SDP_1.default(sdp).withVideoSendCodecPreferences(this.context.meetingSupportedVideoSendCodecPreferences !== undefined\\n                    ? this.context.meetingSupportedVideoSendCodecPreferences\\n                    : this.context.videoSendCodecPreferences).sdp;\\n            }\\n            if (this.context.audioProfile) {\\n                sdp = new SDP_1.default(sdp).withAudioMaxAverageBitrate(this.context.audioProfile.audioBitrateBps).sdp;\\n                if (this.context.audioProfile.isStereo()) {\\n                    sdp = new SDP_1.default(sdp).withStereoAudio().sdp;\\n                }\\n            }\\n            this.logger.debug(() => {\\n                return `local description is >>>${sdp}<<<`;\\n            });\\n            const sdpOffer = {\\n                type: 'offer',\\n                sdp: sdp,\\n                toJSON: null,\\n            };\\n            yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\\n                this.cancelPromise = (error) => {\\n                    reject(error);\\n                };\\n                try {\\n                    yield peer.setLocalDescription(sdpOffer);\\n                    resolve();\\n                }\\n                catch (error) {\\n                    reject(error);\\n                }\\n                finally {\\n                    delete this.cancelPromise;\\n                }\\n            }));\\n            this.context.logger.info('set local description');\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SetLocalDescriptionTask;\\n//# sourceMappingURL=SetLocalDescriptionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/SetLocalDescriptionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/SetRemoteDescriptionTask.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/SetRemoteDescriptionTask.js ***!\n  \\*********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SDP_1 = __webpack_require__(/*! ../sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[SetRemoteDescriptionTask]] asynchronously calls [[setRemoteDescription]] on the\\n * peer connection and then waits for the tracks to be added and for the ICE connection\\n * to complete.\\n */\\nclass SetRemoteDescriptionTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'SetRemoteDescriptionTask';\\n    }\\n    cancel() {\\n        if (this.cancelICEPromise) {\\n            this.cancelICEPromise();\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const peer = this.context.peer;\\n            if (!peer) {\\n                this.logAndThrow('session does not have peer connection; bypass set remote description');\\n            }\\n            let sdp = this.context.sdpAnswer;\\n            sdp = new SDP_1.default(sdp).withoutServerReflexiveCandidates().sdp;\\n            if (this.context.audioProfile) {\\n                sdp = new SDP_1.default(sdp).withAudioMaxAverageBitrate(this.context.audioProfile.audioBitrateBps).sdp;\\n                if (this.context.audioProfile.isStereo()) {\\n                    sdp = new SDP_1.default(sdp).withStereoAudio().sdp;\\n                }\\n            }\\n            if (this.context.videoSendCodecPreferences !== undefined &&\\n                this.context.videoSendCodecPreferences.length > 0) {\\n                sdp = new SDP_1.default(sdp).withVideoSendCodecPreferences(this.context.meetingSupportedVideoSendCodecPreferences !== undefined\\n                    ? this.context.meetingSupportedVideoSendCodecPreferences\\n                    : this.context.videoSendCodecPreferences).sdp;\\n                this.context.currentVideoSendCodec = new SDP_1.default(sdp).highestPriorityVideoSendCodec();\\n            }\\n            this.logger.info(`processed remote description is >>>${sdp}<<<`);\\n            const remoteDescription = {\\n                type: 'answer',\\n                sdp: sdp,\\n                toJSON: null,\\n            };\\n            try {\\n                yield this.createICEConnectionCompletedPromise(remoteDescription);\\n            }\\n            catch (err) {\\n                throw err;\\n            }\\n        });\\n    }\\n    createICEConnectionCompletedPromise(remoteDescription) {\\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\\n            const checkConnectionCompleted = () => {\\n                if (this.context.peer.iceConnectionState === 'connected' ||\\n                    this.context.peer.iceConnectionState === 'completed') {\\n                    this.context.peer.removeEventListener('iceconnectionstatechange', checkConnectionCompleted);\\n                    resolve();\\n                }\\n            };\\n            this.cancelICEPromise = () => {\\n                if (this.context.peer) {\\n                    this.context.peer.removeEventListener('iceconnectionstatechange', checkConnectionCompleted);\\n                }\\n                reject(new Error(`${this.name()} got canceled while waiting for the ICE connection state`));\\n            };\\n            this.context.peer.addEventListener('iceconnectionstatechange', checkConnectionCompleted);\\n            try {\\n                yield this.context.peer.setRemoteDescription(remoteDescription);\\n                this.logger.info('set remote description, waiting for ICE connection');\\n                checkConnectionCompleted();\\n            }\\n            catch (err) {\\n                reject(err);\\n            }\\n        }));\\n    }\\n}\\nexports[\\\"default\\\"] = SetRemoteDescriptionTask;\\n//# sourceMappingURL=SetRemoteDescriptionTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/SetRemoteDescriptionTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/SubscribeAndReceiveSubscribeAckTask.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/SubscribeAndReceiveSubscribeAckTask.js ***!\n  \\********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatus_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatus.js\\\");\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst SDP_1 = __webpack_require__(/*! ../sdp/SDP */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/SDP.js\\\");\\nconst ZLIBTextCompressor_1 = __webpack_require__(/*! ../sdp/ZLIBTextCompressor */ \\\"./node_modules/amazon-chime-sdk-js/build/sdp/ZLIBTextCompressor.js\\\");\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ../signalingclient/ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\nconst SignalingClientEventType_1 = __webpack_require__(/*! ../signalingclient/SignalingClientEventType */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientEventType.js\\\");\\nconst SignalingClientSubscribe_1 = __webpack_require__(/*! ../signalingclient/SignalingClientSubscribe */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientSubscribe.js\\\");\\nconst SignalingClientVideoSubscriptionConfiguration_1 = __webpack_require__(/*! ../signalingclient/SignalingClientVideoSubscriptionConfiguration */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/SignalingClientVideoSubscriptionConfiguration.js\\\");\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[SubscribeAndReceiveSubscribeAckTask]] sends a subscribe frame with the given settings\\n * and receives SdkSubscribeAckFrame.\\n */\\nclass SubscribeAndReceiveSubscribeAckTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'SubscribeAndReceiveSubscribeAckTask';\\n        this.taskCanceler = null;\\n        this.textCompressor = new ZLIBTextCompressor_1.default(context.logger);\\n    }\\n    cancel() {\\n        if (this.taskCanceler) {\\n            this.taskCanceler.cancel();\\n            this.taskCanceler = null;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            let localSdp = '';\\n            if (this.context.peer && this.context.peer.localDescription) {\\n                localSdp = new SDP_1.default(this.context.peer.localDescription.sdp).withUnifiedPlanFormat().sdp;\\n            }\\n            if (!this.context.enableSimulcast) {\\n                // backward compatibility\\n                let frameRate = 0;\\n                let maxEncodeBitrateKbps = 0;\\n                if (this.context.videoCaptureAndEncodeParameter) {\\n                    frameRate = this.context.videoCaptureAndEncodeParameter.captureFrameRate();\\n                    maxEncodeBitrateKbps = this.context.videoCaptureAndEncodeParameter.encodeBitrates()[0];\\n                }\\n                const param = {\\n                    rid: 'hi',\\n                    maxBitrate: maxEncodeBitrateKbps * 1000,\\n                    maxFramerate: frameRate,\\n                    active: true,\\n                };\\n                this.context.videoStreamIndex.integrateUplinkPolicyDecision([param]);\\n            }\\n            // This will cache the current index so that we maintain the values over the course of the subscribe.\\n            this.context.videoStreamIndex.subscribeFrameSent();\\n            // See comment above `fixUpSubscriptionOrder`\\n            const videoSubscriptions = this.fixUpSubscriptionOrder(localSdp, this.context.videoSubscriptions);\\n            const isSendingStreams = this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.TX ||\\n                this.context.videoDuplexMode === SignalingProtocol_js_1.SdkStreamServiceType.DUPLEX;\\n            let compressedSDPOffer;\\n            const localSdpOffer = localSdp;\\n            if (this.context.serverSupportsCompression) {\\n                // If the server supports compression, then send the compressed version of the sdp\\n                // and exclude the original sdp offer.\\n                const prevOffer = this.context.previousSdpOffer ? this.context.previousSdpOffer.sdp : '';\\n                compressedSDPOffer = this.textCompressor.compress(localSdpOffer, prevOffer);\\n                this.context.logger.info(`Compressed the SDP message from ${localSdpOffer.length} to ${compressedSDPOffer.length} bytes.`);\\n                localSdp = '';\\n            }\\n            this.context.previousSdpOffer = new SDP_1.default(localSdpOffer);\\n            const subscribe = new SignalingClientSubscribe_1.default(this.context.meetingSessionConfiguration.credentials.attendeeId, localSdp, this.context.meetingSessionConfiguration.urls.audioHostURL, this.context.realtimeController.realtimeIsLocalAudioMuted(), false, videoSubscriptions, isSendingStreams, this.context.videoStreamIndex.localStreamDescriptions(), \\n            // TODO: handle check-in mode, or remove this param\\n            true, compressedSDPOffer);\\n            if (this.context.videoDownlinkBandwidthPolicy.getServerSideNetworkAdaption !== undefined &&\\n                this.context.videoDownlinkBandwidthPolicy.getServerSideNetworkAdaption() !==\\n                    ServerSideNetworkAdaption_1.default.None &&\\n                this.context.videoDownlinkBandwidthPolicy.getVideoPreferences !== undefined) {\\n                // Set initial configuration for the receive streams indicated by the rest of the subscribe\\n                subscribe.videoSubscriptionConfiguration = this.convertVideoPreferencesToVideoSubscriptionConfiguration(videoSubscriptions, this.context.videoDownlinkBandwidthPolicy.getVideoPreferences());\\n            }\\n            this.context.logger.info(`sending subscribe: ${JSON.stringify(subscribe)}`);\\n            this.context.signalingClient.subscribe(subscribe);\\n            const subscribeAckFrame = yield this.receiveSubscribeAck();\\n            this.context.logger.info(`got subscribe ack: ${JSON.stringify(subscribeAckFrame)}`);\\n            let decompressedText = '';\\n            if (subscribeAckFrame.compressedSdpAnswer && subscribeAckFrame.compressedSdpAnswer.length) {\\n                decompressedText = this.textCompressor.decompress(subscribeAckFrame.compressedSdpAnswer, this.context.previousSdpAnswerAsString);\\n                if (decompressedText.length === 0) {\\n                    this.context.sdpAnswer = '';\\n                    this.context.previousSdpAnswerAsString = '';\\n                    this.logAndThrow(`Error occurred while trying to decompress the SDP answer.`);\\n                }\\n                this.context.logger.info(`Decompressed the SDP message from ${subscribeAckFrame.compressedSdpAnswer.length} to ${decompressedText.length} bytes.`);\\n                this.context.sdpAnswer = decompressedText;\\n            }\\n            else {\\n                this.context.sdpAnswer = subscribeAckFrame.sdpAnswer;\\n            }\\n            this.context.previousSdpAnswerAsString = this.context.sdpAnswer;\\n            this.context.videoStreamIndex.integrateSubscribeAckFrame(subscribeAckFrame);\\n        });\\n    }\\n    // Our backends currently expect the video subscriptions passed in subscribe to precisely\\n    // line up with the media sections, with a zero for any video send or inactive section.\\n    //\\n    // Firefox occasionally tosses stopped transceivers at the end of the SDP without reason\\n    // and in general we don't want to be at the mercy of SDP sections not being in the same\\n    // order as `getTransceivers`, so we simply recalculate the array here to enforce that\\n    // expected invarient until we refactor our signaling to simply take a mapping of MID to\\n    // subscription.\\n    //\\n    // This only works on Unified Plan SDPs\\n    fixUpSubscriptionOrder(sdp, videoSubscriptions) {\\n        if (this.context.transceiverController.getMidForStreamId === undefined) {\\n            return videoSubscriptions;\\n        }\\n        const midsToStreamIds = new Map();\\n        for (const streamId of videoSubscriptions) {\\n            // The local description will have been set by the time this task is running, so all\\n            // of the transceivers should have `mid` set by now (see comment above `getMidForStreamId`)\\n            const mid = this.context.transceiverController.getMidForStreamId(streamId);\\n            if (mid === undefined) {\\n                if (streamId !== 0) {\\n                    // Send section or inactive section\\n                    this.logger.warn(`Could not find MID for stream ID: ${streamId}`);\\n                }\\n                continue;\\n            }\\n            midsToStreamIds.set(mid, streamId);\\n        }\\n        const sections = new SDP_1.default(sdp).mediaSections();\\n        const newSubscriptions = [];\\n        for (const section of sections) {\\n            if (section.mediaType !== 'video') {\\n                continue;\\n            }\\n            if (section.direction === 'recvonly') {\\n                const streamId = midsToStreamIds.get(section.mid);\\n                if (streamId === undefined) {\\n                    this.logger.warn(`Could not find stream ID for MID: ${section.mid}`);\\n                    continue;\\n                }\\n                newSubscriptions.push(streamId);\\n            }\\n            else {\\n                newSubscriptions.push(0);\\n            }\\n        }\\n        this.logger.info(`Fixed up ${JSON.stringify(videoSubscriptions)} to ${JSON.stringify(newSubscriptions)} (may be same))}`);\\n        return newSubscriptions;\\n    }\\n    convertVideoPreferencesToVideoSubscriptionConfiguration(receiveStreamIds, preferences) {\\n        if (this.context.transceiverController.getMidForStreamId === undefined ||\\n            preferences === undefined) {\\n            return [];\\n        }\\n        const configurations = new Array();\\n        const attendeeIdToMid = new Map();\\n        const attendeeIdToGroupId = new Map();\\n        for (const streamId of receiveStreamIds) {\\n            // The local description will have been set by the time this task is running, so all\\n            // of the transceivers should have `mid` set by now (see comment above `getMidForStreamId`)\\n            const mid = this.context.transceiverController.getMidForStreamId(streamId);\\n            if (mid === undefined) {\\n                // Likely imposible to hit the next `if` given use of `fixUpSubscriptionOrder`\\n                /* istanbul ignore if */\\n                if (streamId !== 0) {\\n                    // Send section or inactive section\\n                    this.context.logger.warn(`Could not find MID for stream ID: ${streamId}`);\\n                }\\n                continue;\\n            }\\n            const attendeeId = this.context.videoStreamIndex.attendeeIdForStreamId(streamId);\\n            attendeeIdToMid.set(attendeeId, mid);\\n            attendeeIdToGroupId.set(attendeeId, this.context.videoStreamIndex.groupIdForStreamId(streamId));\\n        }\\n        for (const preference of preferences) {\\n            const configuration = new SignalingClientVideoSubscriptionConfiguration_1.default();\\n            const mid = attendeeIdToMid.get(preference.attendeeId);\\n            if (mid === undefined) {\\n                this.context.logger.warn(`Could not find MID for attendee ID: ${preference.attendeeId}`);\\n                continue;\\n            }\\n            configuration.mid = mid;\\n            configuration.attendeeId = preference.attendeeId;\\n            configuration.groupId = attendeeIdToGroupId.get(preference.attendeeId);\\n            // The signaling protocol expects 'higher' values for 'higher' priorities\\n            configuration.priority = Number.MAX_SAFE_INTEGER - preference.priority;\\n            configuration.targetBitrateKbps = preference.targetSizeToBitrateKbps(preference.targetSize);\\n            configurations.push(configuration);\\n        }\\n        return configurations;\\n    }\\n    receiveSubscribeAck() {\\n        return new Promise((resolve, reject) => {\\n            const context = this.context;\\n            class Interceptor {\\n                constructor(signalingClient) {\\n                    this.signalingClient = signalingClient;\\n                }\\n                cancel() {\\n                    this.signalingClient.removeObserver(this);\\n                    reject(new Error(`SubscribeAndReceiveSubscribeAckTask got canceled while waiting for SdkSubscribeAckFrame`));\\n                }\\n                handleSignalingClientEvent(event) {\\n                    if (event.isConnectionTerminated()) {\\n                        const message = `SubscribeAndReceiveSubscribeAckTask connection was terminated with code ${event.closeCode} and reason: ${event.closeReason}`;\\n                        context.logger.warn(message);\\n                        let statusCode = MeetingSessionStatusCode_1.default.TaskFailed;\\n                        if (event.closeCode >= 4500 && event.closeCode < 4600) {\\n                            statusCode = MeetingSessionStatusCode_1.default.SignalingInternalServerError;\\n                        }\\n                        context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1.default(statusCode), new Error(message));\\n                        return;\\n                    }\\n                    if (event.type !== SignalingClientEventType_1.default.ReceivedSignalFrame ||\\n                        event.message.type !== SignalingProtocol_js_1.SdkSignalFrame.Type.SUBSCRIBE_ACK) {\\n                        return;\\n                    }\\n                    this.signalingClient.removeObserver(this);\\n                    // @ts-ignore: force cast to SdkSubscribeAckFrame\\n                    const subackFrame = event.message.suback;\\n                    resolve(subackFrame);\\n                }\\n            }\\n            const interceptor = new Interceptor(this.context.signalingClient);\\n            this.context.signalingClient.registerObserver(interceptor);\\n            this.taskCanceler = interceptor;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SubscribeAndReceiveSubscribeAckTask;\\n//# sourceMappingURL=SubscribeAndReceiveSubscribeAckTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/SubscribeAndReceiveSubscribeAckTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar TaskStatus;\\n(function (TaskStatus) {\\n    TaskStatus[\\\"IDLE\\\"] = \\\"IDLE\\\";\\n    TaskStatus[\\\"RUNNING\\\"] = \\\"RUNNING\\\";\\n    TaskStatus[\\\"CANCELED\\\"] = \\\"CANCELED\\\";\\n    TaskStatus[\\\"FINISHED\\\"] = \\\"FINISHED\\\";\\n})(TaskStatus || (TaskStatus = {}));\\nexports[\\\"default\\\"] = TaskStatus;\\n//# sourceMappingURL=TaskStatus.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/TaskStatus.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js ***!\n  \\********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst TimeoutScheduler_1 = __webpack_require__(/*! ../scheduler/TimeoutScheduler */ \\\"./node_modules/amazon-chime-sdk-js/build/scheduler/TimeoutScheduler.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/**\\n * [[TimeoutTask]] runs a subtask until it either succeeds or reaches a\\n * timeout, at which point the subtask is canceled.\\n */\\nclass TimeoutTask extends BaseTask_1.default {\\n    constructor(logger, taskToRunBeforeTimeout, timeoutMs) {\\n        super(logger);\\n        this.taskToRunBeforeTimeout = taskToRunBeforeTimeout;\\n        this.timeoutMs = timeoutMs;\\n        this.taskName = `Timeout${this.timeoutMs}ms`;\\n        taskToRunBeforeTimeout.setParent(this);\\n    }\\n    cancel() {\\n        this.logger.info(`canceling timeout task ${this.name()} subtask ${this.taskToRunBeforeTimeout}`);\\n        this.taskToRunBeforeTimeout.cancel();\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const timer = new TimeoutScheduler_1.default(this.timeoutMs);\\n            timer.start(() => {\\n                this.logger.info(`timeout reached for task ${this.name()}`);\\n                this.taskToRunBeforeTimeout.cancel();\\n            });\\n            try {\\n                yield this.taskToRunBeforeTimeout.run();\\n            }\\n            finally {\\n                timer.stop();\\n            }\\n            this.logger.info(`timeout task ${this.name()} completed`);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = TimeoutTask;\\n//# sourceMappingURL=TimeoutTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/TimeoutTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/task/WaitForAttendeePresenceTask.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/task/WaitForAttendeePresenceTask.js ***!\n  \\************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst MeetingSessionStatusCode_1 = __webpack_require__(/*! ../meetingsession/MeetingSessionStatusCode */ \\\"./node_modules/amazon-chime-sdk-js/build/meetingsession/MeetingSessionStatusCode.js\\\");\\nconst BaseTask_1 = __webpack_require__(/*! ./BaseTask */ \\\"./node_modules/amazon-chime-sdk-js/build/task/BaseTask.js\\\");\\n/*\\n * [[WaitForAttendeePresenceTask]] waits until an attendee presence event happens.\\n */\\nclass WaitForAttendeePresenceTask extends BaseTask_1.default {\\n    constructor(context) {\\n        super(context.logger);\\n        this.context = context;\\n        this.taskName = 'WaitForAttendeePresenceTask';\\n    }\\n    cancel() {\\n        // Just in case. The baseCancel behavior should prevent this.\\n        /* istanbul ignore else */\\n        if (this.cancelPromise) {\\n            const error = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.NoAttendeePresent}`);\\n            this.cancelPromise(error);\\n            delete this.cancelPromise;\\n        }\\n    }\\n    run() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const attendeeId = this.context.meetingSessionConfiguration.credentials.attendeeId;\\n            return new Promise((resolve, reject) => {\\n                const handler = (presentAttendeeId, present, _externalUserId, _dropped, _pos) => {\\n                    if (attendeeId === presentAttendeeId && present) {\\n                        this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(handler);\\n                        resolve();\\n                        delete this.cancelPromise;\\n                    }\\n                };\\n                this.cancelPromise = (error) => {\\n                    this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(handler);\\n                    reject(error);\\n                };\\n                this.context.realtimeController.realtimeSubscribeToAttendeeIdPresence(handler);\\n            });\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = WaitForAttendeePresenceTask;\\n//# sourceMappingURL=WaitForAttendeePresenceTask.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/task/WaitForAttendeePresenceTask.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js ***!\n  \\******************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DefaultTransceiverController {\\n    constructor(logger, browserBehavior) {\\n        this.logger = logger;\\n        this.browserBehavior = browserBehavior;\\n        this._localCameraTransceiver = null;\\n        this._localAudioTransceiver = null;\\n        this.videoSubscriptions = [];\\n        this.defaultMediaStream = null;\\n        this.peer = null;\\n        this.streamIdToTransceiver = new Map();\\n    }\\n    setEncodingParameters(encodingParamMap) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== 'sendrecv') {\\n                return;\\n            }\\n            const sender = this._localCameraTransceiver.sender;\\n            if (!encodingParamMap || encodingParamMap.size === 0) {\\n                return;\\n            }\\n            const newEncodingParams = Array.from(encodingParamMap.values());\\n            const oldParam = sender.getParameters();\\n            if (!oldParam.encodings || oldParam.encodings.length === 0) {\\n                oldParam.encodings = newEncodingParams;\\n            }\\n            else {\\n                for (const existing of oldParam.encodings) {\\n                    for (const changed of newEncodingParams) {\\n                        if ((existing.rid || changed.rid) && existing.rid !== changed.rid) {\\n                            continue;\\n                        }\\n                        let key;\\n                        for (key in changed) {\\n                            // These properties can't be changed.\\n                            if (key === 'rid' || key === 'codecPayloadType') {\\n                                continue;\\n                            }\\n                            /* istanbul ignore else */\\n                            if (changed.hasOwnProperty(key)) {\\n                                existing[key] = changed[key];\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            yield sender.setParameters(oldParam);\\n        });\\n    }\\n    localAudioTransceiver() {\\n        return this._localAudioTransceiver;\\n    }\\n    localVideoTransceiver() {\\n        return this._localCameraTransceiver;\\n    }\\n    setVideoSendingBitrateKbps(bitrateKbps) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== 'sendrecv') {\\n                return;\\n            }\\n            const sender = this._localCameraTransceiver.sender;\\n            if (!sender || bitrateKbps <= 0) {\\n                return;\\n            }\\n            const param = sender.getParameters();\\n            if (!param.encodings) {\\n                param.encodings = [{}];\\n            }\\n            for (const encodeParam of param.encodings) {\\n                encodeParam.maxBitrate = bitrateKbps * 1000;\\n            }\\n            yield sender.setParameters(param);\\n        });\\n    }\\n    setPeer(peer) {\\n        this.peer = peer;\\n    }\\n    reset() {\\n        this._localCameraTransceiver = null;\\n        this._localAudioTransceiver = null;\\n        this.videoSubscriptions = [];\\n        this.defaultMediaStream = null;\\n        this.peer = null;\\n    }\\n    useTransceivers() {\\n        return !!this.peer && typeof this.peer.getTransceivers !== 'undefined';\\n    }\\n    hasVideoInput() {\\n        if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== 'sendrecv')\\n            return false;\\n        return true;\\n    }\\n    trackIsVideoInput(track) {\\n        if (!this._localCameraTransceiver) {\\n            return false;\\n        }\\n        return (track === this._localCameraTransceiver.sender.track ||\\n            track === this._localCameraTransceiver.receiver.track);\\n    }\\n    setupLocalTransceivers() {\\n        if (!this.useTransceivers()) {\\n            return;\\n        }\\n        if (!this.defaultMediaStream && typeof MediaStream !== 'undefined') {\\n            this.defaultMediaStream = new MediaStream();\\n        }\\n        if (!this._localAudioTransceiver) {\\n            this._localAudioTransceiver = this.peer.addTransceiver('audio', {\\n                direction: 'inactive',\\n                streams: [this.defaultMediaStream],\\n            });\\n        }\\n        if (!this._localCameraTransceiver) {\\n            this._localCameraTransceiver = this.peer.addTransceiver('video', {\\n                direction: 'inactive',\\n                streams: [this.defaultMediaStream],\\n            });\\n        }\\n    }\\n    replaceAudioTrack(track) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._localAudioTransceiver || this._localAudioTransceiver.direction !== 'sendrecv') {\\n                this.logger.info(`audio transceiver direction is not set up or not activated`);\\n                return false;\\n            }\\n            yield this._localAudioTransceiver.sender.replaceTrack(track);\\n            return true;\\n        });\\n    }\\n    setAudioInput(track) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            yield this.setTransceiverInput(this._localAudioTransceiver, track);\\n            return;\\n        });\\n    }\\n    setVideoInput(track) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            yield this.setTransceiverInput(this._localCameraTransceiver, track);\\n            return;\\n        });\\n    }\\n    updateVideoTransceivers(videoStreamIndex, videosToReceive) {\\n        if (!this.useTransceivers()) {\\n            return videosToReceive.array();\\n        }\\n        // See https://blog.mozilla.org/webrtc/rtcrtptransceiver-explored/ for details on transceivers\\n        const transceivers = this.peer.getTransceivers();\\n        // Subscription index 0 is reserved for transmitting camera.\\n        // We mark inactive slots with 0 in the subscription array.\\n        this.videoSubscriptions = [0];\\n        videosToReceive = videosToReceive.clone();\\n        this.updateTransceivers(transceivers, videoStreamIndex, videosToReceive);\\n        this.logger.debug(() => {\\n            return this.debugDumpTransceivers();\\n        });\\n        return this.videoSubscriptions;\\n    }\\n    updateTransceivers(transceivers, videoStreamIndex, videosToReceive) {\\n        const videosRemaining = videosToReceive.array();\\n        if (transceivers.length !== 0 && !transceivers[0].stop) {\\n            // This function and its usage can be removed once we raise Chrome browser requirements\\n            // to M88 (when `RTCRtpTransceiver.stop` was added)\\n            this.logger.info('Updating transceivers without `stop` function');\\n            this.updateTransceiverWithoutStop(transceivers, videoStreamIndex, videosRemaining);\\n        }\\n        else if (transceivers.length !== 0) {\\n            this.updateTransceiverWithStop(transceivers, videoStreamIndex, videosRemaining);\\n        }\\n        // Add transceivers for the remaining subscriptions\\n        for (const index of videosRemaining) {\\n            // @ts-ignore\\n            const transceiver = this.peer.addTransceiver('video', {\\n                direction: 'recvonly',\\n                streams: [new MediaStream()],\\n            });\\n            this.streamIdToTransceiver.set(index, transceiver);\\n            this.videoSubscriptions.push(index);\\n            this.logger.info(`adding transceiver mid: ${transceiver.mid} subscription: ${index} direction: recvonly`);\\n        }\\n    }\\n    updateTransceiverWithStop(transceivers, videoStreamIndex, videosRemaining) {\\n        // Begin counting out index in the the subscription array at 1 since the camera.\\n        // Always occupies position 0 (whether active or not).\\n        let n = 1;\\n        // Reset since otherwise there will be stale indexes corresponding to\\n        // stopped transceivers.\\n        this.videoSubscriptions = [0];\\n        for (const transceiver of transceivers) {\\n            if (transceiver === this._localCameraTransceiver ||\\n                !this.transceiverIsVideo(transceiver) ||\\n                !transceiver.mid) {\\n                continue;\\n            }\\n            let reusingTranceiver = false;\\n            // See if we want this existing transceiver for a simulcast stream switch\\n            //\\n            // By convention with the service backend, msid is equal to the media section mid, prefixed with the string \\\"v_\\\";\\n            // we use this to get the stream ID for the track\\n            const streamId = videoStreamIndex.streamIdForTrack('v_' + transceiver.mid);\\n            if (transceiver.direction !== 'inactive' && streamId !== undefined) {\\n                for (const [index, recvStreamId] of videosRemaining.entries()) {\\n                    // `streamId` may still be the same as `recvStreamId`\\n                    if (videoStreamIndex.StreamIdsInSameGroup(streamId, recvStreamId)) {\\n                        transceiver.direction = 'recvonly';\\n                        this.videoSubscriptions[n] = recvStreamId;\\n                        reusingTranceiver = true;\\n                        this.streamIdToTransceiver.delete(streamId);\\n                        this.streamIdToTransceiver.set(recvStreamId, transceiver);\\n                        videosRemaining.splice(index, 1);\\n                        break;\\n                    }\\n                }\\n            }\\n            if (!reusingTranceiver) {\\n                this.videoSubscriptions[n] = 0;\\n                this.logger.info(`Stopping MID: ${transceiver.mid}, direction: ${transceiver.direction}, current direction: ${transceiver.currentDirection}`);\\n                // Clean up transceiver and mappings for streams that have been unsubscribed from.  Note we do not try to reuse\\n                // old inactive transceivers for new streams as Firefox will reuse the last frame from\\n                // that transceiver, and additionally we simply don't want to risk wiring up a transceiver\\n                // to the incorrect video stream for no real benefit besides possible a smaller SDP size.\\n                transceiver.stop(); // Note (as of Firefox 94): Firefox will keep these around forever\\n                for (const [streamId, previousTransceiver] of this.streamIdToTransceiver.entries()) {\\n                    if (transceiver.mid === previousTransceiver.mid) {\\n                        this.streamIdToTransceiver.delete(streamId);\\n                    }\\n                }\\n            }\\n            n += 1;\\n        }\\n    }\\n    // This function operates similarily to `updateTransceiverWithStop` with the following changes to account\\n    // for the fact RTCRtpTransceiver.stop is not available on all supported browsers:\\n    //  * We attempt to reuse inactive transceivers because libwebrtc will not remove them otherwise and\\n    //    the SDP will grow endlessly.\\n    //  * We mark unsubscribed transceivers as 'inactive' so that they can be reused. This requires using a\\n    //    second for loop.\\n    updateTransceiverWithoutStop(transceivers, videoStreamIndex, videosRemaining) {\\n        let n = 1;\\n        for (const transceiver of transceivers) {\\n            if (transceiver === this._localCameraTransceiver || !this.transceiverIsVideo(transceiver)) {\\n                continue;\\n            }\\n            this.videoSubscriptions[n] = 0;\\n            if (transceiver.direction !== 'inactive') {\\n                const streamId = videoStreamIndex.streamIdForTrack('v_' + transceiver.mid);\\n                if (streamId !== undefined) {\\n                    for (const [index, recvStreamId] of videosRemaining.entries()) {\\n                        if (videoStreamIndex.StreamIdsInSameGroup(streamId, recvStreamId)) {\\n                            transceiver.direction = 'recvonly';\\n                            this.videoSubscriptions[n] = recvStreamId;\\n                            this.streamIdToTransceiver.delete(streamId);\\n                            this.streamIdToTransceiver.set(recvStreamId, transceiver);\\n                            videosRemaining.splice(index, 1);\\n                            break;\\n                        }\\n                    }\\n                }\\n            }\\n            n += 1;\\n        }\\n        // Next fill in open slots and remove unused\\n        n = 1;\\n        for (const transceiver of transceivers) {\\n            if (transceiver === this._localCameraTransceiver || !this.transceiverIsVideo(transceiver)) {\\n                continue;\\n            }\\n            if (transceiver.direction === 'inactive' && videosRemaining.length > 0) {\\n                // Fill available slot\\n                transceiver.direction = 'recvonly';\\n                const streamId = videosRemaining.shift();\\n                this.videoSubscriptions[n] = streamId;\\n                this.streamIdToTransceiver.set(streamId, transceiver);\\n            }\\n            else {\\n                // Remove if no longer subscribed\\n                if (this.videoSubscriptions[n] === 0) {\\n                    transceiver.direction = 'inactive';\\n                    for (const [streamId, previousTransceiver] of this.streamIdToTransceiver.entries()) {\\n                        if (transceiver === previousTransceiver) {\\n                            this.streamIdToTransceiver.delete(streamId);\\n                        }\\n                    }\\n                }\\n            }\\n            n += 1;\\n        }\\n    }\\n    getMidForStreamId(streamId) {\\n        var _a;\\n        return (_a = this.streamIdToTransceiver.get(streamId)) === null || _a === void 0 ? void 0 : _a.mid;\\n    }\\n    setStreamIdForMid(mid, newStreamId) {\\n        for (const [streamId, transceiver] of this.streamIdToTransceiver.entries()) {\\n            if (transceiver.mid === mid) {\\n                this.streamIdToTransceiver.delete(streamId);\\n                this.streamIdToTransceiver.set(newStreamId, transceiver);\\n                return;\\n            }\\n        }\\n    }\\n    transceiverIsVideo(transceiver) {\\n        return ((transceiver.receiver &&\\n            transceiver.receiver.track &&\\n            transceiver.receiver.track.kind === 'video') ||\\n            (transceiver.sender && transceiver.sender.track && transceiver.sender.track.kind === 'video'));\\n    }\\n    debugDumpTransceivers() {\\n        let msg = '';\\n        let n = 0;\\n        for (const transceiver of this.peer.getTransceivers()) {\\n            if (!this.transceiverIsVideo(transceiver)) {\\n                continue;\\n            }\\n            msg += `transceiver index=${n} mid=${transceiver.mid} subscription=${this.videoSubscriptions[n]} direction=${transceiver.direction}\\\\n`;\\n            n += 1;\\n        }\\n        return msg;\\n    }\\n    setTransceiverInput(transceiver, track) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!transceiver) {\\n                return;\\n            }\\n            if (track) {\\n                transceiver.direction = 'sendrecv';\\n            }\\n            else {\\n                transceiver.direction = 'inactive';\\n            }\\n            yield transceiver.sender.replaceTrack(track);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultTransceiverController;\\n//# sourceMappingURL=DefaultTransceiverController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js\":\n/*!********************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js ***!\n  \\********************************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SimulcastTransceiverController_1 = __webpack_require__(/*! ./SimulcastTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js\\\");\\nclass SimulcastContentShareTransceiverController extends SimulcastTransceiverController_1.default {\\n    constructor(logger, browserBehavior) {\\n        super(logger, browserBehavior);\\n        let scale = 2;\\n        this.videoQualityControlParameterMap = new Map();\\n        for (let i = 0; i < SimulcastContentShareTransceiverController.NAME_ARR_ASCENDING.length; i++) {\\n            const ridName = SimulcastContentShareTransceiverController.NAME_ARR_ASCENDING[i];\\n            this.videoQualityControlParameterMap.set(ridName, {\\n                rid: ridName,\\n                scaleResolutionDownBy: scale,\\n                maxBitrate: SimulcastContentShareTransceiverController.BITRATE_ARR_ASCENDING[i] * 1000,\\n            });\\n            scale = scale / 2;\\n        }\\n    }\\n    // Note: `scaleResolutionDownBy` has only been tested with values 1, 2, and 4.\\n    setEncodingParameters(encodingParamMap) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== 'sendrecv') {\\n                return;\\n            }\\n            const sender = this._localCameraTransceiver.sender;\\n            const newEncodingParams = Array.from(encodingParamMap.values());\\n            if (newEncodingParams.length <= 0) {\\n                return;\\n            }\\n            const oldParam = sender.getParameters();\\n            if (!oldParam.encodings) {\\n                oldParam.encodings = newEncodingParams;\\n            }\\n            else {\\n                for (let i = 0; i < oldParam.encodings.length; i++) {\\n                    if (oldParam.encodings[i].rid === SimulcastTransceiverController_1.default.LOW_LEVEL_NAME) {\\n                        this.copyEncodingParams(encodingParamMap.get(SimulcastTransceiverController_1.default.LOW_LEVEL_NAME), oldParam.encodings[i]);\\n                    }\\n                    if (oldParam.encodings[i].rid === SimulcastTransceiverController_1.default.HIGH_LEVEL_NAME) {\\n                        this.copyEncodingParams(encodingParamMap.get(SimulcastTransceiverController_1.default.HIGH_LEVEL_NAME), oldParam.encodings[i]);\\n                    }\\n                }\\n            }\\n            yield sender.setParameters(oldParam);\\n            this.logVideoTransceiverParameters();\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = SimulcastContentShareTransceiverController;\\nSimulcastContentShareTransceiverController.NAME_ARR_ASCENDING = ['low', 'hi'];\\nSimulcastContentShareTransceiverController.BITRATE_ARR_ASCENDING = [300, 1200];\\n//# sourceMappingURL=SimulcastContentShareTransceiverController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js ***!\n  \\********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultTransceiverController_1 = __webpack_require__(/*! ./DefaultTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js\\\");\\nclass SimulcastTransceiverController extends DefaultTransceiverController_1.default {\\n    constructor(logger, browserBehavior) {\\n        super(logger, browserBehavior);\\n        this.videoQualityControlParameterMap = new Map();\\n        let scale = 4;\\n        for (let i = 0; i < SimulcastTransceiverController.NAME_ARR_ASCENDING.length; i++) {\\n            const ridName = SimulcastTransceiverController.NAME_ARR_ASCENDING[i];\\n            this.videoQualityControlParameterMap.set(ridName, {\\n                rid: ridName,\\n                scaleResolutionDownBy: scale,\\n                maxBitrate: SimulcastTransceiverController.BITRATE_ARR_ASCENDING[i] * 1000,\\n            });\\n            scale = scale / 2;\\n        }\\n    }\\n    // Note: `scaleResolutionDownBy` has only been tested with values 1, 2, and 4.\\n    setEncodingParameters(encodingParamMap) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== 'sendrecv') {\\n                return;\\n            }\\n            const sender = this._localCameraTransceiver.sender;\\n            const newEncodingParams = Array.from(encodingParamMap.values());\\n            if (newEncodingParams.length <= 0) {\\n                return;\\n            }\\n            const oldParam = sender.getParameters();\\n            if (!oldParam.encodings) {\\n                oldParam.encodings = newEncodingParams;\\n            }\\n            else {\\n                for (let i = 0; i < oldParam.encodings.length; i++) {\\n                    if (oldParam.encodings[i].rid === SimulcastTransceiverController.LOW_LEVEL_NAME) {\\n                        this.copyEncodingParams(encodingParamMap.get(SimulcastTransceiverController.LOW_LEVEL_NAME), oldParam.encodings[i]);\\n                    }\\n                    if (oldParam.encodings[i].rid === SimulcastTransceiverController.MID_LEVEL_NAME) {\\n                        this.copyEncodingParams(encodingParamMap.get(SimulcastTransceiverController.MID_LEVEL_NAME), oldParam.encodings[i]);\\n                    }\\n                    if (oldParam.encodings[i].rid === SimulcastTransceiverController.HIGH_LEVEL_NAME) {\\n                        this.copyEncodingParams(encodingParamMap.get(SimulcastTransceiverController.HIGH_LEVEL_NAME), oldParam.encodings[i]);\\n                    }\\n                }\\n            }\\n            yield sender.setParameters(oldParam);\\n            this.logVideoTransceiverParameters();\\n        });\\n    }\\n    setVideoSendingBitrateKbps(_bitrateKbps) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return;\\n        });\\n    }\\n    setupLocalTransceivers() {\\n        if (!this.useTransceivers()) {\\n            return;\\n        }\\n        if (!this.defaultMediaStream && typeof MediaStream !== 'undefined') {\\n            this.defaultMediaStream = new MediaStream();\\n        }\\n        if (!this._localAudioTransceiver) {\\n            this._localAudioTransceiver = this.peer.addTransceiver('audio', {\\n                direction: 'inactive',\\n                streams: [this.defaultMediaStream],\\n            });\\n        }\\n        if (!this._localCameraTransceiver) {\\n            const encodingParams = Array.from(this.videoQualityControlParameterMap.values());\\n            this._localCameraTransceiver = this.peer.addTransceiver('video', {\\n                direction: 'inactive',\\n                streams: [this.defaultMediaStream],\\n                sendEncodings: encodingParams,\\n            });\\n        }\\n    }\\n    logVideoTransceiverParameters() {\\n        const params = this._localCameraTransceiver.sender.getParameters();\\n        const encodings = params.encodings;\\n        let msg = 'simulcast: current encoding parameters \\\\n';\\n        for (const encodingParam of encodings) {\\n            msg += `rid=${encodingParam.rid} maxBitrate=${encodingParam.maxBitrate} active=${encodingParam.active} scaleDownBy=${encodingParam.scaleResolutionDownBy} maxFrameRate = ${encodingParam.maxFramerate} \\\\n`;\\n        }\\n        this.logger.info(msg);\\n    }\\n    copyEncodingParams(fromEncodingParams, toEncodingParams) {\\n        toEncodingParams.active = fromEncodingParams.active;\\n        toEncodingParams.maxBitrate = fromEncodingParams.maxBitrate;\\n        toEncodingParams.scaleResolutionDownBy = fromEncodingParams.scaleResolutionDownBy;\\n        toEncodingParams.maxFramerate = fromEncodingParams.maxFramerate;\\n    }\\n}\\nexports[\\\"default\\\"] = SimulcastTransceiverController;\\nSimulcastTransceiverController.LOW_LEVEL_NAME = 'low';\\nSimulcastTransceiverController.MID_LEVEL_NAME = 'mid';\\nSimulcastTransceiverController.HIGH_LEVEL_NAME = 'hi';\\nSimulcastTransceiverController.NAME_ARR_ASCENDING = ['low', 'mid', 'hi'];\\nSimulcastTransceiverController.BITRATE_ARR_ASCENDING = [200, 400, 1100];\\n//# sourceMappingURL=SimulcastTransceiverController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/VideoOnlyTransceiverController.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transceivercontroller/VideoOnlyTransceiverController.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultTransceiverController_1 = __webpack_require__(/*! ./DefaultTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/DefaultTransceiverController.js\\\");\\nclass VideoOnlyTransceiverController extends DefaultTransceiverController_1.default {\\n    constructor(logger, browserBehavior) {\\n        super(logger, browserBehavior);\\n    }\\n    setupLocalTransceivers() {\\n        if (!this.useTransceivers()) {\\n            return;\\n        }\\n        if (!this.defaultMediaStream && typeof MediaStream !== 'undefined') {\\n            this.defaultMediaStream = new MediaStream();\\n        }\\n        if (!this._localCameraTransceiver) {\\n            this._localCameraTransceiver = this.peer.addTransceiver('video', {\\n                direction: 'inactive',\\n                streams: [this.defaultMediaStream],\\n            });\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VideoOnlyTransceiverController;\\n//# sourceMappingURL=VideoOnlyTransceiverController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transceivercontroller/VideoOnlyTransceiverController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/DefaultTranscriptionController.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/DefaultTranscriptionController.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.TRANSCRIPTION_DATA_MESSAGE_TOPIC = void 0;\\nconst TranscriptEvent_1 = __webpack_require__(/*! ./TranscriptEvent */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEvent.js\\\");\\nexports.TRANSCRIPTION_DATA_MESSAGE_TOPIC = 'aws:chime:transcription';\\nclass DefaultTranscriptionController {\\n    constructor(realtimeController) {\\n        this.realtimeController = realtimeController;\\n        this.transcriptEventCallbacks = new Set();\\n    }\\n    subscribeToTranscriptEvent(callback) {\\n        if (this.transcriptEventCallbacks.size === 0) {\\n            this.realtimeController.realtimeSubscribeToReceiveDataMessage(exports.TRANSCRIPTION_DATA_MESSAGE_TOPIC, (dataMessage) => {\\n                for (const transcriptEvent of TranscriptEvent_1.TranscriptEventConverter.from(dataMessage)) {\\n                    for (const transcriptEventCallback of this.transcriptEventCallbacks) {\\n                        transcriptEventCallback(transcriptEvent);\\n                    }\\n                }\\n            });\\n        }\\n        this.transcriptEventCallbacks.add(callback);\\n    }\\n    unsubscribeFromTranscriptEvent(callback) {\\n        this.transcriptEventCallbacks.delete(callback);\\n        if (this.transcriptEventCallbacks.size === 0) {\\n            this.realtimeController.realtimeUnsubscribeFromReceiveDataMessage(exports.TRANSCRIPTION_DATA_MESSAGE_TOPIC);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultTranscriptionController;\\n//# sourceMappingURL=DefaultTranscriptionController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/DefaultTranscriptionController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/Transcript.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/Transcript.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass Transcript {\\n}\\nexports[\\\"default\\\"] = Transcript;\\n//# sourceMappingURL=Transcript.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/Transcript.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptAlternative.js\":\n/*!************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptAlternative.js ***!\n  \\************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass TranscriptAlternative {\\n}\\nexports[\\\"default\\\"] = TranscriptAlternative;\\n//# sourceMappingURL=TranscriptAlternative.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptAlternative.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEntity.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEntity.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/*\\n* When redacting personally identifiable information (PII) from a streaming transcription, Amazon Transcribe replaces each identified instance of PII with [PII] in your transcript.\\n* An additional option available for streaming audio is PII identification.\\n* When you activate PII Identification, Amazon Transcribe labels the PII in your transcription results under an Entities object.\\n* PII identification and redaction for streaming jobs is performed only upon complete transcription of the audio segments.\\n* category refers to whether the entity is a PII or PHI data.\\n* confidence refers to the confidence that the speech it flagged for redaction/identification is truly PII. Confidence value ranges from 0 to 1 inclusive.\\n* type refers to the type of PII/PHI data that is identified. The current supported type values are: BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_NUMBER, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, PIN, EMAIL, ADDRESS, NAME, PHONE, SSN.\\n* type is only available in case of engine transcribe and not in medical transcribe\\n* type can be expected to change and grow as Transcribe evolves\\n* endTimeMs and startTimeMs are epoch timestamps in milliseconds\\n* Sample Redacted PII Data would look similar to this :\\n* \\\"Entities\\\": [\\n                {\\n                    \\\"Content\\\": \\\"[NAME]\\\",\\n                    \\\"Category\\\": \\\"PII\\\",\\n                    \\\"Type\\\": \\\"NAME\\\",\\n                    \\\"StartTime\\\" : 1636493289421,\\n                    \\\"EndTime\\\" : 1636493290016,\\n                    \\\"Confidence\\\": 0.9989\\n                }\\n            ]\\n* Sample PII Identified data would look similar to this :\\n* \\\"Entities\\\": [\\n                {\\n                    \\\"Content\\\": \\\"janet smithy\\\",\\n                    \\\"Category\\\": \\\"PII\\\",\\n                    \\\"Type\\\": \\\"NAME\\\",\\n                    \\\"StartTime\\\" : 1636493289421,\\n                    \\\"EndTime\\\" : 1636493290016,\\n                    \\\"Confidence\\\": 0.9989\\n                }\\n              ]\\n*/\\nclass TranscriptEntity {\\n}\\nexports[\\\"default\\\"] = TranscriptEntity;\\n//# sourceMappingURL=TranscriptEntity.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEntity.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEvent.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEvent.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.TranscriptEventConverter = void 0;\\nconst SignalingProtocol_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst Transcript_1 = __webpack_require__(/*! ./Transcript */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/Transcript.js\\\");\\nconst TranscriptionStatus_1 = __webpack_require__(/*! ./TranscriptionStatus */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatus.js\\\");\\nconst TranscriptionStatusType_1 = __webpack_require__(/*! ./TranscriptionStatusType */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatusType.js\\\");\\nconst TranscriptItemType_1 = __webpack_require__(/*! ./TranscriptItemType */ \\\"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItemType.js\\\");\\nconst TranscriptionStatusTypes = {\\n    [SignalingProtocol_1.SdkTranscriptionStatus.Type.STARTED]: TranscriptionStatusType_1.default.STARTED,\\n    [SignalingProtocol_1.SdkTranscriptionStatus.Type.INTERRUPTED]: TranscriptionStatusType_1.default.INTERRUPTED,\\n    [SignalingProtocol_1.SdkTranscriptionStatus.Type.RESUMED]: TranscriptionStatusType_1.default.RESUMED,\\n    [SignalingProtocol_1.SdkTranscriptionStatus.Type.STOPPED]: TranscriptionStatusType_1.default.STOPPED,\\n    [SignalingProtocol_1.SdkTranscriptionStatus.Type.FAILED]: TranscriptionStatusType_1.default.FAILED,\\n};\\nclass TranscriptEventConverter {\\n    /**\\n     * Decodes a list of TranscriptEvent from a data message.\\n     * @param dataMessage Data message to decode from\\n     * @returns List of TranscriptEvent\\n     * @throws {Error} If the data message payload cannot be decoded\\n     */\\n    static from(dataMessage) {\\n        let frame;\\n        try {\\n            frame = SignalingProtocol_1.SdkTranscriptFrame.decode(dataMessage.data);\\n        }\\n        catch (e) {\\n            throw new Error('Cannot decode transcript data message: ' + e);\\n        }\\n        const transcriptEvents = [];\\n        for (const sdkTranscriptEvent of frame.events) {\\n            if (sdkTranscriptEvent.status) {\\n                const transcriptionStatusType = TranscriptionStatusTypes[sdkTranscriptEvent.status.type];\\n                if (!transcriptionStatusType) {\\n                    continue;\\n                }\\n                const transcriptionStatus = new TranscriptionStatus_1.default();\\n                transcriptionStatus.type = transcriptionStatusType;\\n                transcriptionStatus.eventTimeMs = sdkTranscriptEvent.status.eventTime;\\n                transcriptionStatus.transcriptionRegion = sdkTranscriptEvent.status.transcriptionRegion;\\n                transcriptionStatus.transcriptionConfiguration =\\n                    sdkTranscriptEvent.status.transcriptionConfiguration;\\n                if (sdkTranscriptEvent.status.message) {\\n                    transcriptionStatus.message = sdkTranscriptEvent.status.message;\\n                }\\n                transcriptEvents.push(transcriptionStatus);\\n            }\\n            else if (sdkTranscriptEvent.transcript) {\\n                const transcript = new Transcript_1.default();\\n                transcript.results = [];\\n                for (const result of sdkTranscriptEvent.transcript.results) {\\n                    const transcriptResult = {\\n                        channelId: result.channelId,\\n                        isPartial: result.isPartial,\\n                        resultId: result.resultId,\\n                        startTimeMs: result.startTime,\\n                        endTimeMs: result.endTime,\\n                        alternatives: [],\\n                    };\\n                    if (result.languageCode) {\\n                        transcriptResult.languageCode = result.languageCode;\\n                    }\\n                    if (result.languageIdentification && result.languageIdentification.length > 0) {\\n                        transcriptResult.languageIdentification = [];\\n                        for (const languageIdentification of result.languageIdentification) {\\n                            const transcriptLanguageWithScore = {\\n                                languageCode: languageIdentification.languageCode,\\n                                score: languageIdentification.score,\\n                            };\\n                            transcriptResult.languageIdentification.push(transcriptLanguageWithScore);\\n                        }\\n                    }\\n                    for (const alternative of result.alternatives) {\\n                        const transcriptAlternative = {\\n                            items: [],\\n                            transcript: alternative.transcript,\\n                        };\\n                        for (const item of alternative.items) {\\n                            const transcriptItem = {\\n                                content: item.content,\\n                                attendee: {\\n                                    attendeeId: item.speakerAttendeeId,\\n                                    externalUserId: item.speakerExternalUserId,\\n                                },\\n                                startTimeMs: item.startTime,\\n                                endTimeMs: item.endTime,\\n                                type: null,\\n                            };\\n                            if (item.vocabularyFilterMatch) {\\n                                transcriptItem.vocabularyFilterMatch = item.vocabularyFilterMatch;\\n                            }\\n                            if (item.hasOwnProperty('stable')) {\\n                                transcriptItem.stable = item.stable;\\n                            }\\n                            if (item.hasOwnProperty('confidence')) {\\n                                transcriptItem.confidence = item.confidence;\\n                            }\\n                            switch (item.type) {\\n                                case SignalingProtocol_1.SdkTranscriptItem.Type.PRONUNCIATION:\\n                                    transcriptItem.type = TranscriptItemType_1.default.PRONUNCIATION;\\n                                    break;\\n                                case SignalingProtocol_1.SdkTranscriptItem.Type.PUNCTUATION:\\n                                    transcriptItem.type = TranscriptItemType_1.default.PUNCTUATION;\\n                                    break;\\n                            }\\n                            transcriptAlternative.items.push(transcriptItem);\\n                        }\\n                        for (const entity of alternative.entities) {\\n                            if (!transcriptAlternative.entities) {\\n                                transcriptAlternative.entities = [];\\n                            }\\n                            const transcriptEntity = {\\n                                category: entity.category,\\n                                confidence: entity.confidence,\\n                                content: entity.content,\\n                                startTimeMs: entity.startTime,\\n                                endTimeMs: entity.endTime,\\n                            };\\n                            if (entity.type) {\\n                                transcriptEntity.type = entity.type;\\n                            }\\n                            transcriptAlternative.entities.push(transcriptEntity);\\n                        }\\n                        transcriptResult.alternatives.push(transcriptAlternative);\\n                    }\\n                    transcript.results.push(transcriptResult);\\n                }\\n                transcriptEvents.push(transcript);\\n            }\\n        }\\n        return transcriptEvents;\\n    }\\n}\\nexports.TranscriptEventConverter = TranscriptEventConverter;\\n//# sourceMappingURL=TranscriptEvent.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptEvent.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItem.js\":\n/*!*****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItem.js ***!\n  \\*****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass TranscriptItem {\\n}\\nexports[\\\"default\\\"] = TranscriptItem;\\n//# sourceMappingURL=TranscriptItem.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItem.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItemType.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItemType.js ***!\n  \\*********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar TranscriptItemType;\\n(function (TranscriptItemType) {\\n    TranscriptItemType[\\\"PRONUNCIATION\\\"] = \\\"pronunciation\\\";\\n    TranscriptItemType[\\\"PUNCTUATION\\\"] = \\\"punctuation\\\";\\n})(TranscriptItemType || (TranscriptItemType = {}));\\nexports[\\\"default\\\"] = TranscriptItemType;\\n//# sourceMappingURL=TranscriptItemType.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptItemType.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptLanguageWithScore.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptLanguageWithScore.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/*\\n* When using automatic language identification for streaming transcription,\\n* Amazon Transcribe provides the language codes of the identified languages and their associated confidence scores.\\n* languageCode refers to one of language code from the set of languageOptions provided during start transcription call\\n* score refers to the confidence score is a value between zero and one; a larger value indicates a higher confidence in the identified language.\\n* Sample LanguageWithScore would look similar to this :\\n* \\\"LanguageIdentification\\\": [\\n                {\\n                    \\\"LanguageCode\\\": \\\"en-US\\\",\\n                    \\\"Score\\\": 0.805\\n                },\\n                {\\n                    \\\"LanguageCode\\\": \\\"ja-JP\\\",\\n                    \\\"Score\\\": 0.195\\n                }\\n            ]\\n*/\\nclass TranscriptLanguageWithScore {\\n}\\nexports[\\\"default\\\"] = TranscriptLanguageWithScore;\\n//# sourceMappingURL=TranscriptLanguageWithScore.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptLanguageWithScore.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptResult.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptResult.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass TranscriptResult {\\n}\\nexports[\\\"default\\\"] = TranscriptResult;\\n//# sourceMappingURL=TranscriptResult.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptResult.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatus.js\":\n/*!**********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatus.js ***!\n  \\**********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass TranscriptionStatus {\\n}\\nexports[\\\"default\\\"] = TranscriptionStatus;\\n//# sourceMappingURL=TranscriptionStatus.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatus.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatusType.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatusType.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar TranscriptionStatusType;\\n(function (TranscriptionStatusType) {\\n    TranscriptionStatusType[\\\"STARTED\\\"] = \\\"started\\\";\\n    TranscriptionStatusType[\\\"INTERRUPTED\\\"] = \\\"interrupted\\\";\\n    TranscriptionStatusType[\\\"RESUMED\\\"] = \\\"resumed\\\";\\n    TranscriptionStatusType[\\\"STOPPED\\\"] = \\\"stopped\\\";\\n    TranscriptionStatusType[\\\"FAILED\\\"] = \\\"failed\\\";\\n})(TranscriptionStatusType || (TranscriptionStatusType = {}));\\nexports[\\\"default\\\"] = TranscriptionStatusType;\\n//# sourceMappingURL=TranscriptionStatusType.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/transcript/TranscriptionStatusType.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/useragentparser/DefaultUserAgentParser.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/useragentparser/DefaultUserAgentParser.js ***!\n  \\******************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n// Use \\\"ua-parser-js\\\" over \\\"detect-browser\\\" to get more detailed information.\\nconst ua_parser_js_1 = __webpack_require__(/*! ua-parser-js */ \\\"./node_modules/ua-parser-js/src/ua-parser.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\n/**\\n * [[DefaultUserAgentParser]] uses UAParser to parse the browser's user agent.\\n * It is responsible to hold and provide browser, OS and device specific information.\\n */\\nclass DefaultUserAgentParser {\\n    constructor(logger) {\\n        var _a, _b, _c, _d, _e, _f, _g;\\n        try {\\n            this.parserResult =\\n                navigator && navigator.userAgent\\n                    ? new ua_parser_js_1.UAParser(navigator.userAgent).getResult()\\n                    : undefined;\\n        }\\n        catch (error) {\\n            /* istanbul ignore next */\\n            logger.error(error.message);\\n        }\\n        this.browserMajorVersion =\\n            ((_c = (_b = (_a = this.parserResult) === null || _a === void 0 ? void 0 : _a.browser) === null || _b === void 0 ? void 0 : _b.version) === null || _c === void 0 ? void 0 : _c.split('.')[0]) || DefaultUserAgentParser.UNAVAILABLE;\\n        this.browserName = ((_d = this.parserResult) === null || _d === void 0 ? void 0 : _d.browser.name) || DefaultUserAgentParser.UNAVAILABLE;\\n        this.browserVersion = ((_e = this.parserResult) === null || _e === void 0 ? void 0 : _e.browser.version) || DefaultUserAgentParser.UNAVAILABLE;\\n        this.deviceName =\\n            [((_f = this.parserResult) === null || _f === void 0 ? void 0 : _f.device.vendor) || '', ((_g = this.parserResult) === null || _g === void 0 ? void 0 : _g.device.model) || '']\\n                .join(' ')\\n                .trim() || DefaultUserAgentParser.UNAVAILABLE;\\n    }\\n    getParserResult() {\\n        var _a, _b;\\n        return {\\n            browserMajorVersion: this.browserMajorVersion,\\n            browserName: this.browserName,\\n            browserVersion: this.browserVersion,\\n            deviceName: this.deviceName,\\n            osName: ((_a = this.parserResult) === null || _a === void 0 ? void 0 : _a.os.name) || DefaultUserAgentParser.UNAVAILABLE,\\n            osVersion: ((_b = this.parserResult) === null || _b === void 0 ? void 0 : _b.os.version) || DefaultUserAgentParser.UNAVAILABLE,\\n            sdkVersion: Versioning_1.default.sdkVersion,\\n            sdkName: Versioning_1.default.sdkName,\\n        };\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultUserAgentParser;\\nDefaultUserAgentParser.UNAVAILABLE = 'Unavailable';\\n//# sourceMappingURL=DefaultUserAgentParser.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/useragentparser/DefaultUserAgentParser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/utils/PromiseQueue.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/utils/PromiseQueue.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * A simple promise queue to enforce the order of async APIs for example, start/stop video/audio input.\\n */\\nclass PromiseQueue {\\n    constructor() {\\n        this.queue = Promise.resolve();\\n    }\\n    // eslint-disable-next-line\\n    add(func) {\\n        return new Promise((resolve, reject) => {\\n            this.queue = this.queue.then(func).then(resolve).catch(reject);\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = PromiseQueue;\\n//# sourceMappingURL=PromiseQueue.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/utils/PromiseQueue.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/utils/Types.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.None = exports.Some = exports.Maybe = void 0;\\nclass Maybe {\\n    static of(value) {\\n        return value === undefined || value === null ? None.of() : Some.of(value);\\n    }\\n}\\nexports.Maybe = Maybe;\\nclass Some {\\n    constructor(value) {\\n        this.value = value;\\n        this.isSome = true;\\n        this.isNone = false;\\n    }\\n    map(f) {\\n        return Maybe.of(f(this.value));\\n    }\\n    flatMap(f) {\\n        return f(this.value);\\n    }\\n    get() {\\n        return this.value;\\n    }\\n    getOrElse(_value) {\\n        return this.value;\\n    }\\n    defaulting(value) {\\n        return Maybe.of(this.getOrElse(value));\\n    }\\n    static of(value) {\\n        if (value === null || value === undefined) {\\n            throw new Error('value is ${value}');\\n        }\\n        return new Some(value);\\n    }\\n}\\nexports.Some = Some;\\nclass None {\\n    constructor() {\\n        this.isSome = false;\\n        this.isNone = true;\\n    }\\n    get() {\\n        throw new Error('value is null');\\n    }\\n    getOrElse(value) {\\n        return value;\\n    }\\n    map(_f) {\\n        return new None();\\n    }\\n    flatMap(_f) {\\n        return new None();\\n    }\\n    defaulting(value) {\\n        return Maybe.of(this.getOrElse(value));\\n    }\\n    static of() {\\n        return new None();\\n    }\\n}\\nexports.None = None;\\n//# sourceMappingURL=Types.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/utils/Types.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/utils/Utils.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/utils/Utils.js ***!\n  \\***************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.toLowerCasePropertyNames = exports.isIFramed = exports.wait = void 0;\\nfunction wait(waitTimeMs) {\\n    return new Promise(resolve => setTimeout(resolve, waitTimeMs));\\n}\\nexports.wait = wait;\\n// This is impossible to adequately test in Node, so Istanbul ignore.\\n/* istanbul ignore next */\\nfunction isIFramed() {\\n    var _a;\\n    // Same-origin iframes can check `nodeName`.\\n    // We can also check whether the parent window and the top window are the same.\\n    // Cross-origin iframes will throw on the `parent` check, so catch here.\\n    try {\\n        return ((_a = window.frameElement) === null || _a === void 0 ? void 0 : _a.nodeName) === 'IFRAME' || parent !== top;\\n    }\\n    catch (e) {\\n        // Very likely to be a cross-origin iframe.\\n        return true;\\n    }\\n}\\nexports.isIFramed = isIFramed;\\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\\nfunction toLowerCasePropertyNames(input) {\\n    if (input === null) {\\n        return null;\\n    }\\n    else if (typeof input !== 'object') {\\n        return input;\\n    }\\n    else if (Array.isArray(input)) {\\n        return input.map(toLowerCasePropertyNames);\\n    }\\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    return Object.keys(input).reduce((result, key) => {\\n        const value = input[key];\\n        const newValue = typeof value === 'object' ? toLowerCasePropertyNames(value) : value;\\n        result[key.toLowerCase()] = newValue;\\n        return result;\\n    }, {});\\n}\\nexports.toLowerCasePropertyNames = toLowerCasePropertyNames;\\n//# sourceMappingURL=Utils.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/utils/Utils.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst version_1 = __webpack_require__(/*! ./version */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/version.js\\\");\\nclass Versioning {\\n    /**\\n     * Return string representation of SDK name\\n     */\\n    static get sdkName() {\\n        return 'amazon-chime-sdk-js';\\n    }\\n    /**\\n     * Return string representation of SDK version\\n     */\\n    static get sdkVersion() {\\n        return version_1.default.semverString;\\n    }\\n    /**\\n     * Returns the parts of the semver, so major/minor/patch can be extracted individually.\\n     */\\n    static get sdkVersionSemVer() {\\n        var _a, _b, _c, _d;\\n        const v = version_1.default.semverString.match(/^(?<major>[0-9]+)\\\\.(?<minor>[0-9]+)((?:\\\\.(?<patch>[0-9]+))(?:-(?<preRelease>[a-zA-Z]+(\\\\.[0-9])*))?)?/);\\n        return {\\n            major: (_a = v === null || v === void 0 ? void 0 : v.groups) === null || _a === void 0 ? void 0 : _a.major,\\n            minor: (_b = v === null || v === void 0 ? void 0 : v.groups) === null || _b === void 0 ? void 0 : _b.minor,\\n            patch: (_c = v === null || v === void 0 ? void 0 : v.groups) === null || _c === void 0 ? void 0 : _c.patch,\\n            preRelease: (_d = v === null || v === void 0 ? void 0 : v.groups) === null || _d === void 0 ? void 0 : _d.preRelease,\\n        };\\n    }\\n    /**\\n     * Return the SHA-1 of the Git commit from which this build was created.\\n     */\\n    static get buildSHA() {\\n        // Skip the leading 'g'.\\n        return version_1.default.hash.substr(1);\\n    }\\n    /**\\n     * Return low-resolution string representation of SDK user agent (e.g. `chrome-78`)\\n     */\\n    static get sdkUserAgentLowResolution() {\\n        const browserBehavior = new DefaultBrowserBehavior_1.default();\\n        return `${browserBehavior.name()}-${browserBehavior.majorVersion()}`;\\n    }\\n    /**\\n     * Return URL with versioning information appended\\n     */\\n    static urlWithVersion(url) {\\n        const urlWithVersion = new URL(url);\\n        urlWithVersion.searchParams.append(Versioning.X_AMZN_VERSION, Versioning.sdkVersion);\\n        urlWithVersion.searchParams.append(Versioning.X_AMZN_USER_AGENT, Versioning.sdkUserAgentLowResolution);\\n        return urlWithVersion.toString();\\n    }\\n}\\nexports[\\\"default\\\"] = Versioning;\\nVersioning.X_AMZN_VERSION = 'X-Amzn-Version';\\nVersioning.X_AMZN_USER_AGENT = 'X-Amzn-User-Agent';\\n//# sourceMappingURL=Versioning.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/versioning/version.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/versioning/version.js ***!\n  \\**********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports[\\\"default\\\"] = {\\n    \\\"hash\\\": \\\"e6cf38a\\\",\\n    \\\"raw\\\": \\\"v3.10.0\\\",\\n    \\\"semverString\\\": \\\"3.10.0\\\"\\n};\\n//# sourceMappingURL=version.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/versioning/version.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\":\n/*!************************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js ***!\n  \\************************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DefaultVideoCaptureAndEncodeParameter {\\n    constructor(cameraWidth, cameraHeight, cameraFrameRate, maxEncodeBitrateKbps, isSimulcast, scaleResolutionDownBy = 1) {\\n        this.cameraWidth = cameraWidth;\\n        this.cameraHeight = cameraHeight;\\n        this.cameraFrameRate = cameraFrameRate;\\n        this.maxEncodeBitrateKbps = maxEncodeBitrateKbps;\\n        this.isSimulcast = isSimulcast;\\n        this.scaleResolutionDownBy = scaleResolutionDownBy;\\n    }\\n    equal(other) {\\n        let checkForEqual = other.captureWidth() === this.cameraWidth &&\\n            other.captureHeight() === this.cameraHeight &&\\n            other.captureFrameRate() === this.cameraFrameRate &&\\n            other.encodeBitrates().length === this.encodeBitrates().length &&\\n            other.encodeScaleResolutionDownBy().length === this.encodeScaleResolutionDownBy().length &&\\n            other.encodeWidths().length === this.encodeWidths().length &&\\n            other.encodeHeights().length === this.encodeHeights().length;\\n        if (checkForEqual) {\\n            for (let i = 0; i < other.encodeWidths().length; i++) {\\n                if (other.encodeWidths()[i] !== this.encodeWidths()[i] ||\\n                    other.encodeHeights()[i] !== this.encodeHeights()[i] ||\\n                    other.encodeBitrates()[i] !== this.encodeBitrates()[i] ||\\n                    other.encodeScaleResolutionDownBy()[i] !== this.encodeScaleResolutionDownBy()[i]) {\\n                    checkForEqual = false;\\n                    return checkForEqual;\\n                }\\n            }\\n        }\\n        return checkForEqual;\\n    }\\n    clone() {\\n        return new DefaultVideoCaptureAndEncodeParameter(this.cameraWidth, this.cameraHeight, this.cameraFrameRate, this.maxEncodeBitrateKbps, this.isSimulcast, this.scaleResolutionDownBy);\\n    }\\n    captureWidth() {\\n        return this.cameraWidth;\\n    }\\n    captureHeight() {\\n        return this.cameraHeight;\\n    }\\n    captureFrameRate() {\\n        return this.cameraFrameRate;\\n    }\\n    encodeBitrates() {\\n        // TODO: add simulcast layer\\n        return [this.maxEncodeBitrateKbps];\\n    }\\n    encodeScaleResolutionDownBy() {\\n        return [this.scaleResolutionDownBy];\\n    }\\n    encodeWidths() {\\n        return [this.cameraWidth];\\n    }\\n    encodeHeights() {\\n        return [this.cameraHeight];\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoCaptureAndEncodeParameter;\\n//# sourceMappingURL=DefaultVideoCaptureAndEncodeParameter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ../videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\n/**\\n * [[AllHighestVideoBandwidthPolicy]] implements is a rudimentary policy that simply\\n * always subscribes to the highest quality video stream available\\n * for all non-self participants.\\n */\\nclass AllHighestVideoBandwidthPolicy {\\n    constructor(selfAttendeeId) {\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.reset();\\n    }\\n    reset() {\\n        this.optimalReceiveSet = new DefaultVideoStreamIdSet_1.default();\\n        this.subscribedReceiveSet = new DefaultVideoStreamIdSet_1.default();\\n        this.videoSources = undefined;\\n    }\\n    updateIndex(videoIndex) {\\n        this.videoIndex = videoIndex;\\n        this.optimalReceiveSet = this.calculateOptimalReceiveSet(videoIndex);\\n    }\\n    updateMetrics(_clientMetricReport) { }\\n    wantsResubscribe() {\\n        return !this.subscribedReceiveSet.equal(this.optimalReceiveSet);\\n    }\\n    chooseSubscriptions() {\\n        this.subscribedReceiveSet = this.optimalReceiveSet.clone();\\n        return this.subscribedReceiveSet.clone();\\n    }\\n    chooseRemoteVideoSources(videoSources) {\\n        this.videoSources = videoSources;\\n        this.optimalReceiveSet = this.calculateOptimalReceiveSet(this.videoIndex).clone();\\n    }\\n    calculateOptimalReceiveSet(videoIndex) {\\n        const streamSelectionSet = new DefaultVideoStreamIdSet_1.default();\\n        if (!this.videoIndex || this.videoIndex.allStreams().empty()) {\\n            return streamSelectionSet;\\n        }\\n        const receiveSet = videoIndex.highestQualityStreamFromEachGroupExcludingSelf(this.selfAttendeeId);\\n        // If video sources are not chosen, then return the default receive set.\\n        if (this.videoSources === undefined) {\\n            return receiveSet;\\n        }\\n        // Get the list of all the remote stream information\\n        const remoteInfos = this.videoIndex.remoteStreamDescriptions();\\n        const mapOfAttendeeIdToOptimalStreamId = new Map();\\n        for (const info of remoteInfos) {\\n            if (receiveSet.contain(info.streamId)) {\\n                mapOfAttendeeIdToOptimalStreamId.set(info.attendeeId, info.streamId);\\n            }\\n        }\\n        for (const videoSource of this.videoSources) {\\n            const attendeeId = videoSource.attendee.attendeeId;\\n            if (mapOfAttendeeIdToOptimalStreamId.has(attendeeId)) {\\n                streamSelectionSet.add(mapOfAttendeeIdToOptimalStreamId.get(attendeeId));\\n            }\\n        }\\n        return streamSelectionSet;\\n    }\\n}\\nexports[\\\"default\\\"] = AllHighestVideoBandwidthPolicy;\\n//# sourceMappingURL=AllHighestVideoBandwidthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/AllHighestVideoBandwidthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/NoVideoDownlinkBandwidthPolicy.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/NoVideoDownlinkBandwidthPolicy.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ../videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\nclass NoVideoDownlinkBandwidthPolicy {\\n    reset() { }\\n    updateIndex(_videoIndex) { }\\n    updateMetrics(_clientMetricReport) { }\\n    wantsResubscribe() {\\n        return false;\\n    }\\n    chooseSubscriptions() {\\n        return new DefaultVideoStreamIdSet_1.default();\\n    }\\n}\\nexports[\\\"default\\\"] = NoVideoDownlinkBandwidthPolicy;\\n//# sourceMappingURL=NoVideoDownlinkBandwidthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/NoVideoDownlinkBandwidthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js ***!\n  \\**************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.TargetDisplaySize = void 0;\\n/**\\n * [[TargetDisplaySize]] represents the max resolution that a video stream can have when simulcast is enabled in priority based downlink policy.\\n * If there is only one stream being sent, then this field will get ignored.  Its values currently parallel [[SimulcastLayers]].\\n */\\nvar TargetDisplaySize;\\n(function (TargetDisplaySize) {\\n    /**\\n     * Low resolution video stream.\\n     */\\n    TargetDisplaySize[TargetDisplaySize[\\\"Low\\\"] = 0] = \\\"Low\\\";\\n    /**\\n     * Medium resolution video stream.\\n     */\\n    TargetDisplaySize[TargetDisplaySize[\\\"Medium\\\"] = 1] = \\\"Medium\\\";\\n    /**\\n     * High resolution video stream.\\n     */\\n    TargetDisplaySize[TargetDisplaySize[\\\"High\\\"] = 2] = \\\"High\\\";\\n})(TargetDisplaySize = exports.TargetDisplaySize || (exports.TargetDisplaySize = {}));\\nexports[\\\"default\\\"] = TargetDisplaySize;\\n//# sourceMappingURL=TargetDisplaySize.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ContentShareConstants_1 = __webpack_require__(/*! ../contentsharecontroller/ContentShareConstants */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\\\");\\nconst VideoPreference_1 = __webpack_require__(/*! ./VideoPreference */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js\\\");\\nconst VideoPreferences_1 = __webpack_require__(/*! ./VideoPreferences */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js\\\");\\nconst VideoPriorityBasedPolicy_1 = __webpack_require__(/*! ./VideoPriorityBasedPolicy */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy.js\\\");\\nclass VideoAdaptiveProbePolicy extends VideoPriorityBasedPolicy_1.default {\\n    constructor(logger) {\\n        super(logger);\\n        this.logger = logger;\\n        super.shouldPauseTiles = false;\\n        this.videoPreferences = undefined;\\n    }\\n    reset() {\\n        super.reset();\\n        super.shouldPauseTiles = false;\\n        this.videoPreferences = undefined;\\n    }\\n    updateIndex(videoIndex) {\\n        super.updateIndex(videoIndex);\\n        const newPreferences = VideoPreferences_1.VideoPreferences.prepare();\\n        let containsContent = false;\\n        const remoteInfos = videoIndex.remoteStreamDescriptions();\\n        // If there is active content then set that as high priority, and the rest at lower\\n        for (const info of remoteInfos) {\\n            // I don't know why we need to do this duplicate check.\\n            if (!newPreferences.some(preference => preference.attendeeId === info.attendeeId)) {\\n                // For now always subscribe to content even if higher bandwidth then target\\n                if (info.attendeeId.endsWith(ContentShareConstants_1.default.Modality)) {\\n                    newPreferences.add(new VideoPreference_1.default(info.attendeeId, 1));\\n                    containsContent = true;\\n                }\\n                else {\\n                    newPreferences.add(new VideoPreference_1.default(info.attendeeId, 2));\\n                }\\n            }\\n        }\\n        if (containsContent) {\\n            this.videoPreferences = newPreferences.build();\\n            this.videoPreferencesUpdated = true;\\n        }\\n        else {\\n            this.videoPreferences = undefined;\\n        }\\n    }\\n    /**\\n     * [[VideoAdaptiveProbePolicy]] does not allow setting video preferences and this function\\n     * will be a no-op.  Please use [[VideoPriorityBasedPolicy]] directly if you would like to set\\n     * preferences.\\n     */\\n    chooseRemoteVideoSources(_preferences) {\\n        this.logger.error('chooseRemoteVideoSources should not be called by VideoAdaptiveProbePolicy');\\n        return;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoAdaptiveProbePolicy;\\n//# sourceMappingURL=VideoAdaptiveProbePolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoAdaptiveProbePolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst TargetDisplaySize_1 = __webpack_require__(/*! ./TargetDisplaySize */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js\\\");\\nclass VideoPreference {\\n    /** Initializes a [[VideoPreference]] with the given properties.\\n     *\\n     * @param attendeeId Attendee ID of the client\\n     * @param priority The relative priority of this attendee against others.\\n     * @param targetSize The desired maximum simulcast layers to receive.\\n     */\\n    constructor(attendeeId, priority, targetSize) {\\n        this.attendeeId = attendeeId;\\n        this.priority = priority;\\n        this.targetSize = targetSize !== undefined ? targetSize : TargetDisplaySize_1.default.High;\\n    }\\n    partialCompare(other) {\\n        return this.priority - other.priority;\\n    }\\n    equals(other) {\\n        return (this.attendeeId === other.attendeeId &&\\n            this.targetSize === other.targetSize &&\\n            this.priority === other.priority);\\n    }\\n    clone() {\\n        return new VideoPreference(this.attendeeId, this.priority, this.targetSize);\\n    }\\n    targetSizeToBitrateKbps(targetSize) {\\n        switch (targetSize) {\\n            case TargetDisplaySize_1.default.High:\\n                return VideoPreference.HIGH_BITRATE_KBPS;\\n            case TargetDisplaySize_1.default.Medium:\\n                return VideoPreference.MID_BITRATE_KBPS;\\n            case TargetDisplaySize_1.default.Low:\\n                return VideoPreference.LOW_BITRATE_KBPS;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VideoPreference;\\nVideoPreference.LOW_BITRATE_KBPS = 300;\\nVideoPreference.MID_BITRATE_KBPS = 600;\\nVideoPreference.HIGH_BITRATE_KBPS = 1200;\\n//# sourceMappingURL=VideoPreference.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js\":\n/*!*************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js ***!\n  \\*************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.VideoPreferences = exports.MutableVideoPreferences = void 0;\\nclass ObjectSet {\\n    constructor(items = []) {\\n        this.items = items;\\n    }\\n    static default() {\\n        return new ObjectSet([]);\\n    }\\n    // Returns the items in sorted order.\\n    [Symbol.iterator]() {\\n        let i = 0;\\n        const items = this.items;\\n        return {\\n            next() {\\n                if (i < items.length) {\\n                    return {\\n                        done: false,\\n                        value: items[i++],\\n                    };\\n                }\\n                return {\\n                    done: true,\\n                    value: null,\\n                };\\n            },\\n        };\\n    }\\n    first() {\\n        return this.items[0];\\n    }\\n    add(item) {\\n        // If this is used elsewhere, there needs to be a duplicate check here\\n        this.items.push(item);\\n    }\\n    replaceFirst(newItem, f) {\\n        const pos = this.items.findIndex(f);\\n        if (pos === -1) {\\n            // If this is used elsewhere, there needs to be a duplicate check here\\n            this.items.push(newItem);\\n        }\\n        else if (!this.has(newItem)) {\\n            this.items[pos] = newItem;\\n        }\\n        else {\\n            this.items.splice(pos, 1);\\n        }\\n    }\\n    remove(item) {\\n        this.items = this.items.filter(a => !a.equals(item));\\n    }\\n    clear() {\\n        this.items = [];\\n    }\\n    isEmpty() {\\n        return this.items.length === 0;\\n    }\\n    equals(other) {\\n        if (other === this) {\\n            return true;\\n        }\\n        if (other.items.length !== this.items.length) {\\n            return false;\\n        }\\n        // TODO: if we keep the arrays sorted correctly, not just by priority, then\\n        // we don't need to do this painstaking O(n^2) work.\\n        for (const item of this.items) {\\n            if (!other.items.some(a => a.equals(item))) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    has(item) {\\n        return this.items.some(a => a.equals(item));\\n    }\\n    some(f) {\\n        return this.items.some(f);\\n    }\\n    clone() {\\n        return new ObjectSet([...this.items]);\\n    }\\n    sort() {\\n        this.items.sort((a, b) => a.partialCompare(b));\\n    }\\n    modify() {\\n        // COW.\\n        return new SetBuilder(this);\\n    }\\n}\\nclass SetBuilder {\\n    constructor(items = new ObjectSet()) {\\n        this.items = items;\\n        this.copied = false;\\n    }\\n    cow() {\\n        if (this.copied) {\\n            return;\\n        }\\n        this.items = this.items.clone();\\n        this.copied = true;\\n    }\\n    add(item) {\\n        // Don't actually need to COW unless the item is there to add.\\n        if (this.items.has(item)) {\\n            return;\\n        }\\n        this.cow();\\n        this.items.add(item);\\n    }\\n    replaceFirst(newItem, f) {\\n        // Don't actually need to COW unless the item is already there\\n        // and there are no items to replace\\n        if (this.items.has(newItem) && !this.items.some(f)) {\\n            return;\\n        }\\n        this.cow();\\n        this.items.replaceFirst(newItem, f);\\n    }\\n    remove(item) {\\n        // Don't actually need to COW unless the item is there to remove.\\n        if (!this.items.has(item)) {\\n            return;\\n        }\\n        this.cow();\\n        this.items.remove(item);\\n    }\\n    some(f) {\\n        return this.items.some(f);\\n    }\\n    clear() {\\n        if (this.items.isEmpty()) {\\n            return;\\n        }\\n        this.cow();\\n        this.items.clear();\\n    }\\n    build() {\\n        // Immutable sets are always kept sorted!\\n        if (this.copied) {\\n            this.items.sort();\\n        }\\n        this.copied = false;\\n        return this.items;\\n    }\\n}\\nclass MutableVideoPreferences {\\n    constructor(builder) {\\n        this.builder = builder;\\n    }\\n    add(pref) {\\n        this.builder.add(pref);\\n    }\\n    replaceFirst(newPref, f) {\\n        this.builder.replaceFirst(newPref, f);\\n    }\\n    remove(pref) {\\n        this.builder.remove(pref);\\n    }\\n    some(f) {\\n        return this.builder.some(f);\\n    }\\n    clear() {\\n        this.builder.clear();\\n    }\\n    build() {\\n        return new VideoPreferences(this.builder.build());\\n    }\\n}\\nexports.MutableVideoPreferences = MutableVideoPreferences;\\nclass VideoPreferences {\\n    /** @internal */\\n    constructor(items) {\\n        this.items = items;\\n    }\\n    static prepare() {\\n        return new MutableVideoPreferences(new SetBuilder());\\n    }\\n    static default() {\\n        return new VideoPreferences(ObjectSet.default());\\n    }\\n    [Symbol.iterator]() {\\n        return this.items[Symbol.iterator]();\\n    }\\n    highestPriority() {\\n        var _a;\\n        return (_a = this.items.first()) === null || _a === void 0 ? void 0 : _a.priority;\\n    }\\n    // Our items happen to always be sorted!\\n    sorted() {\\n        return this.items[Symbol.iterator]();\\n    }\\n    equals(other) {\\n        return other === this || this.items.equals(other.items);\\n    }\\n    modify() {\\n        return new MutableVideoPreferences(this.items.modify());\\n    }\\n    some(f) {\\n        return this.items.some(f);\\n    }\\n    isEmpty() {\\n        return this.items.isEmpty();\\n    }\\n    clone() {\\n        const videoPreferences = VideoPreferences.prepare();\\n        for (const preference of this.items) {\\n            videoPreferences.add(preference.clone());\\n        }\\n        return videoPreferences.build();\\n    }\\n}\\nexports.VideoPreferences = VideoPreferences;\\nexports[\\\"default\\\"] = VideoPreferences;\\n//# sourceMappingURL=VideoPreferences.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy.js ***!\n  \\*********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ClientMetricReportDirection_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportDirection */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportDirection.js\\\");\\nconst ClientMetricReportMediaType_1 = __webpack_require__(/*! ../clientmetricreport/ClientMetricReportMediaType */ \\\"./node_modules/amazon-chime-sdk-js/build/clientmetricreport/ClientMetricReportMediaType.js\\\");\\nconst ContentShareConstants_1 = __webpack_require__(/*! ../contentsharecontroller/ContentShareConstants */ \\\"./node_modules/amazon-chime-sdk-js/build/contentsharecontroller/ContentShareConstants.js\\\");\\nconst LogLevel_1 = __webpack_require__(/*! ../logger/LogLevel */ \\\"./node_modules/amazon-chime-sdk-js/build/logger/LogLevel.js\\\");\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ../signalingclient/ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ../videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\nconst TargetDisplaySize_1 = __webpack_require__(/*! ./TargetDisplaySize */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/TargetDisplaySize.js\\\");\\nconst VideoPreference_1 = __webpack_require__(/*! ./VideoPreference */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreference.js\\\");\\nconst VideoPreferences_1 = __webpack_require__(/*! ./VideoPreferences */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPreferences.js\\\");\\nconst VideoPriorityBasedPolicyConfig_1 = __webpack_require__(/*! ./VideoPriorityBasedPolicyConfig */ \\\"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig.js\\\");\\n/** @internal */\\nclass LinkMediaStats {\\n    constructor() {\\n        this.bandwidthEstimateKbps = 0;\\n        this.usedBandwidthKbps = 0;\\n        this.packetsLost = 0;\\n        this.nackCount = 0;\\n        this.rttMs = 0;\\n    }\\n}\\nclass VideoPriorityBasedPolicy {\\n    constructor(logger, videoPriorityBasedPolicyConfig = VideoPriorityBasedPolicyConfig_1.default.Default) {\\n        this.logger = logger;\\n        this.videoPriorityBasedPolicyConfig = videoPriorityBasedPolicyConfig;\\n        this.shouldPauseTiles = true;\\n        this.observerQueue = new Set();\\n        this.pausedBwAttendeeIds = new Set();\\n        this.reset();\\n    }\\n    reset() {\\n        this.optimalReceiveSet = new DefaultVideoStreamIdSet_1.default();\\n        this.optimalReceiveStreams = [];\\n        this.optimalNonPausedReceiveStreams = [];\\n        this.subscribedReceiveSet = new DefaultVideoStreamIdSet_1.default();\\n        this.subscribedReceiveStreams = [];\\n        this.videoPreferences = undefined;\\n        this.defaultVideoPreferences = undefined;\\n        this.shouldPauseTiles = true;\\n        this.pausedStreamIds = new DefaultVideoStreamIdSet_1.default();\\n        this.pausedBwAttendeeIds = new Set();\\n        this.videoPreferencesUpdated = false;\\n        this.logCount = 0;\\n        this.startupPeriod = true;\\n        this.usingPrevTargetRate = false;\\n        this.rateProbeState = \\\"Not Probing\\\" /* NotProbing */;\\n        this.firstEstimateTimestamp = 0;\\n        this.lastUpgradeRateKbps = 0;\\n        this.timeBeforeAllowSubscribeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS;\\n        this.lastProbeTimestamp = Date.now();\\n        this.timeBeforeAllowProbeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS;\\n        this.downlinkStats = new LinkMediaStats();\\n        this.prevDownlinkStats = new LinkMediaStats();\\n        this.probeFailed = false;\\n        this.serverSideNetworkAdaption = this.videoPriorityBasedPolicyConfig.serverSideNetworkAdaption;\\n    }\\n    bindToTileController(tileController) {\\n        this.tileController = tileController;\\n        this.logger.info('tileController bound');\\n    }\\n    // This function allows setting preferences without the need to inherit from this class\\n    // which would require not using the internal keyword\\n    chooseRemoteVideoSources(preferences) {\\n        var _a;\\n        if ((_a = this.videoPreferences) === null || _a === void 0 ? void 0 : _a.equals(preferences)) {\\n            return;\\n        }\\n        this.videoPreferences = preferences === null || preferences === void 0 ? void 0 : preferences.clone();\\n        this.videoPreferencesUpdated = true;\\n        this.logger.info(`bwe: setVideoPreferences bwe: new preferences: ${JSON.stringify(preferences)}`);\\n        return;\\n    }\\n    updateIndex(videoIndex) {\\n        this.videoIndex = videoIndex;\\n        if (!this.videoPreferences) {\\n            this.updateDefaultVideoPreferences();\\n        }\\n    }\\n    updateDefaultVideoPreferences() {\\n        const attendeeIds = new Set();\\n        for (const stream of this.videoIndex.remoteStreamDescriptions()) {\\n            attendeeIds.add(stream.attendeeId);\\n        }\\n        const prefs = VideoPreferences_1.VideoPreferences.prepare();\\n        const numAttendees = attendeeIds.size;\\n        let targetDisplaySize = TargetDisplaySize_1.default.High;\\n        if (numAttendees > 8) {\\n            targetDisplaySize = TargetDisplaySize_1.default.Low;\\n        }\\n        else if (numAttendees > 4) {\\n            targetDisplaySize = TargetDisplaySize_1.default.Medium;\\n        }\\n        for (const attendeeId of attendeeIds) {\\n            prefs.add(new VideoPreference_1.default(attendeeId, 1, targetDisplaySize));\\n        }\\n        this.defaultVideoPreferences = prefs.build();\\n    }\\n    updateMetrics(clientMetricReport) {\\n        if (!this.videoIndex || this.videoIndex.allStreams().empty()) {\\n            return;\\n        }\\n        this.prevDownlinkStats = this.downlinkStats;\\n        this.downlinkStats = new LinkMediaStats();\\n        const metricReport = clientMetricReport.getObservableMetrics();\\n        // availableIncomingBitrate is the standard stat but is not available in Firefox yet so only Safari for now.\\n        this.downlinkStats.bandwidthEstimateKbps = metricReport.availableIncomingBitrate / 1000;\\n        for (const ssrcStr in clientMetricReport.streamMetricReports) {\\n            const ssrc = Number.parseInt(ssrcStr, 10);\\n            const metrics = clientMetricReport.streamMetricReports[ssrc];\\n            if (metrics.direction === ClientMetricReportDirection_1.default.DOWNSTREAM && metrics.mediaType === ClientMetricReportMediaType_1.default.VIDEO) {\\n                // Only use video stream metrics\\n                if (metrics.currentMetrics.hasOwnProperty('nackCount')) {\\n                    this.downlinkStats.nackCount += clientMetricReport.countPerSecond('nackCount', ssrc);\\n                }\\n                if (metrics.currentMetrics.hasOwnProperty('packetsLost')) {\\n                    this.downlinkStats.packetsLost += clientMetricReport.countPerSecond('packetsLost', ssrc);\\n                }\\n                if (metrics.currentMetrics.hasOwnProperty('bytesReceived')) {\\n                    this.downlinkStats.usedBandwidthKbps +=\\n                        clientMetricReport.bitsPerSecond('bytesReceived', ssrc) / 1000;\\n                }\\n            }\\n        }\\n    }\\n    wantsResubscribe() {\\n        this.calculateOptimalReceiveSet();\\n        return !this.subscribedReceiveSet.equal(this.optimalReceiveSet);\\n    }\\n    chooseSubscriptions() {\\n        if (!this.subscribedReceiveSet.equal(this.optimalReceiveSet)) {\\n            this.lastSubscribeTimestamp = Date.now();\\n        }\\n        this.subscribedReceiveSet = this.optimalReceiveSet.clone();\\n        this.subscribedReceiveStreams = this.optimalReceiveStreams.slice();\\n        return this.subscribedReceiveSet.clone();\\n    }\\n    addObserver(observer) {\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.observerQueue.delete(observer);\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            observerFunc(observer);\\n        }\\n    }\\n    setVideoPriorityBasedPolicyConfigs(config) {\\n        this.videoPriorityBasedPolicyConfig = config;\\n    }\\n    calculateOptimalReceiveStreams() {\\n        var _a;\\n        const chosenStreams = [];\\n        const remoteInfos = this.videoIndex.remoteStreamDescriptions();\\n        if (remoteInfos.length === 0 || ((_a = this.videoPreferences) === null || _a === void 0 ? void 0 : _a.isEmpty())) {\\n            this.optimalReceiveStreams = [];\\n            return;\\n        }\\n        const lastProbeState = this.rateProbeState;\\n        this.cleanBwPausedTiles(remoteInfos);\\n        this.handleAppPausedStreams(chosenStreams, remoteInfos);\\n        const sameStreamChoices = this.availStreamsSameAsLast(remoteInfos);\\n        const noMajorChange = !this.startupPeriod && sameStreamChoices;\\n        // If no major changes then don't allow subscribes for the allowed amount of time\\n        if (noMajorChange &&\\n            Date.now() - this.lastSubscribeTimestamp < this.timeBeforeAllowSubscribeMs) {\\n            return;\\n        }\\n        // Sort streams by bitrate ascending.\\n        remoteInfos.sort((a, b) => {\\n            if (a.maxBitrateKbps === b.maxBitrateKbps) {\\n                return a.streamId - b.streamId;\\n            }\\n            return a.maxBitrateKbps - b.maxBitrateKbps;\\n        });\\n        // Convert 0 avg bitrates to max and handle special cases\\n        for (const info of remoteInfos) {\\n            if (info.avgBitrateKbps === 0 || info.avgBitrateKbps > info.maxBitrateKbps) {\\n                // Content can be a special case\\n                if (info.attendeeId.endsWith(ContentShareConstants_1.default.Modality) && info.maxBitrateKbps < 100) {\\n                    info.maxBitrateKbps = info.avgBitrateKbps;\\n                }\\n                else {\\n                    info.avgBitrateKbps = info.maxBitrateKbps;\\n                }\\n            }\\n        }\\n        const rates = {\\n            targetDownlinkBitrate: 0,\\n            chosenTotalBitrate: 0,\\n            deltaToNextUpgrade: 0,\\n        };\\n        rates.targetDownlinkBitrate = this.determineTargetRate();\\n        const numberOfParticipants = this.subscribedReceiveSet.size();\\n        const currentEstimated = this.downlinkStats.bandwidthEstimateKbps;\\n        // Use videoPriorityBasedPolicyConfig to add additional delays based on network conditions\\n        const dontAllowSubscribe = !this.videoPriorityBasedPolicyConfig.allowSubscribe(numberOfParticipants, currentEstimated);\\n        if (this.probeFailed) {\\n            // When probe failed, we set timeBeforeAllowSubscribeMs to 3x longer\\n            // Since we have passed the subscribe interval now, we will try to probe again\\n            this.probeFailed = false;\\n            // For the same reason above, reset time before allow subscribe to default\\n            this.timeBeforeAllowSubscribeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS;\\n            if (noMajorChange && dontAllowSubscribe)\\n                return;\\n        }\\n        const upgradeStream = this.priorityPolicy(rates, remoteInfos, chosenStreams);\\n        const skipProbe = this.serverSideNetworkAdaption !== ServerSideNetworkAdaption_1.default.None &&\\n            this.serverSideNetworkAdaption !== ServerSideNetworkAdaption_1.default.Default;\\n        let subscriptionChoice = 0 /* NewOptimal */;\\n        // Look for probing or override opportunities\\n        if (!skipProbe && !this.startupPeriod && sameStreamChoices) {\\n            if (this.rateProbeState === \\\"Probing\\\" /* Probing */) {\\n                subscriptionChoice = this.handleProbe(chosenStreams, rates.targetDownlinkBitrate);\\n            }\\n            else if (rates.deltaToNextUpgrade !== 0) {\\n                subscriptionChoice = this.maybeOverrideOrProbe(chosenStreams, rates, upgradeStream);\\n            }\\n        }\\n        else {\\n            // If there was a change in streams to choose from, then cancel any probing or upgrades\\n            this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n            this.lastUpgradeRateKbps = 0;\\n        }\\n        this.prevRemoteInfos = remoteInfos;\\n        this.videoPreferencesUpdated = false;\\n        if (subscriptionChoice === 1 /* PreviousOptimal */) {\\n            this.logger.info(`bwe: keepSameSubscriptions stats:${JSON.stringify(this.downlinkStats)}`);\\n            this.prevTargetRateKbps = rates.targetDownlinkBitrate;\\n            return;\\n        }\\n        if (subscriptionChoice === 2 /* PreProbe */) {\\n            const subscribedRate = this.calculateSubscribeRate(this.preProbeNonPausedReceiveStreams);\\n            this.optimalReceiveStreams = this.preProbeReceiveStreams.slice();\\n            this.processBwPausedStreams(remoteInfos, this.preProbeNonPausedReceiveStreams);\\n            this.logger.info('bwe: Use Pre-Probe subscription subscribedRate:' + subscribedRate);\\n            return;\\n        }\\n        this.optimalNonPausedReceiveStreams = chosenStreams.slice();\\n        const lastNumberPaused = this.pausedBwAttendeeIds.size;\\n        this.processBwPausedStreams(remoteInfos, chosenStreams);\\n        if (this.logger.getLogLevel() <= LogLevel_1.LogLevel.INFO &&\\n            (this.logCount % 15 === 0 ||\\n                this.rateProbeState !== lastProbeState ||\\n                this.optimalReceiveStreams.length !== chosenStreams.length ||\\n                lastNumberPaused !== this.pausedBwAttendeeIds.size)) {\\n            this.logger.info(this.policyStateLogStr(remoteInfos, rates.targetDownlinkBitrate));\\n            this.logCount = 0;\\n        }\\n        this.logCount++;\\n        this.prevTargetRateKbps = rates.targetDownlinkBitrate;\\n        this.optimalReceiveStreams = chosenStreams.slice();\\n    }\\n    calculateOptimalReceiveSet() {\\n        const streamSelectionSet = new DefaultVideoStreamIdSet_1.default();\\n        this.calculateOptimalReceiveStreams();\\n        for (const stream of this.optimalReceiveStreams) {\\n            streamSelectionSet.add(stream.streamId);\\n        }\\n        if (!this.optimalReceiveSet.equal(streamSelectionSet)) {\\n            const subscribedRate = this.calculateSubscribeRate(this.optimalReceiveStreams);\\n            this.logger.info(`bwe: new streamSelection: ${JSON.stringify(streamSelectionSet)} subscribedRate:${subscribedRate}`);\\n        }\\n        this.optimalReceiveSet = streamSelectionSet;\\n    }\\n    determineTargetRate() {\\n        let targetBitrate = 0;\\n        const now = Date.now();\\n        // Startup phase handling.  During this period the estimate can be 0 or\\n        // could still be slowly hunting for a steady state.  This startup ramp up\\n        // can cause a series of subscribes which can be distracting. During this\\n        // time just use our configured default value\\n        if (this.downlinkStats.bandwidthEstimateKbps !== 0) {\\n            if (this.firstEstimateTimestamp === 0) {\\n                this.firstEstimateTimestamp = now;\\n            }\\n            // handle startup state where estimator is still converging.\\n            if (this.startupPeriod) {\\n                // Drop out of startup period if\\n                // - estimate is above default\\n                // - get packet loss and have a valid estimate\\n                // - startup period has expired and rate is not still increasing\\n                if (this.downlinkStats.bandwidthEstimateKbps >\\n                    VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS ||\\n                    this.downlinkStats.packetsLost > 0 ||\\n                    (now - this.firstEstimateTimestamp > VideoPriorityBasedPolicy.STARTUP_PERIOD_MS &&\\n                        this.downlinkStats.bandwidthEstimateKbps <=\\n                            this.prevDownlinkStats.bandwidthEstimateKbps)) {\\n                    this.startupPeriod = false;\\n                    this.prevTargetRateKbps = this.downlinkStats.bandwidthEstimateKbps;\\n                }\\n            }\\n            // If we are in the startup period and we haven't detected any packet loss, then\\n            // keep it at the default to let the estimation get to a steady state\\n            if (this.startupPeriod) {\\n                targetBitrate = VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS;\\n            }\\n            else {\\n                // We rely on our target bitrate being above what we are receiving to mark a probe as complete,\\n                // however in browsers, the estimate can heavily lag behind the actual receive rate, especially when low.\\n                //\\n                // To mitigate this we override with the actual estimate plus some buffer if we aren't seeing packet loss.\\n                if (this.rateProbeState === \\\"Probing\\\" /* Probing */ &&\\n                    this.downlinkStats.usedBandwidthKbps > this.downlinkStats.bandwidthEstimateKbps &&\\n                    this.downlinkStats.packetsLost < VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD) {\\n                    this.logger.info(`bwe: In probe state, overriding estimate ${this.downlinkStats.bandwidthEstimateKbps} with actual receive bitrate ${this.downlinkStats.usedBandwidthKbps}`);\\n                    targetBitrate =\\n                        this.downlinkStats.usedBandwidthKbps +\\n                            VideoPriorityBasedPolicy.USED_BANDWIDTH_OVERRIDE_BUFFER_KBPS;\\n                }\\n                else {\\n                    targetBitrate = this.downlinkStats.bandwidthEstimateKbps;\\n                }\\n            }\\n        }\\n        else {\\n            if (this.firstEstimateTimestamp === 0) {\\n                targetBitrate = VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS;\\n            }\\n            else {\\n                targetBitrate = this.prevTargetRateKbps;\\n            }\\n        }\\n        // Estimated downlink rate can follow actual bandwidth or fall for a short period of time\\n        // due to the absolute send time estimator incorrectly thinking that a delay in packets is\\n        // a precursor to packet loss.  We have seen too many false positives on this, so we\\n        // will ignore largish drops in the estimate if there is no packet loss\\n        if (!this.startupPeriod &&\\n            ((this.usingPrevTargetRate &&\\n                this.downlinkStats.bandwidthEstimateKbps < this.prevTargetRateKbps) ||\\n                this.downlinkStats.bandwidthEstimateKbps <\\n                    (this.prevTargetRateKbps *\\n                        (100 - VideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT)) /\\n                        100 ||\\n                this.downlinkStats.bandwidthEstimateKbps <\\n                    (this.downlinkStats.usedBandwidthKbps *\\n                        VideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT) /\\n                        100) &&\\n            this.downlinkStats.packetsLost === 0) {\\n            // Set target to be the same as last\\n            this.logger.debug(() => {\\n                return 'bwe: ValidateRate: Using Previous rate ' + this.prevTargetRateKbps;\\n            });\\n            this.usingPrevTargetRate = true;\\n            targetBitrate = this.prevTargetRateKbps;\\n        }\\n        else {\\n            this.usingPrevTargetRate = false;\\n        }\\n        return targetBitrate;\\n    }\\n    setProbeState(newState) {\\n        if (this.rateProbeState === newState) {\\n            return false;\\n        }\\n        const now = Date.now();\\n        switch (newState) {\\n            case \\\"Not Probing\\\" /* NotProbing */:\\n                this.probePendingStartTimestamp = 0;\\n                break;\\n            case \\\"Probe Pending\\\" /* ProbePending */:\\n                if (this.lastProbeTimestamp === 0 ||\\n                    now - this.lastProbeTimestamp > VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS) {\\n                    this.probePendingStartTimestamp = now;\\n                }\\n                else {\\n                    // Too soon to do a probe again\\n                    return false;\\n                }\\n                break;\\n            case \\\"Probing\\\" /* Probing */:\\n                if (now - this.probePendingStartTimestamp > this.timeBeforeAllowProbeMs) {\\n                    this.lastProbeTimestamp = now;\\n                    this.preProbeReceiveStreams = this.subscribedReceiveStreams.slice();\\n                    this.preProbeNonPausedReceiveStreams = this.optimalNonPausedReceiveStreams;\\n                    // Increase the time allowed until the next probe\\n                    this.timeBeforeAllowProbeMs = Math.min(this.timeBeforeAllowProbeMs * 2, VideoPriorityBasedPolicy.MAX_HOLD_BEFORE_PROBE_MS);\\n                }\\n                else {\\n                    // Too soon to do probe\\n                    return false;\\n                }\\n                break;\\n        }\\n        this.logger.info('bwe: setProbeState to ' + newState + ' from ' + this.rateProbeState);\\n        this.rateProbeState = newState;\\n        return true;\\n    }\\n    // Upgrade the stream id from the appropriate group or add it if it wasn't already in the list.\\n    // Return the added amount of bandwidth\\n    upgradeToStream(chosenStreams, upgradeStream) {\\n        for (let i = 0; i < chosenStreams.length; i++) {\\n            if (chosenStreams[i].groupId === upgradeStream.groupId) {\\n                const diffRate = upgradeStream.avgBitrateKbps - chosenStreams[i].avgBitrateKbps;\\n                this.logger.info('bwe: upgradeStream from ' + JSON.stringify(chosenStreams[i]) + ' to ' + upgradeStream);\\n                this.lastUpgradeRateKbps = diffRate;\\n                chosenStreams[i] = upgradeStream;\\n                return diffRate;\\n            }\\n        }\\n        // We are adding a stream and not upgrading.\\n        chosenStreams.push(upgradeStream);\\n        this.lastUpgradeRateKbps = upgradeStream.avgBitrateKbps;\\n        return this.lastUpgradeRateKbps;\\n    }\\n    // Do specific behavior while we are currently in probing state and metrics\\n    // indicate environment is still valid to do probing.\\n    // Return true if the caller should not change from the previous subscriptions.\\n    handleProbe(chosenStreams, targetDownlinkBitrate) {\\n        // Don't allow probe to happen indefinitely\\n        if (Date.now() - this.lastProbeTimestamp > VideoPriorityBasedPolicy.MAX_ALLOWED_PROBE_TIME_MS) {\\n            this.logger.info(`bwe: Canceling probe due to timeout`);\\n            this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n            return 0 /* NewOptimal */;\\n        }\\n        if (this.downlinkStats.packetsLost > 0) {\\n            this.logger.info(`bwe: Probe encountering packets lost:${this.downlinkStats.packetsLost}`);\\n            // See comment above `VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD`\\n            if (this.downlinkStats.packetsLost > VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD) {\\n                this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n                this.logger.info(`bwe: Canceling probe due to packets lost:${this.downlinkStats.packetsLost}`);\\n                this.probeFailed = true;\\n                this.timeBeforeAllowSubscribeMs =\\n                    Math.max(VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS, this.timeBeforeAllowSubscribeMs) * 3;\\n                // packet lost indicates bad network and thus slowing down subscribing by extend delay by 3 times\\n                return 2 /* PreProbe */;\\n            }\\n        }\\n        const subscribedRate = this.calculateSubscribeRate(this.optimalReceiveStreams);\\n        if (this.chosenStreamsSameAsLast(chosenStreams) || targetDownlinkBitrate > subscribedRate) {\\n            this.logger.info(`bwe: Probe successful`);\\n            // If target bitrate can sustain probe rate, then probe was successful.\\n            this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n            // Reset the time allowed between probes since this was successful\\n            this.timeBeforeAllowProbeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS;\\n            return 0 /* NewOptimal */;\\n        }\\n        return 1 /* PreviousOptimal */;\\n    }\\n    maybeOverrideOrProbe(chosenStreams, rates, upgradeStream) {\\n        const sameSubscriptions = this.chosenStreamsSameAsLast(chosenStreams);\\n        let useLastSubscriptions = 0 /* NewOptimal */;\\n        // We want to minimize thrashing between between low res and high res of different\\n        // participants due to avg bitrate fluctuations. If there hasn't been much of a change in estimated bandwidth\\n        // and the number of streams and their max rates are the same, then reuse the previous subscription\\n        const triggerPercent = rates.targetDownlinkBitrate > VideoPriorityBasedPolicy.LOW_BITRATE_THRESHOLD_KBPS\\n            ? VideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT\\n            : VideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT * 2;\\n        const minTargetBitrateDelta = (rates.targetDownlinkBitrate * triggerPercent) / 100;\\n        this.targetRateBaselineForDeltaCheckKbps =\\n            this.targetRateBaselineForDeltaCheckKbps !== undefined\\n                ? this.targetRateBaselineForDeltaCheckKbps\\n                : this.prevTargetRateKbps;\\n        if (!sameSubscriptions &&\\n            Math.abs(rates.targetDownlinkBitrate - this.targetRateBaselineForDeltaCheckKbps) <\\n                minTargetBitrateDelta) {\\n            this.logger.info('bwe: MaybeOverrideOrProbe: Reuse last decision based on delta rate. {' +\\n                JSON.stringify(this.subscribedReceiveSet) +\\n                `}`);\\n            useLastSubscriptions = 1 /* PreviousOptimal */;\\n        }\\n        else {\\n            this.targetRateBaselineForDeltaCheckKbps = rates.targetDownlinkBitrate;\\n        }\\n        // If there has been packet loss, then reset to no probing state\\n        if (this.downlinkStats.packetsLost > this.prevDownlinkStats.packetsLost) {\\n            this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n            this.lastUpgradeRateKbps = 0;\\n            return useLastSubscriptions;\\n        }\\n        if (sameSubscriptions || useLastSubscriptions === 1 /* PreviousOptimal */) {\\n            // If planned subscriptions are same as last, then either move to probe pending state\\n            // or move to probing state if enough time has passed.\\n            switch (this.rateProbeState) {\\n                case \\\"Not Probing\\\" /* NotProbing */:\\n                    this.setProbeState(\\\"Probe Pending\\\" /* ProbePending */);\\n                    break;\\n                case \\\"Probe Pending\\\" /* ProbePending */:\\n                    if (this.setProbeState(\\\"Probing\\\" /* Probing */)) {\\n                        this.upgradeToStream(chosenStreams, upgradeStream);\\n                        useLastSubscriptions = 0 /* NewOptimal */;\\n                    }\\n                    break;\\n            }\\n        }\\n        else {\\n            this.setProbeState(\\\"Not Probing\\\" /* NotProbing */);\\n        }\\n        return useLastSubscriptions;\\n    }\\n    // Utility function to find max rate of streams in current decision\\n    calculateSubscribeRate(streams) {\\n        let subscribeRate = 0;\\n        for (const stream of streams) {\\n            if (!this.pausedStreamIds.contain(stream.streamId) &&\\n                !this.pausedBwAttendeeIds.has(stream.attendeeId)) {\\n                subscribeRate += stream.maxBitrateKbps;\\n            }\\n        }\\n        return subscribeRate;\\n    }\\n    handleAppPausedStreams(chosenStreams, remoteInfos) {\\n        if (!this.tileController) {\\n            this.logger.warn('tileController not found!');\\n            return;\\n        }\\n        this.pausedStreamIds = new DefaultVideoStreamIdSet_1.default();\\n        const remoteTiles = this.tileController.getAllRemoteVideoTiles();\\n        for (const tile of remoteTiles) {\\n            const state = tile.state();\\n            if (state.paused && !this.pausedBwAttendeeIds.has(state.boundAttendeeId)) {\\n                let j = remoteInfos.length;\\n                while (j--) {\\n                    if (remoteInfos[j].attendeeId === state.boundAttendeeId) {\\n                        this.logger.info('bwe: removed paused attendee ' +\\n                            state.boundAttendeeId +\\n                            ' streamId: ' +\\n                            remoteInfos[j].streamId);\\n                        this.pausedStreamIds.add(remoteInfos[j].streamId);\\n                        // Add the stream to the selection set to keep the tile around\\n                        if (this.subscribedReceiveSet.contain(remoteInfos[j].streamId)) {\\n                            chosenStreams.push(remoteInfos[j]);\\n                        }\\n                        remoteInfos.splice(j, 1);\\n                    }\\n                }\\n            }\\n        }\\n    }\\n    processBwPausedStreams(remoteInfos, chosenStreams) {\\n        if (!this.tileController) {\\n            this.logger.warn('tileController not found!');\\n            return;\\n        }\\n        const preferences = this.getCurrentVideoPreferences();\\n        if (preferences && this.shouldPauseTiles) {\\n            const videoTiles = this.tileController.getAllVideoTiles();\\n            for (const preference of preferences) {\\n                const videoTile = this.getVideoTileForAttendeeId(preference.attendeeId, videoTiles);\\n                const paused = (videoTile === null || videoTile === void 0 ? void 0 : videoTile.state().paused) || false;\\n                if (!chosenStreams.some(stream => stream.attendeeId === preference.attendeeId)) {\\n                    // We cannot rely on the existance of video tile to indicate that the source exists in the call\\n                    // because tiles will not be added or removed until after a full renegotiation (i.e. it will\\n                    // be behind the state provided by the index)\\n                    const streamExists = remoteInfos.some(stream => stream.attendeeId === preference.attendeeId);\\n                    if (videoTile && streamExists) {\\n                        const info = this.optimalReceiveStreams.find(stream => stream.attendeeId === preference.attendeeId);\\n                        if (info !== undefined) {\\n                            if (!paused) {\\n                                this.logger.info(`bwe: pausing streamId ${info.streamId} attendee ${preference.attendeeId} due to bandwidth`);\\n                                this.forEachObserver(observer => {\\n                                    observer.tileWillBePausedByDownlinkPolicy(videoTile.id());\\n                                });\\n                                this.tileController.pauseVideoTile(videoTile.id());\\n                            }\\n                            chosenStreams.push(info);\\n                        }\\n                        this.pausedBwAttendeeIds.add(preference.attendeeId);\\n                    }\\n                    else if (streamExists) {\\n                        // Create a tile for this participant if one doesn't already exist and mark it as paused\\n                        // Don't include it in the chosen streams because we don't want to subscribe for it then have to pause it.\\n                        const newTile = this.tileController.addVideoTile();\\n                        newTile.bindVideoStream(preference.attendeeId, false, null, 0, 0, 0, null);\\n                        this.forEachObserver(observer => {\\n                            observer.tileWillBePausedByDownlinkPolicy(newTile.id());\\n                        });\\n                        newTile.pause();\\n                        this.logger.info(`bwe: Created video tile ${newTile.id()} for bw paused attendee ${preference.attendeeId}`);\\n                        this.pausedBwAttendeeIds.add(preference.attendeeId);\\n                    }\\n                }\\n                else if (paused && this.pausedBwAttendeeIds.has(preference.attendeeId)) {\\n                    this.logger.info(`bwe: unpausing attendee ${preference.attendeeId} due to bandwidth`);\\n                    this.forEachObserver(observer => {\\n                        observer.tileWillBeUnpausedByDownlinkPolicy(videoTile.id());\\n                    });\\n                    this.tileController.unpauseVideoTile(videoTile.id());\\n                    this.pausedBwAttendeeIds.delete(preference.attendeeId);\\n                }\\n            }\\n        }\\n    }\\n    cleanBwPausedTiles(remoteInfos) {\\n        if (!this.tileController) {\\n            this.logger.warn('tileController not found!');\\n            return;\\n        }\\n        const tiles = this.tileController.getAllRemoteVideoTiles();\\n        const preferences = this.getCurrentVideoPreferences();\\n        for (const tile of tiles) {\\n            const state = tile.state();\\n            if (!state.boundVideoStream) {\\n                if (!remoteInfos.some(stream => stream.attendeeId === state.boundAttendeeId)) {\\n                    this.tileController.removeVideoTile(state.tileId);\\n                    this.logger.info(`bwe: Removed video tile ${state.tileId} for bw paused attendee ${state.boundAttendeeId}`);\\n                }\\n                else if (preferences !== undefined &&\\n                    !preferences.some(pref => pref.attendeeId === state.boundAttendeeId)) {\\n                    this.tileController.removeVideoTile(state.tileId);\\n                }\\n            }\\n        }\\n    }\\n    priorityPolicy(rates, remoteInfos, chosenStreams) {\\n        let upgradeStream;\\n        const videoPreferences = this.getCurrentVideoPreferences();\\n        const highestPriority = videoPreferences.highestPriority();\\n        let nextPriority;\\n        let priority = highestPriority;\\n        while (priority !== -1) {\\n            nextPriority = -1;\\n            for (const preference of videoPreferences) {\\n                if (preference.priority === priority) {\\n                    // First subscribe to at least low rate\\n                    for (const info of remoteInfos) {\\n                        if (info.attendeeId === preference.attendeeId) {\\n                            if (!chosenStreams.some(stream => stream.groupId === info.groupId)) {\\n                                if (rates.chosenTotalBitrate + info.avgBitrateKbps <= rates.targetDownlinkBitrate) {\\n                                    chosenStreams.push(info);\\n                                    rates.chosenTotalBitrate += info.avgBitrateKbps;\\n                                }\\n                                else if (rates.deltaToNextUpgrade === 0) {\\n                                    // Keep track of step to next upgrade\\n                                    rates.deltaToNextUpgrade = info.avgBitrateKbps;\\n                                    upgradeStream = info;\\n                                }\\n                            }\\n                        }\\n                    }\\n                }\\n                else {\\n                    if (preference.priority > priority) {\\n                        nextPriority = preference.priority;\\n                        break;\\n                    }\\n                }\\n            }\\n            // Now try to upgrade all attendee's with this priority\\n            for (const preference of videoPreferences) {\\n                if (preference.priority === priority) {\\n                    for (const info of remoteInfos) {\\n                        if (info.attendeeId === preference.attendeeId) {\\n                            const index = chosenStreams.findIndex(stream => stream.groupId === info.groupId && stream.maxBitrateKbps < info.maxBitrateKbps);\\n                            if (index !== -1) {\\n                                const increaseKbps = info.avgBitrateKbps - chosenStreams[index].avgBitrateKbps;\\n                                if (this.hasSimulcastStreams(remoteInfos, info.attendeeId, info.groupId) &&\\n                                    this.canUpgrade(info.avgBitrateKbps, preference.targetSize, preference.targetSizeToBitrateKbps(preference.targetSize), info.attendeeId.endsWith(ContentShareConstants_1.default.Modality))) {\\n                                    this.logger.info(`bwe: attendee: ${info.attendeeId} group: ${info.groupId} has simulcast and can upgrade avgBitrate: ${info.avgBitrateKbps} target: ${preference.targetSizeToBitrateKbps(preference.targetSize)} targetTotalBitrate: ${rates.targetDownlinkBitrate}`);\\n                                    if (rates.chosenTotalBitrate + increaseKbps <= rates.targetDownlinkBitrate) {\\n                                        rates.chosenTotalBitrate += increaseKbps;\\n                                        chosenStreams[index] = info;\\n                                    }\\n                                    else if (rates.deltaToNextUpgrade === 0) {\\n                                        // Keep track of step to next upgrade\\n                                        rates.deltaToNextUpgrade = increaseKbps;\\n                                        upgradeStream = info;\\n                                    }\\n                                }\\n                                else {\\n                                    this.logger.info('bwe: cannot upgrade stream quality beyond target size');\\n                                }\\n                            }\\n                        }\\n                    }\\n                }\\n                else {\\n                    if (preference.priority > priority) {\\n                        break;\\n                    }\\n                }\\n            }\\n            // If we haven't subscribed to the highest rate of the top priority videos then\\n            // do not subscribe to any other sources\\n            if (priority === highestPriority && rates.deltaToNextUpgrade !== 0) {\\n                break;\\n            }\\n            priority = nextPriority;\\n        }\\n        return upgradeStream;\\n    }\\n    getVideoTileForAttendeeId(attendeeId, videoTiles) {\\n        for (const tile of videoTiles) {\\n            const state = tile.state();\\n            if (state.boundAttendeeId === attendeeId) {\\n                return tile;\\n            }\\n        }\\n        return null;\\n    }\\n    canUpgrade(bitrateKbp, targetResolution, targetBitrateKbp, isContent) {\\n        // For content share, even if the higher quality stream has a high max bitrate of 1200 kbps for example\\n        // the avg bitrate can be way lower so have to make sure that we do not update to a higher bitrate than the\\n        // target value.\\n        // This does not apply to video as video uplink bandwidth could change the max bitrate value without resubscribing\\n        // so the max bitrate value might not be up-to-date on the downlink side. Also in the case of video, the avg\\n        // bitrate is close to the actual max bitrate.\\n        let canUpgrade = false;\\n        if (isContent) {\\n            // Content simulcast only have 2 layers right now so we always upgrade if the target resolution is high and\\n            // skip if the target resolution is low. If the target resolution is medium then fall back to use avg bitrate\\n            // as video.\\n            if (targetResolution === TargetDisplaySize_1.default.High) {\\n                canUpgrade = true;\\n            }\\n            else if (targetResolution === TargetDisplaySize_1.default.Medium && bitrateKbp <= targetBitrateKbp) {\\n                canUpgrade = true;\\n            }\\n        }\\n        else if (bitrateKbp <= targetBitrateKbp) {\\n            canUpgrade = true;\\n        }\\n        if (canUpgrade) {\\n            this.logger.info(`bwe: canUpgrade: bitrateKbp: ${bitrateKbp} targetBitrateKbp: ${targetBitrateKbp}`);\\n            return true;\\n        }\\n        this.logger.info(`bwe: cannot Upgrade: bitrateKbp: ${bitrateKbp} targetBitrateKbp: ${targetBitrateKbp}`);\\n        return false;\\n    }\\n    hasSimulcastStreams(remoteInfos, attendeeId, groupId) {\\n        let streamCount = 0;\\n        for (const info of remoteInfos) {\\n            if (info.attendeeId === attendeeId && info.groupId === groupId) {\\n                streamCount++;\\n            }\\n        }\\n        this.logger.info(`bwe: attendeeId: ${attendeeId} groupId: ${groupId} hasSimulcastStreams: streamCount: ${streamCount}`);\\n        return streamCount > 1;\\n    }\\n    availStreamsSameAsLast(remoteInfos) {\\n        if (this.prevRemoteInfos === undefined ||\\n            remoteInfos.length !== this.prevRemoteInfos.length ||\\n            this.videoPreferencesUpdated === true) {\\n            return false;\\n        }\\n        for (const info of remoteInfos) {\\n            const infoMatch = this.prevRemoteInfos.find(prevInfo => prevInfo.groupId === info.groupId &&\\n                prevInfo.streamId === info.streamId &&\\n                prevInfo.maxBitrateKbps === info.maxBitrateKbps);\\n            if (infoMatch === undefined) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    chosenStreamsSameAsLast(chosenStreams) {\\n        if (this.optimalNonPausedReceiveStreams.length !== chosenStreams.length) {\\n            return false;\\n        }\\n        for (const lastStream of this.optimalNonPausedReceiveStreams) {\\n            if (!chosenStreams.some(stream => stream.streamId === lastStream.streamId)) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    policyStateLogStr(remoteInfos, targetDownlinkBitrate) {\\n        const subscribedRate = this.calculateSubscribeRate(this.optimalReceiveStreams);\\n        const optimalReceiveSet = {\\n            targetBitrate: targetDownlinkBitrate,\\n            subscribedRate: subscribedRate,\\n            probeState: this.rateProbeState,\\n            startupPeriod: this.startupPeriod,\\n        };\\n        // Reduced remote info logging:\\n        let remoteInfoStr = `remoteInfos: [`;\\n        for (const info of remoteInfos) {\\n            remoteInfoStr += `{grpId:${info.groupId} strId:${info.streamId} maxBr:${info.maxBitrateKbps} avgBr:${info.avgBitrateKbps}}, `;\\n        }\\n        remoteInfoStr += `]`;\\n        let logString = `bwe: optimalReceiveSet ${JSON.stringify(optimalReceiveSet)}\\\\n` +\\n            `bwe:   prev ${JSON.stringify(this.prevDownlinkStats)}\\\\n` +\\n            `bwe:   now  ${JSON.stringify(this.downlinkStats)}\\\\n` +\\n            `bwe:   ${remoteInfoStr}\\\\n`;\\n        if (this.pausedStreamIds.size() > 0 || this.pausedBwAttendeeIds.size > 0) {\\n            logString += `bwe:   paused: app stream ids ${JSON.stringify(this.pausedStreamIds)}  bw attendees { ${Array.from(this.pausedBwAttendeeIds).join(' ')} }\\\\n`;\\n        }\\n        if (this.videoPreferences) {\\n            logString += `bwe:   preferences: ${JSON.stringify(this.videoPreferences)}`;\\n        }\\n        else {\\n            logString += `bwe:   default preferences: ${JSON.stringify(this.defaultVideoPreferences)}`;\\n        }\\n        return logString;\\n    }\\n    getCurrentVideoPreferences() {\\n        return this.videoPreferences || this.defaultVideoPreferences;\\n    }\\n    getServerSideNetworkAdaption() {\\n        return this.serverSideNetworkAdaption;\\n    }\\n    setServerSideNetworkAdaption(adaption) {\\n        this.serverSideNetworkAdaption = adaption;\\n        this.setProbeState(\\\"Not Probing\\\" /* NotProbing */); // In case we were probing\\n    }\\n    supportedServerSideNetworkAdaptions() {\\n        return [ServerSideNetworkAdaption_1.default.None, ServerSideNetworkAdaption_1.default.BandwidthProbing];\\n    }\\n    getVideoPreferences() {\\n        let preferences = this.getCurrentVideoPreferences();\\n        if (!preferences) {\\n            const dummyPreferences = VideoPreferences_1.VideoPreferences.prepare();\\n            // Can't be undefined, occasionally the audio video controller\\n            // will call this function before the first index is received\\n            preferences = dummyPreferences.build();\\n        }\\n        return preferences;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoPriorityBasedPolicy;\\nVideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS = 2800;\\nVideoPriorityBasedPolicy.STARTUP_PERIOD_MS = 6000;\\nVideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT = 20;\\nVideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT = 15;\\nVideoPriorityBasedPolicy.LOW_BITRATE_THRESHOLD_KBPS = 300;\\nVideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS = 5000;\\nVideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS = 2000;\\n// We apply exponentional backoff to probe attempts if they do not\\n// succeed, so we need to set a reasonable maximum.\\nVideoPriorityBasedPolicy.MAX_HOLD_BEFORE_PROBE_MS = 30000;\\nVideoPriorityBasedPolicy.MAX_ALLOWED_PROBE_TIME_MS = 60000;\\n// Occasionally we see that on unpause or upgrade we see a single packet lost\\n// or two, even in completely unconstrained scenarios. We should look into\\n// why this occurs on the backend, but for now we require a non-trivial\\n// amount of packets lost to fail the probe. These could also be from\\n// other senders given we don't yet use TWCC.\\nVideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD = 2;\\n// See usage\\nVideoPriorityBasedPolicy.USED_BANDWIDTH_OVERRIDE_BUFFER_KBPS = 100;\\n//# sourceMappingURL=VideoPriorityBasedPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig.js ***!\n  \\***************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst ServerSideNetworkAdaption_1 = __webpack_require__(/*! ../signalingclient/ServerSideNetworkAdaption */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingclient/ServerSideNetworkAdaption.js\\\");\\n/**\\n * [[VideoPriorityBasedPolicyConfig]] contains the network issue response delay and network issue recovery delay.\\n */\\nclass VideoPriorityBasedPolicyConfig {\\n    /** Initializes a [[VideoPriorityBasedPolicyConfig]] with the network event delays.\\n     *\\n     * @param networkIssueResponseDelayFactor Delays before reducing subscribed video bitrate. Input should be a value between 0 and 1.\\n     * @param networkIssueRecoveryDelayFactor Delays before starting to increase bitrates after a network event and\\n     * delays between increasing video bitrates on each individual stream. Input should be a value between 0 and 1.\\n     */\\n    constructor(networkIssueResponseDelayFactor = 0, networkIssueRecoveryDelayFactor = 0) {\\n        this.networkIssueResponseDelayFactor = networkIssueResponseDelayFactor;\\n        this.networkIssueRecoveryDelayFactor = networkIssueRecoveryDelayFactor;\\n        this.currentNetworkEvent = 0 /* Stable */;\\n        this.bandwidthDecreaseTimestamp = 0; // the last time bandwidth decreases\\n        this.referenceBitrate = 0;\\n        /**\\n         * Additional server side features to be enabled for network adaption. This\\n         * may be overridden by the server.\\n         */\\n        this.serverSideNetworkAdaption = ServerSideNetworkAdaption_1.default.Default;\\n        if (networkIssueResponseDelayFactor < 0) {\\n            networkIssueResponseDelayFactor = 0;\\n        }\\n        else if (networkIssueResponseDelayFactor > 1) {\\n            networkIssueResponseDelayFactor = 1;\\n        }\\n        this.networkIssueResponseDelayFactor = networkIssueResponseDelayFactor;\\n        if (networkIssueRecoveryDelayFactor < 0) {\\n            networkIssueRecoveryDelayFactor = 0;\\n        }\\n        else if (networkIssueRecoveryDelayFactor > 1) {\\n            networkIssueRecoveryDelayFactor = 1;\\n        }\\n        this.networkIssueRecoveryDelayFactor = networkIssueRecoveryDelayFactor;\\n    }\\n    // determine if subscribe is allowed based on network issue/recovery delays\\n    allowSubscribe(numberOfParticipants, currentEstimated) {\\n        let timeBeforeAllowSubscribeMs = 0;\\n        const previousNetworkEvent = this.currentNetworkEvent;\\n        if (currentEstimated > this.referenceBitrate) {\\n            // if bw increases\\n            this.currentNetworkEvent = 2 /* Increase */;\\n            this.referenceBitrate = currentEstimated;\\n            return true;\\n        }\\n        else if (currentEstimated < this.referenceBitrate) {\\n            // if bw decreases, we use response delay\\n            this.currentNetworkEvent = 1 /* Decrease */;\\n            timeBeforeAllowSubscribeMs = this.getSubscribeDelay(this.currentNetworkEvent, numberOfParticipants);\\n            if (previousNetworkEvent !== 1 /* Decrease */) {\\n                this.bandwidthDecreaseTimestamp = Date.now();\\n            }\\n            else if (Date.now() - this.bandwidthDecreaseTimestamp > timeBeforeAllowSubscribeMs) {\\n                this.referenceBitrate = currentEstimated;\\n                return true;\\n            }\\n            return false;\\n        }\\n        else {\\n            this.currentNetworkEvent = 0 /* Stable */;\\n            return false;\\n        }\\n    }\\n    // convert network event delay factor to actual delay in ms\\n    getSubscribeDelay(event, numberOfParticipants) {\\n        // left and right boundary of the delay\\n        let subscribeDelay = VideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS;\\n        const range = VideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS -\\n            VideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS;\\n        const responseFactor = this.networkIssueResponseDelayFactor;\\n        switch (event) {\\n            case 1 /* Decrease */:\\n                // we include number of participants here since bigger size of the meeting will generate higher bitrate\\n                subscribeDelay += range * responseFactor * (1 + numberOfParticipants / 10);\\n                subscribeDelay = Math.min(VideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS, subscribeDelay);\\n                break;\\n        }\\n        return subscribeDelay;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoPriorityBasedPolicyConfig;\\nVideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS = 2000;\\nVideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS = 8000;\\n// presets\\nVideoPriorityBasedPolicyConfig.Default = new VideoPriorityBasedPolicyConfig(0, 0);\\nVideoPriorityBasedPolicyConfig.UnstableNetworkPreset = new VideoPriorityBasedPolicyConfig(0, 1);\\nVideoPriorityBasedPolicyConfig.StableNetworkPreset = new VideoPriorityBasedPolicyConfig(1, 0);\\n//# sourceMappingURL=VideoPriorityBasedPolicyConfig.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videodownlinkbandwidthpolicy/VideoPriorityBasedPolicyConfig.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videoelementfactory/NoOpVideoElementFactory.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videoelementfactory/NoOpVideoElementFactory.js ***!\n  \\***********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass NoOpVideoElementFactory {\\n    create() {\\n        const element = {\\n            clientWidth: 400,\\n            clientHeight: 300,\\n            width: 400,\\n            height: 300,\\n            videoWidth: 400,\\n            videoHeight: 300,\\n            style: {\\n                transform: '',\\n            },\\n            hasAttribute: () => {\\n                return false;\\n            },\\n            removeAttribute: () => { },\\n            setAttribute: () => { },\\n            srcObject: false,\\n            paused: true,\\n            pause: () => {\\n                element.paused = true;\\n            },\\n            play: () => {\\n                element.paused = false;\\n                return Promise.resolve();\\n            },\\n        };\\n        // @ts-ignore\\n        return element;\\n    }\\n}\\nexports[\\\"default\\\"] = NoOpVideoElementFactory;\\n//# sourceMappingURL=NoOpVideoElementFactory.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videoelementfactory/NoOpVideoElementFactory.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js ***!\n  \\**********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[CanvasVideoFrameBuffer]] implements [[VideoFrameBuffer]]. It internally holds an `HTMLCanvasElement`.\\n */\\nclass CanvasVideoFrameBuffer {\\n    constructor(canvas) {\\n        this.canvas = canvas;\\n        this.destroyed = false;\\n    }\\n    destroy() {\\n        this.canvas = null;\\n        this.destroyed = true;\\n    }\\n    asCanvasImageSource() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.destroyed) {\\n                return Promise.reject('canvas buffer is destroyed');\\n            }\\n            return Promise.resolve(this.canvas);\\n        });\\n    }\\n    asCanvasElement() {\\n        return this.canvas;\\n    }\\n}\\nexports[\\\"default\\\"] = CanvasVideoFrameBuffer;\\n//# sourceMappingURL=CanvasVideoFrameBuffer.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoFrameProcessorPipeline.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoFrameProcessorPipeline.js ***!\n  \\**********************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst CanvasVideoFrameBuffer_1 = __webpack_require__(/*! ./CanvasVideoFrameBuffer */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/CanvasVideoFrameBuffer.js\\\");\\nconst DEFAULT_FRAMERATE = 15;\\n/**\\n * [[DefaultVideoFrameProcessorPipeline]] implements {@link VideoFrameProcessorPipeline}.\\n * It constructs a buffer {@link CanvasVideoFrameBuffer} as source by default and invokes processor based on `framerate`.\\n * The default output type is `MediaStream`.\\n */\\nclass DefaultVideoFrameProcessorPipeline {\\n    constructor(logger, stages) {\\n        this.logger = logger;\\n        this.stages = stages;\\n        this.fr = DEFAULT_FRAMERATE;\\n        // initialize with dummy inactive MediaStream to keep strict type\\n        this.outputMediaStream = new MediaStream();\\n        this.videoInput = document.createElement('video');\\n        this.canvasOutput = document.createElement('canvas');\\n        this.outputCtx = this.canvasOutput.getContext('2d');\\n        this.canvasInput = document.createElement('canvas');\\n        this.inputCtx = this.canvasInput.getContext('2d');\\n        this.inputVideoStream = null;\\n        this.sourceBuffers = [];\\n        this.destBuffers = [];\\n        this.observers = new Set();\\n        this.hasStarted = false;\\n        this.process = (_event) => __awaiter(this, void 0, void 0, function* () {\\n            if (!this.inputVideoStream) {\\n                return;\\n            }\\n            const processVideoStart = performance.now();\\n            // videoWidth is intrinsic video width\\n            if (this.videoInput.videoWidth) {\\n                if (this.canvasInput.width !== this.videoInput.videoWidth) {\\n                    this.canvasInput.width = this.videoInput.videoWidth;\\n                    this.canvasInput.height = this.videoInput.videoHeight;\\n                    this.sourceBuffers[0].height = this.canvasInput.height;\\n                    this.sourceBuffers[0].width = this.canvasInput.width;\\n                    this.sourceBuffers[0].framerate = this.framerate;\\n                }\\n                this.inputCtx.drawImage(this.videoInput, 0, 0);\\n            }\\n            // processes input buffers\\n            let buffers = [];\\n            buffers.push(this.sourceBuffers[0]);\\n            try {\\n                for (const proc of this.processors) {\\n                    buffers = yield proc.process(buffers);\\n                }\\n            }\\n            catch (_error) {\\n                this.forEachObserver(obs => {\\n                    if (obs.processingDidFailToStart) {\\n                        obs.processingDidFailToStart();\\n                    }\\n                });\\n                return;\\n            }\\n            this.destBuffers = buffers;\\n            let imageSource;\\n            try {\\n                imageSource = yield this.destBuffers[0].asCanvasImageSource();\\n            }\\n            catch (error) {\\n                if (this.inputVideoStream) {\\n                    this.logger.info('buffers are destroyed and pipeline could not start');\\n                    this.forEachObserver(obs => {\\n                        if (obs.processingDidFailToStart) {\\n                            obs.processingDidFailToStart();\\n                        }\\n                    });\\n                }\\n                return;\\n            }\\n            // finally draws the image\\n            const frameWidth = imageSource.width;\\n            const frameHeight = imageSource.height;\\n            if (frameWidth !== 0 && frameHeight !== 0) {\\n                if (this.canvasOutput.width !== frameWidth && this.canvasOutput.height !== frameHeight) {\\n                    this.canvasOutput.width = frameWidth;\\n                    this.canvasOutput.height = frameHeight;\\n                }\\n                this.outputCtx.drawImage(imageSource, 0, 0, frameWidth, frameHeight, 0, 0, frameWidth, frameHeight);\\n                if (!this.hasStarted) {\\n                    this.hasStarted = true;\\n                    this.forEachObserver(observer => {\\n                        if (observer.processingDidStart) {\\n                            observer.processingDidStart();\\n                        }\\n                    });\\n                }\\n            }\\n            // measures time\\n            const processVideoLatency = performance.now() - processVideoStart;\\n            const leave = (1000 * 2) / this.framerate - processVideoLatency; // half fps\\n            const nextFrameDelay = Math.max(0, 1000 / this.framerate - processVideoLatency);\\n            if (leave <= 0) {\\n                this.forEachObserver(obs => {\\n                    if (obs.processingLatencyTooHigh) {\\n                        obs.processingLatencyTooHigh(processVideoLatency);\\n                    }\\n                });\\n            }\\n            // TODO: use requestAnimationFrame which is more organic and allows browser to conserve resources by its choices.\\n            /* @ts-ignore */\\n            this.lastTimeOut = setTimeout(this.process, nextFrameDelay);\\n        });\\n    }\\n    destroy() {\\n        this.stop();\\n        if (this.stages) {\\n            for (const stage of this.stages) {\\n                stage.destroy();\\n            }\\n        }\\n    }\\n    get framerate() {\\n        return this.fr;\\n    }\\n    // A negative framerate will cause `captureStream` to throw `NotSupportedError`.\\n    // The setter prevents this by switching to the default framerate if less than 0.\\n    set framerate(value) {\\n        this.fr = value < 0 ? DEFAULT_FRAMERATE : value;\\n    }\\n    stop() {\\n        // empty stream, stop pipeline\\n        // null input media stream stops the pipeline.\\n        this.videoInput.removeEventListener('loadedmetadata', this.process);\\n        this.videoInput.srcObject = null;\\n        // Clean the input stream and buffers.\\n        this.destroyInputMediaStreamAndBuffers();\\n        // Stop all the output tracks, but don't discard the media stream,\\n        // because it's how other parts of the codebase recognize when\\n        // a selected stream is part of this transform device.\\n        if (this.outputMediaStream) {\\n            for (const track of this.outputMediaStream.getVideoTracks()) {\\n                track.stop();\\n            }\\n        }\\n        if (this.lastTimeOut) {\\n            clearTimeout(this.lastTimeOut);\\n            this.lastTimeOut = undefined;\\n        }\\n        if (this.hasStarted) {\\n            this.hasStarted = false;\\n            this.forEachObserver(observer => {\\n                if (observer.processingDidStop) {\\n                    observer.processingDidStop();\\n                }\\n            });\\n        }\\n    }\\n    addObserver(observer) {\\n        this.observers.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.observers.delete(observer);\\n    }\\n    getInputMediaStream() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.inputVideoStream;\\n        });\\n    }\\n    getActiveOutputMediaStream() {\\n        if (this.isOutputMediaStreamActive()) {\\n            return this.outputMediaStream;\\n        }\\n        this.outputMediaStream = this.canvasOutput.captureStream(this.framerate);\\n        this.cloneInputAudioTracksToOutput();\\n        return this.outputMediaStream;\\n    }\\n    /**\\n     * `inputMediaStream` is by default used to construct one {@link CanvasVideoFrameBuffer}\\n     * The buffer will be fed into the first {@link VideoFrameProcessor}.\\n     */\\n    setInputMediaStream(inputMediaStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!inputMediaStream) {\\n                this.stop();\\n                return;\\n            }\\n            if (inputMediaStream.getVideoTracks().length === 0) {\\n                this.logger.error('No video tracks in input media stream, ignoring');\\n                return;\\n            }\\n            this.inputVideoStream = inputMediaStream;\\n            const settings = this.inputVideoStream.getVideoTracks()[0].getSettings();\\n            this.logger.info(`processing pipeline input stream settings ${JSON.stringify(settings)}`);\\n            this.canvasOutput.width = settings.width;\\n            this.canvasOutput.height = settings.height;\\n            this.videoInput.addEventListener('loadedmetadata', this.process);\\n            this.videoInput.srcObject = this.inputVideoStream;\\n            // avoid iOS safari full screen video\\n            this.videoInput.setAttribute('playsinline', 'true');\\n            // create sources\\n            const canvasBuffer = new CanvasVideoFrameBuffer_1.default(this.canvasInput);\\n            this.sourceBuffers.push(canvasBuffer);\\n            this.videoInput.load();\\n            try {\\n                yield this.videoInput.play();\\n            }\\n            catch (_a) {\\n                this.logger.warn('Video element play() overrided by another load().');\\n            }\\n            this.cloneInputAudioTracksToOutput();\\n        });\\n    }\\n    cloneInputAudioTracksToOutput() {\\n        if (!this.isOutputMediaStreamActive() || this.inputVideoStream === null) {\\n            this.logger.info('Not cloning input audio tracks to output, do not have media streams ready');\\n            return; // Just wait for `getActiveOutputMediaStream`\\n        }\\n        // Remove current audio tracks from output\\n        for (const audioTrack of this.outputMediaStream.getAudioTracks()) {\\n            this.logger.info(`Removing audio track ${audioTrack.id} from output stream`);\\n            this.outputMediaStream.removeTrack(audioTrack);\\n        }\\n        for (const audioTrack of this.inputVideoStream.getAudioTracks()) {\\n            this.logger.info(`Adding audio track ${audioTrack.id} to output stream`);\\n            this.outputMediaStream.addTrack(audioTrack);\\n        }\\n    }\\n    isOutputMediaStreamActive() {\\n        return this.outputMediaStream && this.outputMediaStream.active;\\n    }\\n    set processors(stages) {\\n        this.stages = stages;\\n    }\\n    get processors() {\\n        return this.stages;\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observers) {\\n            setTimeout(() => {\\n                observerFunc(observer);\\n            }, 0);\\n        }\\n    }\\n    destroyInputMediaStreamAndBuffers() {\\n        if (this.inputVideoStream) {\\n            for (const track of this.inputVideoStream.getTracks()) {\\n                track.stop();\\n            }\\n        }\\n        this.inputVideoStream = null;\\n        for (const buffer of this.sourceBuffers) {\\n            buffer.destroy();\\n        }\\n        this.sourceBuffers = [];\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoFrameProcessorPipeline;\\n//# sourceMappingURL=DefaultVideoFrameProcessorPipeline.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoFrameProcessorPipeline.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoTransformDevice.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoTransformDevice.js ***!\n  \\***************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst DefaultVideoFrameProcessorPipeline_1 = __webpack_require__(/*! ./DefaultVideoFrameProcessorPipeline */ \\\"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoFrameProcessorPipeline.js\\\");\\n/**\\n * [[DefaultVideoTransformDevice]] is an augmented [[VideoInputDevice]].\\n * It transform the input {@link Device} with an array of {@link VideoFrameProcessor} to produce a `MediaStream`.\\n */\\nclass DefaultVideoTransformDevice {\\n    constructor(logger, device, processors, browserBehavior = new DefaultBrowserBehavior_1.default()) {\\n        this.logger = logger;\\n        this.device = device;\\n        this.processors = processors;\\n        this.browserBehavior = browserBehavior;\\n        this.observers = new Set();\\n        this.pipe = new DefaultVideoFrameProcessorPipeline_1.default(this.logger, this.processors);\\n        this.pipe.addObserver(this);\\n    }\\n    /**\\n     * getter for `outputMediaStream`.\\n     * `outputMediaStream` is returned by internal {@link VideoFrameProcessorPipeline}.\\n     * It is possible, but unlikely, that this accessor will throw.\\n     */\\n    get outputMediaStream() {\\n        return this.pipe.outputMediaStream;\\n    }\\n    /**\\n     * `chooseNewInnerDevice` preserves the inner pipeline and processing state and switches\\n     * the inner device. Since the pipeline and processors are shared with the new transform device\\n     * only one transform device can be used.\\n     */\\n    chooseNewInnerDevice(newDevice) {\\n        const newTransformDevice = new DefaultVideoTransformDevice(this.logger, newDevice, this.processors, this.browserBehavior);\\n        newTransformDevice.pipe = this.pipe;\\n        return newTransformDevice;\\n    }\\n    /**\\n     * Return the inner device as provided during construction.\\n     */\\n    getInnerDevice() {\\n        return this.device;\\n    }\\n    intrinsicDevice() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return this.device;\\n        });\\n    }\\n    /**\\n     * Create {@link VideoFrameProcessorPipeline} if there is not a existing one and start video processors.\\n     * Returns output `MediaStream` produced by {@link VideoFrameProcessorPipeline}.\\n     */\\n    transformStream(mediaStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            yield this.pipe.setInputMediaStream(mediaStream);\\n            this.inputMediaStream = mediaStream;\\n            return this.pipe.getActiveOutputMediaStream();\\n        });\\n    }\\n    /**\\n     * onOutputStreamDisconnect is called when device controller wants to detach\\n     * the transform device. The default behavior is to stop the output\\n     * media stream and release the input the media stream. If the input media stream\\n     * is the provided device, it will not be released.\\n     */\\n    onOutputStreamDisconnect() {\\n        this.logger.info('DefaultVideoTransformDevice: detach stopping input media stream');\\n        const deviceIsMediaStream = this.device && this.device.id;\\n        // Stop processing but keep the pipe and processors\\n        this.pipe.stop();\\n        // Turn off the camera, unless device is a MediaStream\\n        if (!deviceIsMediaStream) {\\n            if (this.inputMediaStream) {\\n                for (const track of this.inputMediaStream.getVideoTracks()) {\\n                    track.stop();\\n                }\\n            }\\n        }\\n    }\\n    /**\\n     * Dispose of the inner workings of the transform device, including pipeline and processors.\\n     * `stop` can only be called when the transform device is not used by device controller anymore.\\n     * After `stop` is called, all transform devices which share the pipeline must be discarded.\\n     */\\n    stop() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.inputMediaStream) {\\n                for (const track of this.inputMediaStream.getVideoTracks()) {\\n                    track.stop();\\n                }\\n            }\\n            this.pipe.destroy();\\n            this.inputMediaStream = null;\\n        });\\n    }\\n    /**\\n     * Add an observer to receive notifications about lifecycle events.\\n     * See {@link DefaultVideoTransformDeviceObserver} for details.\\n     * If the observer has already been added, this method call has no effect.\\n     */\\n    addObserver(observer) {\\n        this.observers.add(observer);\\n    }\\n    /**\\n     * Remove an existing observer. If the observer has not been previously. this method call has no effect.\\n     */\\n    removeObserver(observer) {\\n        this.observers.delete(observer);\\n    }\\n    processingDidStart() {\\n        this.logger.info('video transform device processing started');\\n        this.forEachObserver(observer => {\\n            if (observer.processingDidStart) {\\n                observer.processingDidStart();\\n            }\\n        });\\n    }\\n    processingLatencyTooHigh(latencyMs) {\\n        this.forEachObserver(observer => {\\n            if (observer.processingLatencyTooHigh) {\\n                observer.processingLatencyTooHigh(latencyMs);\\n            }\\n        });\\n    }\\n    processingDidFailToStart() {\\n        this.logger.info('video transform device processing failed to start');\\n        this.forEachObserver(observer => {\\n            if (observer.processingDidFailToStart) {\\n                observer.processingDidFailToStart();\\n            }\\n        });\\n    }\\n    processingDidStop() {\\n        this.logger.info('video transform device processing stopped');\\n        this.forEachObserver(observer => {\\n            if (observer.processingDidStop) {\\n                observer.processingDidStop();\\n            }\\n        });\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observers) {\\n            setTimeout(() => {\\n                observerFunc(observer);\\n            }, 0);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoTransformDevice;\\n//# sourceMappingURL=DefaultVideoTransformDevice.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/DefaultVideoTransformDevice.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js\":\n/*!***********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js ***!\n  \\***********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[NoOpVideoFrameProcessor]] implements [[VideoFrameProcessor]].\\n * It's a no-op processor and input is passed to output directly.\\n */\\nclass NoOpVideoFrameProcessor {\\n    process(buffers) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return buffers;\\n        });\\n    }\\n    destroy() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            return;\\n        });\\n    }\\n}\\nexports[\\\"default\\\"] = NoOpVideoFrameProcessor;\\n//# sourceMappingURL=NoOpVideoFrameProcessor.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videoframeprocessor/NoOpVideoFrameProcessor.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videosource/VideoSource.js\":\n/*!***************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videosource/VideoSource.js ***!\n  \\***************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[VideoSource]] contains the information of a video source.\\n */\\nclass VideoSource {\\n}\\nexports[\\\"default\\\"] = VideoSource;\\n//# sourceMappingURL=VideoSource.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videosource/VideoSource.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[DefaultVideoStreamIdSet]] implements [[VideoStreamIdSet]].\\n */\\nclass DefaultVideoStreamIdSet {\\n    constructor(ids) {\\n        this.ids = new Set(ids);\\n    }\\n    add(streamId) {\\n        this.ids.add(streamId);\\n    }\\n    array() {\\n        const values = Array.from(this.ids.values());\\n        return values.sort((a, b) => a - b);\\n    }\\n    contain(streamId) {\\n        return this.ids.has(streamId);\\n    }\\n    forEach(callbackFn) {\\n        this.ids.forEach(callbackFn);\\n    }\\n    empty() {\\n        return this.ids.size === 0;\\n    }\\n    size() {\\n        return this.ids.size;\\n    }\\n    equal(other) {\\n        if (!other) {\\n            return this.ids.size === 0;\\n        }\\n        const x = this.array();\\n        const y = other.array();\\n        if (x.length !== y.length) {\\n            return false;\\n        }\\n        for (let i = 0; i < x.length; i++) {\\n            if (x[i] !== y[i]) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n    clone() {\\n        return new DefaultVideoStreamIdSet(this.array());\\n    }\\n    remove(streamId) {\\n        this.ids.delete(streamId);\\n    }\\n    toJSON() {\\n        return this.array();\\n    }\\n    truncate(length) {\\n        const x = this.array();\\n        return new DefaultVideoStreamIdSet(x.splice(0, length));\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoStreamIdSet;\\n//# sourceMappingURL=DefaultVideoStreamIdSet.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst DefaultVideoStreamIdSet_1 = __webpack_require__(/*! ../videostreamidset/DefaultVideoStreamIdSet */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamidset/DefaultVideoStreamIdSet.js\\\");\\nconst VideoStreamDescription_1 = __webpack_require__(/*! ./VideoStreamDescription */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js\\\");\\n/**\\n * [[DefaultVideoStreamIndex]] implements [[VideoStreamIndex]] to facilitate video stream subscription\\n * and includes query functions for stream id and attendee id.\\n */\\nclass DefaultVideoStreamIndex {\\n    constructor(logger) {\\n        this.logger = logger;\\n        this.currentIndex = null;\\n        this.indexForSubscribe = null;\\n        this.currentSubscribeAck = null;\\n        // These are based on the index at the time of the last Subscribe Ack\\n        this.subscribeTrackToStreamMap = null;\\n        this.subscribeStreamToAttendeeMap = null;\\n        this.subscribeStreamToExternalUserIdMap = null;\\n        this.subscribeSsrcToStreamMap = null;\\n        // These are based on the most up to date index\\n        this.streamToAttendeeMap = null;\\n        this.streamToExternalUserIdMap = null;\\n        this.videoStreamDescription = new VideoStreamDescription_1.default();\\n        this.videoStreamDescription.trackLabel = 'AmazonChimeExpressVideo';\\n        this.videoStreamDescription.streamId = 2;\\n        this.videoStreamDescription.groupId = 2;\\n    }\\n    localStreamDescriptions() {\\n        // localStreamDescriptions are used to construct IndexFrame\\n        // old behavior for single video is to have streamId and groupId trackLabel fixed as the follows\\n        return [this.videoStreamDescription.clone()];\\n    }\\n    convertBpsToKbps(avgBitrateBps) {\\n        if (avgBitrateBps > 0 && avgBitrateBps < 1000) {\\n            return 1;\\n        }\\n        else {\\n            return Math.trunc(avgBitrateBps / 1000);\\n        }\\n    }\\n    remoteStreamDescriptions() {\\n        if (!this.currentIndex || !this.currentIndex.sources) {\\n            return [];\\n        }\\n        const streamInfos = [];\\n        this.currentIndex.sources.forEach(source => {\\n            const description = new VideoStreamDescription_1.default();\\n            description.attendeeId = source.attendeeId;\\n            description.groupId = source.groupId;\\n            description.streamId = source.streamId;\\n            description.maxBitrateKbps = source.maxBitrateKbps;\\n            description.avgBitrateKbps = this.convertBpsToKbps(source.avgBitrateBps);\\n            streamInfos.push(description);\\n        });\\n        return streamInfos;\\n    }\\n    integrateUplinkPolicyDecision(param) {\\n        if (!!param && param.length) {\\n            const encodingParam = param[0];\\n            this.videoStreamDescription.maxBitrateKbps = encodingParam.maxBitrate / 1000;\\n            this.videoStreamDescription.maxFrameRate = encodingParam.maxFramerate;\\n        }\\n    }\\n    integrateIndexFrame(indexFrame) {\\n        this.currentIndex = indexFrame;\\n        // In the Amazon Chime SDKs, we assume a one to one mapping of group ID to profile ID when creating\\n        // video tiles (multiple video sources are supported through applying a `Modality` to a given profile/session token)\\n        //\\n        // We enforce this here to mitigate any possible duplicate group IDs left from a reconnection where the previous\\n        // signal channel hasn't been timed out yet.  To guarantee we receive the latest stream we use the highest group ID\\n        // since they are monotonically increasing.\\n        const attendeeIdToMainGroupIdMap = new Map();\\n        // Improve performance by not filtering sources unless\\n        // we know the list will actually change\\n        let attendeeWithMultipleGroupIdsExists = false;\\n        for (const source of indexFrame.sources) {\\n            if (!attendeeIdToMainGroupIdMap.has(source.attendeeId)) {\\n                // We haven't see this attendee ID so just keep track of it\\n                attendeeIdToMainGroupIdMap.set(source.attendeeId, source.groupId);\\n                continue;\\n            }\\n            // Otherwise see if we should use the group ID corresponding to this source (we prefer the highest for each attendee)\\n            const currentGroupId = attendeeIdToMainGroupIdMap.get(source.attendeeId);\\n            if (currentGroupId < source.groupId) {\\n                this.logger.warn(`Old group ID ${currentGroupId} found for attendee ID ${source.attendeeId}, replacing with newer group ID ${source.groupId}`);\\n                attendeeIdToMainGroupIdMap.set(source.attendeeId, source.groupId);\\n            }\\n            attendeeWithMultipleGroupIdsExists = true;\\n        }\\n        if (attendeeWithMultipleGroupIdsExists) {\\n            // Only use the sources corresponding to the main group IDs for the given attendee ID\\n            this.currentIndex.sources = this.currentIndex.sources.filter(source => attendeeIdToMainGroupIdMap.get(source.attendeeId) === source.groupId);\\n        }\\n        // Null out cached maps, these will be recreated on demand\\n        this.streamToAttendeeMap = null;\\n        this.streamToExternalUserIdMap = null;\\n    }\\n    subscribeFrameSent() {\\n        // This is called just as a Subscribe is being sent.  Save corresponding Index\\n        this.indexForSubscribe = this.currentIndex;\\n    }\\n    integrateSubscribeAckFrame(subscribeAck) {\\n        this.currentSubscribeAck = subscribeAck;\\n        // These are valid until the next Subscribe Ack even if the index is updated\\n        this.subscribeTrackToStreamMap = this.buildTrackToStreamMap(this.currentSubscribeAck);\\n        this.subscribeSsrcToStreamMap = this.buildSSRCToStreamMap(this.currentSubscribeAck);\\n        this.subscribeStreamToAttendeeMap = this.buildStreamToAttendeeMap(this.indexForSubscribe);\\n        this.subscribeStreamToExternalUserIdMap = this.buildStreamExternalUserIdMap(this.indexForSubscribe);\\n    }\\n    integrateBitratesFrame(bitrates) {\\n        if (this.currentIndex) {\\n            for (const bitrate of bitrates.bitrates) {\\n                const source = this.currentIndex.sources.find(source => source.streamId === bitrate.sourceStreamId);\\n                if (source !== undefined) {\\n                    source.avgBitrateBps = bitrate.avgBitrateBps;\\n                }\\n            }\\n        }\\n    }\\n    allStreams() {\\n        const set = new DefaultVideoStreamIdSet_1.default();\\n        if (this.currentIndex) {\\n            for (const source of this.currentIndex.sources) {\\n                set.add(source.streamId);\\n            }\\n        }\\n        return set;\\n    }\\n    allVideoSendingSourcesExcludingSelf(selfAttendeeId) {\\n        const videoSources = [];\\n        const attendeeSet = new Set();\\n        if (this.currentIndex) {\\n            if (this.currentIndex.sources && this.currentIndex.sources.length) {\\n                for (const stream of this.currentIndex.sources) {\\n                    const { attendeeId, externalUserId, mediaType } = stream;\\n                    if (attendeeId !== selfAttendeeId && mediaType === SignalingProtocol_js_1.SdkStreamMediaType.VIDEO) {\\n                        if (!attendeeSet.has(attendeeId)) {\\n                            videoSources.push({ attendee: { attendeeId, externalUserId } });\\n                            attendeeSet.add(attendeeId);\\n                        }\\n                    }\\n                }\\n            }\\n        }\\n        return videoSources;\\n    }\\n    streamSelectionUnderBandwidthConstraint(selfAttendeeId, largeTileAttendeeIds, smallTileAttendeeIds, bandwidthKbps) {\\n        const newAttendees = new Set();\\n        if (this.currentIndex) {\\n            for (const stream of this.currentIndex.sources) {\\n                if (stream.attendeeId === selfAttendeeId || stream.mediaType !== SignalingProtocol_js_1.SdkStreamMediaType.VIDEO) {\\n                    continue;\\n                }\\n                if (!largeTileAttendeeIds.has(stream.attendeeId) &&\\n                    !smallTileAttendeeIds.has(stream.attendeeId)) {\\n                    newAttendees.add(stream.attendeeId);\\n                }\\n            }\\n        }\\n        const attendeeToStreamDescriptorMap = this.buildAttendeeToSortedStreamDescriptorMapExcludingSelf(selfAttendeeId);\\n        const selectionMap = new Map();\\n        let usage = 0;\\n        attendeeToStreamDescriptorMap.forEach((streams, attendeeId) => {\\n            selectionMap.set(attendeeId, streams[0]);\\n            usage += streams[0].maxBitrateKbps;\\n        });\\n        usage = this.trySelectHighBitrateForAttendees(attendeeToStreamDescriptorMap, largeTileAttendeeIds, usage, bandwidthKbps, selectionMap);\\n        this.trySelectHighBitrateForAttendees(attendeeToStreamDescriptorMap, newAttendees, usage, bandwidthKbps, selectionMap);\\n        const streamSelectionSet = new DefaultVideoStreamIdSet_1.default();\\n        for (const source of selectionMap.values()) {\\n            streamSelectionSet.add(source.streamId);\\n        }\\n        return streamSelectionSet;\\n    }\\n    highestQualityStreamFromEachGroupExcludingSelf(selfAttendeeId) {\\n        const set = new DefaultVideoStreamIdSet_1.default();\\n        if (this.currentIndex) {\\n            const maxes = new Map();\\n            for (const source of this.currentIndex.sources) {\\n                if (source.attendeeId === selfAttendeeId || source.mediaType !== SignalingProtocol_js_1.SdkStreamMediaType.VIDEO) {\\n                    continue;\\n                }\\n                if (!maxes.has(source.groupId) ||\\n                    source.maxBitrateKbps > maxes.get(source.groupId).maxBitrateKbps) {\\n                    maxes.set(source.groupId, source);\\n                }\\n            }\\n            for (const source of maxes.values()) {\\n                set.add(source.streamId);\\n            }\\n        }\\n        return set;\\n    }\\n    numberOfVideoPublishingParticipantsExcludingSelf(selfAttendeeId) {\\n        return this.highestQualityStreamFromEachGroupExcludingSelf(selfAttendeeId).array().length;\\n    }\\n    numberOfParticipants() {\\n        if (!!this.currentIndex.numParticipants) {\\n            return this.currentIndex.numParticipants;\\n        }\\n        return -1;\\n    }\\n    attendeeIdForTrack(trackId) {\\n        const streamId = this.streamIdForTrack(trackId);\\n        if (streamId === undefined || !this.subscribeStreamToAttendeeMap) {\\n            this.logger.warn(`no attendee found for track ${trackId}`);\\n            return '';\\n        }\\n        const attendeeId = this.subscribeStreamToAttendeeMap.get(streamId);\\n        if (!attendeeId) {\\n            this.logger.info(`track ${trackId} (stream ${streamId}) does not correspond to a known attendee`);\\n            return '';\\n        }\\n        return attendeeId;\\n    }\\n    externalUserIdForTrack(trackId) {\\n        const streamId = this.streamIdForTrack(trackId);\\n        if (streamId === undefined || !this.subscribeStreamToExternalUserIdMap) {\\n            this.logger.warn(`no external user id found for track ${trackId}`);\\n            return '';\\n        }\\n        const externalUserId = this.subscribeStreamToExternalUserIdMap.get(streamId);\\n        if (!externalUserId) {\\n            this.logger.info(`track ${trackId} (stream ${streamId}) does not correspond to a known externalUserId`);\\n            return '';\\n        }\\n        return externalUserId;\\n    }\\n    attendeeIdForStreamId(streamId) {\\n        if (!this.streamToAttendeeMap) {\\n            if (this.currentIndex) {\\n                this.streamToAttendeeMap = this.buildStreamToAttendeeMap(this.currentIndex);\\n            }\\n            else {\\n                return '';\\n            }\\n        }\\n        const attendeeId = this.streamToAttendeeMap.get(streamId);\\n        if (!attendeeId) {\\n            this.logger.info(`stream ${streamId}) does not correspond to a known attendee`);\\n            return '';\\n        }\\n        return attendeeId;\\n    }\\n    groupIdForStreamId(streamId) {\\n        if (!this.currentIndex || !this.currentIndex.sources) {\\n            return undefined;\\n        }\\n        for (const source of this.currentIndex.sources) {\\n            if (source.streamId === streamId) {\\n                return source.groupId;\\n            }\\n        }\\n        // If wasn't found in current index, then it could be in index used in last subscribe\\n        if (!!this.indexForSubscribe) {\\n            for (const source of this.indexForSubscribe.sources) {\\n                if (source.streamId === streamId) {\\n                    return source.groupId;\\n                }\\n            }\\n        }\\n        return undefined;\\n    }\\n    StreamIdsInSameGroup(streamId1, streamId2) {\\n        if (this.groupIdForStreamId(streamId1) === this.groupIdForStreamId(streamId2)) {\\n            return true;\\n        }\\n        return false;\\n    }\\n    streamIdForTrack(trackId) {\\n        if (!this.subscribeTrackToStreamMap) {\\n            return undefined;\\n        }\\n        return this.subscribeTrackToStreamMap.get(trackId);\\n    }\\n    streamIdForSSRC(ssrcId) {\\n        if (!this.subscribeSsrcToStreamMap) {\\n            return undefined;\\n        }\\n        return this.subscribeSsrcToStreamMap.get(ssrcId);\\n    }\\n    overrideStreamIdMappings(previous, current) {\\n        if (this.subscribeTrackToStreamMap) {\\n            for (const [track, streamId] of this.subscribeTrackToStreamMap.entries()) {\\n                if (previous === streamId) {\\n                    this.subscribeTrackToStreamMap.set(track, current);\\n                    break;\\n                }\\n            }\\n        }\\n        if (this.subscribeSsrcToStreamMap) {\\n            for (const [ssrc, streamId] of this.subscribeSsrcToStreamMap.entries()) {\\n                if (previous === streamId) {\\n                    this.subscribeSsrcToStreamMap.set(ssrc, current);\\n                    break;\\n                }\\n            }\\n        }\\n    }\\n    streamsPausedAtSource() {\\n        const paused = new DefaultVideoStreamIdSet_1.default();\\n        if (this.currentIndex) {\\n            for (const streamId of this.currentIndex.pausedAtSourceIds) {\\n                paused.add(streamId);\\n            }\\n        }\\n        return paused;\\n    }\\n    buildTrackToStreamMap(subscribeAck) {\\n        const map = new Map();\\n        this.logger.debug(() => `trackMap ${JSON.stringify(subscribeAck.tracks)}`);\\n        for (const trackMapping of subscribeAck.tracks) {\\n            if (trackMapping.trackLabel.length > 0 && trackMapping.streamId > 0) {\\n                map.set(trackMapping.trackLabel, trackMapping.streamId);\\n            }\\n        }\\n        return map;\\n    }\\n    buildSSRCToStreamMap(subscribeAck) {\\n        const map = new Map();\\n        this.logger.debug(() => `ssrcMap ${JSON.stringify(subscribeAck.tracks)}`);\\n        for (const trackMapping of subscribeAck.tracks) {\\n            if (trackMapping.trackLabel.length > 0 && trackMapping.streamId > 0) {\\n                map.set(trackMapping.ssrc, trackMapping.streamId);\\n            }\\n        }\\n        return map;\\n    }\\n    buildStreamToAttendeeMap(indexFrame) {\\n        const map = new Map();\\n        if (indexFrame) {\\n            for (const source of indexFrame.sources) {\\n                map.set(source.streamId, source.attendeeId);\\n            }\\n        }\\n        return map;\\n    }\\n    buildStreamExternalUserIdMap(indexFrame) {\\n        const map = new Map();\\n        if (indexFrame) {\\n            for (const source of indexFrame.sources) {\\n                if (!!source.externalUserId) {\\n                    map.set(source.streamId, source.externalUserId);\\n                }\\n            }\\n        }\\n        return map;\\n    }\\n    trySelectHighBitrateForAttendees(attendeeToStreamDescriptorMap, highAttendees, currentUsage, bandwidthKbps, currentSelectionRef) {\\n        for (const attendeeId of highAttendees) {\\n            if (currentUsage >= bandwidthKbps) {\\n                break;\\n            }\\n            if (attendeeToStreamDescriptorMap.has(attendeeId)) {\\n                const streams = attendeeToStreamDescriptorMap.get(attendeeId);\\n                for (const l of streams.reverse()) {\\n                    if (currentUsage - currentSelectionRef.get(attendeeId).maxBitrateKbps + l.maxBitrateKbps <\\n                        bandwidthKbps) {\\n                        currentUsage =\\n                            currentUsage - currentSelectionRef.get(attendeeId).maxBitrateKbps + l.maxBitrateKbps;\\n                        currentSelectionRef.set(attendeeId, l);\\n                        break;\\n                    }\\n                }\\n            }\\n        }\\n        return currentUsage;\\n    }\\n    buildAttendeeToSortedStreamDescriptorMapExcludingSelf(selfAttendeeId) {\\n        const attendeeToStreamDescriptorMap = new Map();\\n        if (this.currentIndex) {\\n            for (const source of this.currentIndex.sources) {\\n                if (source.attendeeId === selfAttendeeId || source.mediaType !== SignalingProtocol_js_1.SdkStreamMediaType.VIDEO) {\\n                    continue;\\n                }\\n                if (attendeeToStreamDescriptorMap.has(source.attendeeId)) {\\n                    attendeeToStreamDescriptorMap.get(source.attendeeId).push(source);\\n                }\\n                else {\\n                    attendeeToStreamDescriptorMap.set(source.attendeeId, [source]);\\n                }\\n            }\\n        }\\n        attendeeToStreamDescriptorMap.forEach((streams, _attendeeId) => {\\n            streams.sort((stream1, stream2) => {\\n                if (stream1.maxBitrateKbps > stream2.maxBitrateKbps) {\\n                    return 1;\\n                }\\n                else if (stream1.maxBitrateKbps < stream2.maxBitrateKbps) {\\n                    return -1;\\n                }\\n                else {\\n                    return 0;\\n                }\\n            });\\n        });\\n        return attendeeToStreamDescriptorMap;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoStreamIndex;\\n//# sourceMappingURL=DefaultVideoStreamIndex.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videostreamindex/SimulcastVideoStreamIndex.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videostreamindex/SimulcastVideoStreamIndex.js ***!\n  \\**********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nconst DefaultVideoStreamIndex_1 = __webpack_require__(/*! ./DefaultVideoStreamIndex */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/DefaultVideoStreamIndex.js\\\");\\nconst VideoStreamDescription_1 = __webpack_require__(/*! ./VideoStreamDescription */ \\\"./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js\\\");\\n/**\\n * [[SimulcastTransceiverController]] implements [[VideoStreamIndex]] to facilitate video stream\\n * subscription and includes query functions for stream id and attendee id.\\n */\\nclass SimulcastVideoStreamIndex extends DefaultVideoStreamIndex_1.default {\\n    constructor(logger) {\\n        super(logger);\\n        this.streamIdToBitrateKbpsMap = new Map();\\n        this._localStreamInfos = [];\\n        this._lastBitRateMsgTime = Date.now();\\n    }\\n    localStreamDescriptions() {\\n        const clonedDescriptions = [];\\n        this._localStreamInfos.forEach(desc => {\\n            clonedDescriptions.push(desc.clone());\\n        });\\n        return clonedDescriptions;\\n    }\\n    integrateUplinkPolicyDecision(encodingParams) {\\n        // Reuse local streams (that might already have stream IDs allocated) until\\n        // there are no more and then add as many new local streams as needed\\n        let hasStreamsToReuse = true;\\n        let localStreamIndex = 0;\\n        for (let i = 0; i < encodingParams.length; i++) {\\n            const targetMaxBitrateKbps = encodingParams[i].maxBitrate / 1000;\\n            const targetMaxFrameRate = encodingParams[i].maxFramerate;\\n            if (!hasStreamsToReuse || i === this._localStreamInfos.length) {\\n                hasStreamsToReuse = false;\\n                const newInfo = new VideoStreamDescription_1.default();\\n                newInfo.maxBitrateKbps = targetMaxBitrateKbps;\\n                newInfo.maxFrameRate = targetMaxFrameRate;\\n                newInfo.disabledByUplinkPolicy = targetMaxBitrateKbps === 0 ? true : false;\\n                if (targetMaxBitrateKbps !== 0) {\\n                    newInfo.timeEnabled = Date.now();\\n                }\\n                this._localStreamInfos.push(newInfo);\\n                localStreamIndex++;\\n                continue;\\n            }\\n            if (this._localStreamInfos[localStreamIndex].maxBitrateKbps === 0 &&\\n                targetMaxBitrateKbps > 0) {\\n                this._localStreamInfos[localStreamIndex].timeEnabled = Date.now();\\n            }\\n            this._localStreamInfos[localStreamIndex].maxBitrateKbps = targetMaxBitrateKbps;\\n            this._localStreamInfos[localStreamIndex].maxFrameRate = targetMaxFrameRate;\\n            this._localStreamInfos[localStreamIndex].disabledByUplinkPolicy =\\n                targetMaxBitrateKbps === 0 ? true : false;\\n            if (this._localStreamInfos[localStreamIndex].disabledByUplinkPolicy === true) {\\n                this._localStreamInfos[localStreamIndex].disabledByWebRTC = false;\\n            }\\n            localStreamIndex++;\\n        }\\n        if (hasStreamsToReuse) {\\n            // splice is zero-based, remove stream starting from localStreamIndex\\n            this._localStreamInfos.splice(localStreamIndex);\\n        }\\n    }\\n    integrateBitratesFrame(bitrateFrame) {\\n        super.integrateBitratesFrame(bitrateFrame);\\n        const stillSending = new Set();\\n        const existingSet = new Set(this.streamIdToBitrateKbpsMap.keys());\\n        for (const bitrateMsg of bitrateFrame.bitrates) {\\n            stillSending.add(bitrateMsg.sourceStreamId);\\n            this.streamIdToBitrateKbpsMap.set(bitrateMsg.sourceStreamId, this.convertBpsToKbps(bitrateMsg.avgBitrateBps));\\n        }\\n        for (const id of existingSet) {\\n            if (!stillSending.has(id)) {\\n                const avgBitrateBps = this.streamIdToBitrateKbpsMap.get(id);\\n                if (avgBitrateBps === SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE) {\\n                    this.streamIdToBitrateKbpsMap.set(id, SimulcastVideoStreamIndex.RECENTLY_INACTIVE_STREAM_BITRATE);\\n                }\\n                else {\\n                    this.streamIdToBitrateKbpsMap.set(id, SimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE);\\n                }\\n            }\\n        }\\n        for (let i = 0; i < this._localStreamInfos.length; i++) {\\n            this._localStreamInfos[i].disabledByWebRTC = false;\\n            const streamId = this._localStreamInfos[i].streamId;\\n            if (this._localStreamInfos[i].disabledByUplinkPolicy) {\\n                continue;\\n            }\\n            if (this.streamIdToBitrateKbpsMap.has(streamId)) {\\n                const avgBitrateKbps = this.streamIdToBitrateKbpsMap.get(streamId);\\n                if (avgBitrateKbps === SimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE &&\\n                    this._lastBitRateMsgTime - this._localStreamInfos[i].timeEnabled >\\n                        SimulcastVideoStreamIndex.BitratesMsgFrequencyMs) {\\n                    this._localStreamInfos[i].disabledByWebRTC = true;\\n                }\\n            }\\n            else {\\n                // Do not flag as disabled if it was recently enabled\\n                if (this._lastBitRateMsgTime - this._localStreamInfos[i].timeEnabled >\\n                    SimulcastVideoStreamIndex.BitratesMsgFrequencyMs) {\\n                    this._localStreamInfos[i].disabledByWebRTC = true;\\n                }\\n            }\\n        }\\n        this._lastBitRateMsgTime = Date.now();\\n        this.logLocalStreamDescriptions();\\n    }\\n    logLocalStreamDescriptions() {\\n        let msg = '';\\n        for (const desc of this._localStreamInfos) {\\n            msg += `streamId=${desc.streamId} maxBitrate=${desc.maxBitrateKbps} disabledByWebRTC=${desc.disabledByWebRTC} disabledByUplink=${desc.disabledByUplinkPolicy}\\\\n`;\\n        }\\n        this.logger.debug(() => {\\n            return msg;\\n        });\\n    }\\n    integrateIndexFrame(indexFrame) {\\n        super.integrateIndexFrame(indexFrame);\\n        const newIndexStreamIdSet = new Set();\\n        const existingSet = new Set(this.streamIdToBitrateKbpsMap.keys());\\n        for (const stream of this.currentIndex.sources) {\\n            if (stream.mediaType !== SignalingProtocol_js_1.SdkStreamMediaType.VIDEO) {\\n                continue;\\n            }\\n            newIndexStreamIdSet.add(stream.streamId);\\n            if (!this.streamIdToBitrateKbpsMap.has(stream.streamId)) {\\n                this.streamIdToBitrateKbpsMap.set(stream.streamId, SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE);\\n            }\\n        }\\n        for (const id of existingSet) {\\n            if (!newIndexStreamIdSet.has(id)) {\\n                this.streamIdToBitrateKbpsMap.delete(id);\\n            }\\n        }\\n    }\\n    integrateSubscribeAckFrame(subscribeAck) {\\n        super.integrateSubscribeAckFrame(subscribeAck);\\n        if (!subscribeAck.allocations || subscribeAck.allocations === undefined) {\\n            return;\\n        }\\n        let localStreamStartIndex = 0;\\n        for (const allocation of subscribeAck.allocations) {\\n            // track label is what we offered to the server\\n            if (this._localStreamInfos.length < localStreamStartIndex + 1) {\\n                this.logger.info('simulcast: allocation has more than number of local streams');\\n                break;\\n            }\\n            this._localStreamInfos[localStreamStartIndex].groupId = allocation.groupId;\\n            this._localStreamInfos[localStreamStartIndex].streamId = allocation.streamId;\\n            if (!this.streamIdToBitrateKbpsMap.has(allocation.streamId)) {\\n                this.streamIdToBitrateKbpsMap.set(allocation.streamId, SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE);\\n            }\\n            localStreamStartIndex++;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = SimulcastVideoStreamIndex;\\n// First time when the bitrate of a stream id is missing from bitrate message, mark it as UNSEEN\\nSimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE = -2;\\n// Second time when the bitrate is missing, mark it as recently inactive\\nSimulcastVideoStreamIndex.RECENTLY_INACTIVE_STREAM_BITRATE = -1;\\n// Third time when bitrate is missing, mark it as not sending\\nSimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE = 0;\\nSimulcastVideoStreamIndex.BitratesMsgFrequencyMs = 4000;\\n//# sourceMappingURL=SimulcastVideoStreamIndex.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videostreamindex/SimulcastVideoStreamIndex.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js ***!\n  \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SignalingProtocol_js_1 = __webpack_require__(/*! ../signalingprotocol/SignalingProtocol.js */ \\\"./node_modules/amazon-chime-sdk-js/build/signalingprotocol/SignalingProtocol.js\\\");\\nclass VideoStreamDescription {\\n    constructor(attendeeId, groupId, streamId, maxBitrateKbps, avgBitrateKbps) {\\n        this.attendeeId = '';\\n        this.groupId = 0;\\n        this.streamId = 0;\\n        this.ssrc = 0;\\n        this.trackLabel = '';\\n        this.maxBitrateKbps = 0;\\n        // average bitrate is updated every 2 seconds via bitrates messages\\n        this.avgBitrateKbps = 0;\\n        this.maxFrameRate = 0;\\n        this.timeEnabled = 0;\\n        this.disabledByWebRTC = false;\\n        this.disabledByUplinkPolicy = false;\\n        this.attendeeId = attendeeId;\\n        this.groupId = groupId;\\n        this.streamId = streamId;\\n        this.maxBitrateKbps = maxBitrateKbps;\\n        this.avgBitrateKbps = avgBitrateKbps;\\n    }\\n    clone() {\\n        const newInfo = new VideoStreamDescription();\\n        newInfo.attendeeId = this.attendeeId;\\n        newInfo.groupId = this.groupId;\\n        newInfo.streamId = this.streamId;\\n        newInfo.ssrc = this.ssrc;\\n        newInfo.trackLabel = this.trackLabel;\\n        newInfo.maxBitrateKbps = this.maxBitrateKbps;\\n        newInfo.avgBitrateKbps = this.avgBitrateKbps;\\n        newInfo.maxFrameRate = this.maxFrameRate;\\n        newInfo.timeEnabled = this.timeEnabled;\\n        newInfo.disabledByWebRTC = this.disabledByWebRTC;\\n        newInfo.disabledByUplinkPolicy = this.disabledByUplinkPolicy;\\n        return newInfo;\\n    }\\n    toStreamDescriptor() {\\n        const descriptor = SignalingProtocol_js_1.SdkStreamDescriptor.create();\\n        descriptor.mediaType = SignalingProtocol_js_1.SdkStreamMediaType.VIDEO;\\n        descriptor.trackLabel = this.trackLabel;\\n        descriptor.attendeeId = this.attendeeId;\\n        descriptor.streamId = this.streamId;\\n        descriptor.groupId = this.groupId;\\n        descriptor.framerate = this.maxFrameRate;\\n        descriptor.maxBitrateKbps =\\n            this.disabledByUplinkPolicy || this.disabledByWebRTC ? 0 : this.maxBitrateKbps;\\n        descriptor.avgBitrateBps = this.avgBitrateKbps;\\n        return descriptor;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoStreamDescription;\\n//# sourceMappingURL=VideoStreamDescription.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videostreamindex/VideoStreamDescription.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js ***!\n  \\******************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\nconst DefaultModality_1 = __webpack_require__(/*! ../modality/DefaultModality */ \\\"./node_modules/amazon-chime-sdk-js/build/modality/DefaultModality.js\\\");\\nconst VideoTileState_1 = __webpack_require__(/*! ./VideoTileState */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/VideoTileState.js\\\");\\nclass DefaultVideoTile {\\n    constructor(tileId, localTile, tileController, devicePixelRatioMonitor) {\\n        this.tileController = tileController;\\n        this.devicePixelRatioMonitor = devicePixelRatioMonitor;\\n        this.tileState = new VideoTileState_1.default();\\n        this.tileState.tileId = tileId;\\n        this.tileState.localTile = localTile;\\n        this.devicePixelRatioMonitor.registerObserver(this);\\n    }\\n    /**\\n     * Connect a video stream to a video element by setting the srcObject of the video element to the video stream.\\n     * @param videoStream The video stream input.\\n     * @param videoElement The video element input.\\n     * @param localTile Flag to indicate whether this is a local video.\\n     */\\n    static connectVideoStreamToVideoElement(videoStream, videoElement, localTile) {\\n        const transform = localTile && videoStream.getVideoTracks()[0].getSettings().facingMode !== 'environment'\\n            ? 'rotateY(180deg)'\\n            : '';\\n        DefaultVideoTile.setVideoElementFlag(videoElement, 'disablePictureInPicture', localTile);\\n        DefaultVideoTile.setVideoElementFlag(videoElement, 'disableRemotePlayback', localTile);\\n        if (videoElement.style.transform !== transform) {\\n            videoElement.style.transform = transform;\\n        }\\n        if (videoElement.hasAttribute('controls')) {\\n            videoElement.removeAttribute('controls');\\n        }\\n        if (!videoElement.hasAttribute('autoplay')) {\\n            videoElement.setAttribute('autoplay', 'true');\\n        }\\n        // playsinline is needed for video to play in iPhone in non-fullscreen mode.\\n        // See https://developer.apple.com/documentation/webkit/safari_tools_and_features/delivering_video_content_for_safari#3030250\\n        if (!videoElement.hasAttribute('playsinline')) {\\n            videoElement.setAttribute('playsinline', 'true');\\n        }\\n        // Note that setting the *attribute* 'muted' affects whether the element\\n        // is muted *by default* (`.defaultMuted`), not whether it is currently muted (`.muted`).\\n        // https://html.spec.whatwg.org/#dom-media-defaultmuted\\n        if (!videoElement.hasAttribute('muted')) {\\n            // The default value…\\n            videoElement.setAttribute('muted', 'true');\\n            // … and the value right now.\\n            videoElement.muted = true;\\n        }\\n        if (videoElement.srcObject !== videoStream) {\\n            videoElement.srcObject = videoStream;\\n            // In Safari, a hidden video element can show a black screen.\\n            // See https://bugs.webkit.org/show_bug.cgi?id=241152 for more information.\\n            if (new DefaultBrowserBehavior_1.default().requiresVideoPlayWorkaround() && videoElement.paused) {\\n                const promise = videoElement.play();\\n                // See https://bugs.webkit.org/show_bug.cgi?id=243519 for more information.\\n                // https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/\\n                /* istanbul ignore else */\\n                if (promise !== undefined) {\\n                    promise\\n                        .catch(error => {\\n                        console.warn('Error playing video in Safari', error);\\n                    })\\n                        .then(() => {\\n                        // `then` block is needed, without it we run into black tile issue even though we catch the error.\\n                        console.debug('Video played successfully in Safari');\\n                    });\\n                }\\n            }\\n        }\\n    }\\n    /**\\n     * Disconnect a video stream from a video element by setting `HTMLVideoElement.srcObject` to `null`.\\n     * @param videoElement The video element input.\\n     * @param dueToPause A flag to indicate whether this function is called due to pausing video tile.\\n     * Based on `keepLastFrameWhenPaused`, it sets `HTMLVideoElement.srcObject` to `null`.\\n     * @param keepLastFrameWhenPaused If `true` and `dueToPause` is also `true`, then we will not set `HTMLVideoElement.srcObject` of the\\n     * video element to `null` when it is paused and therefore, the last frame of the stream will be shown.\\n     */\\n    static disconnectVideoStreamFromVideoElement(videoElement, dueToPause, keepLastFrameWhenPaused = false) {\\n        if (!videoElement) {\\n            return;\\n        }\\n        if (dueToPause) {\\n            if (!keepLastFrameWhenPaused) {\\n                videoElement.srcObject = null;\\n                videoElement.style.transform = '';\\n            }\\n        }\\n        else {\\n            if (!videoElement.srcObject) {\\n                return;\\n            }\\n            videoElement.pause();\\n            videoElement.style.transform = '';\\n            DefaultVideoTile.setVideoElementFlag(videoElement, 'disablePictureInPicture', false);\\n            DefaultVideoTile.setVideoElementFlag(videoElement, 'disableRemotePlayback', false);\\n            videoElement.srcObject = null;\\n        }\\n    }\\n    destroy() {\\n        this.devicePixelRatioMonitor.removeObserver(this);\\n        if (this.tileState.boundVideoElement &&\\n            this.tileState.boundVideoElement.srcObject === this.tileState.boundVideoStream) {\\n            DefaultVideoTile.disconnectVideoStreamFromVideoElement(this.tileState.boundVideoElement, false);\\n        }\\n        this.tileState = new VideoTileState_1.default();\\n    }\\n    devicePixelRatioChanged(newDevicePixelRatio) {\\n        this.tileState.devicePixelRatio = newDevicePixelRatio;\\n        this.sendTileStateUpdate();\\n    }\\n    id() {\\n        return this.tileState.tileId;\\n    }\\n    state() {\\n        return this.tileState.clone();\\n    }\\n    stateRef() {\\n        return this.tileState;\\n    }\\n    bindVideoStream(attendeeId, localTile, mediaStream, contentWidth, contentHeight, streamId, externalUserId) {\\n        let tileUpdated = false;\\n        if (this.tileState.boundAttendeeId !== attendeeId) {\\n            this.tileState.boundAttendeeId = attendeeId;\\n            if (new DefaultModality_1.default(attendeeId).hasModality(DefaultModality_1.default.MODALITY_CONTENT)) {\\n                this.tileState.isContent = true;\\n            }\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.boundExternalUserId !== externalUserId) {\\n            this.tileState.boundExternalUserId = externalUserId;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.localTile !== localTile) {\\n            this.tileState.localTile = localTile;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.boundVideoStream !== mediaStream) {\\n            this.tileState.boundVideoStream = mediaStream;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.videoStreamContentWidth !== contentWidth) {\\n            this.tileState.videoStreamContentWidth = contentWidth;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.videoStreamContentHeight !== contentHeight) {\\n            this.tileState.videoStreamContentHeight = contentHeight;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.streamId !== streamId) {\\n            this.tileState.streamId = streamId;\\n            tileUpdated = true;\\n        }\\n        if (tileUpdated) {\\n            this.sendTileStateUpdate();\\n        }\\n    }\\n    bindVideoElement(videoElement) {\\n        let tileUpdated = false;\\n        if (this.tileState.boundVideoElement !== videoElement) {\\n            this.tileState.boundVideoElement = videoElement;\\n            tileUpdated = true;\\n        }\\n        if (this.tileState.boundVideoElement !== null) {\\n            if (this.tileState.videoElementCSSWidthPixels !== videoElement.clientWidth) {\\n                this.tileState.videoElementCSSWidthPixels = videoElement.clientWidth;\\n                tileUpdated = true;\\n            }\\n            if (this.tileState.videoElementCSSHeightPixels !== videoElement.clientHeight) {\\n                this.tileState.videoElementCSSHeightPixels = videoElement.clientHeight;\\n                tileUpdated = true;\\n            }\\n        }\\n        else {\\n            this.tileState.videoElementCSSWidthPixels = null;\\n            this.tileState.videoElementCSSHeightPixels = null;\\n        }\\n        if (tileUpdated) {\\n            this.sendTileStateUpdate();\\n        }\\n    }\\n    pause() {\\n        if (!this.tileState.paused) {\\n            this.tileState.paused = true;\\n            this.sendTileStateUpdate();\\n        }\\n    }\\n    unpause() {\\n        if (this.tileState.paused) {\\n            this.tileState.paused = false;\\n            this.sendTileStateUpdate();\\n        }\\n    }\\n    markPoorConnection() {\\n        if (this.tileState.poorConnection) {\\n            return false;\\n        }\\n        this.tileState.poorConnection = true;\\n        this.sendTileStateUpdate();\\n        return true;\\n    }\\n    unmarkPoorConnection() {\\n        if (!this.tileState.poorConnection) {\\n            return false;\\n        }\\n        this.tileState.poorConnection = false;\\n        this.sendTileStateUpdate();\\n        return true;\\n    }\\n    capture() {\\n        if (!this.tileState.active) {\\n            return null;\\n        }\\n        const canvas = document.createElement('canvas');\\n        const video = this.tileState.boundVideoElement;\\n        canvas.width = video.videoWidth || video.width;\\n        canvas.height = video.videoHeight || video.height;\\n        const ctx = canvas.getContext('2d');\\n        ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\\n        return ctx.getImageData(0, 0, canvas.width, canvas.height);\\n    }\\n    setStreamId(id) {\\n        this.tileState.streamId = id;\\n        // `streamId` is not likely used by builders but we can't\\n        // be sure so send a tile state update just in case.\\n        this.tileController.sendTileStateUpdate(this.state());\\n    }\\n    sendTileStateUpdate() {\\n        this.updateActiveState();\\n        this.updateVideoStreamOnVideoElement();\\n        this.updateVideoElementPhysicalPixels();\\n        this.tileController.sendTileStateUpdate(this.state());\\n    }\\n    updateActiveState() {\\n        this.tileState.active = !!(!this.tileState.paused &&\\n            !this.tileState.poorConnection &&\\n            this.tileState.boundAttendeeId &&\\n            this.tileState.boundVideoElement &&\\n            this.tileState.boundVideoStream);\\n    }\\n    updateVideoElementPhysicalPixels() {\\n        if (typeof this.tileState.videoElementCSSWidthPixels === 'number' &&\\n            typeof this.tileState.videoElementCSSHeightPixels === 'number') {\\n            this.tileState.videoElementPhysicalWidthPixels =\\n                this.tileState.devicePixelRatio * this.tileState.videoElementCSSWidthPixels;\\n            this.tileState.videoElementPhysicalHeightPixels =\\n                this.tileState.devicePixelRatio * this.tileState.videoElementCSSHeightPixels;\\n        }\\n        else {\\n            this.tileState.videoElementPhysicalWidthPixels = null;\\n            this.tileState.videoElementPhysicalHeightPixels = null;\\n        }\\n    }\\n    updateVideoStreamOnVideoElement() {\\n        if (this.tileState.active) {\\n            DefaultVideoTile.connectVideoStreamToVideoElement(this.tileState.boundVideoStream, this.tileState.boundVideoElement, this.tileState.localTile);\\n        }\\n        else {\\n            DefaultVideoTile.disconnectVideoStreamFromVideoElement(this.tileState.boundVideoElement, this.tileState.paused, this.tileController.keepLastFrameWhenPaused);\\n        }\\n    }\\n    static setVideoElementFlag(videoElement, flag, value) {\\n        if (flag in videoElement) {\\n            // @ts-ignore\\n            videoElement[flag] = value;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoTile;\\n//# sourceMappingURL=DefaultVideoTile.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videotile/VideoTileState.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videotile/VideoTileState.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/**\\n * [[VideoTileState]] encapsulates the state of a [[VideoTile]]\\n */\\nclass VideoTileState {\\n    constructor() {\\n        /**\\n         * The unique identifier for the [[VideoTile]] managed by [[VideoTileController]]. Each attendee can have at most one tileId.\\n         */\\n        this.tileId = null;\\n        /**\\n         * Indication of whether tile is associated with local video.\\n         */\\n        this.localTile = false;\\n        /**\\n         * Indication of whether the tile associated with the local attendee has started to play.\\n         */\\n        this.localTileStarted = false;\\n        /**\\n         * Indication of whether the tile has content-sharing video.\\n         */\\n        this.isContent = false;\\n        /**\\n         * Indication of whether the tile has active video stream. This value may be somewhat arbitrary in how it is calculated,\\n         * it is recommended to use the more specific values (e.g. `paused`, `boundVideoElement`, and `boundVideoStream`) to\\n         * determine activity as appropriate for your application.\\n         */\\n        this.active = false;\\n        /**\\n         * Indication of whether the tile has paused video stream.\\n         */\\n        this.paused = false;\\n        /**\\n         * Indication of whether the remote video is paused at publishing attendee. This field is not supported.\\n         */\\n        this.poorConnection = false;\\n        /**\\n         * The attendee id associated with the [[VideoTile]].\\n         */\\n        this.boundAttendeeId = null;\\n        /**\\n         * The user id associated with the [[VideoTile]].\\n         */\\n        this.boundExternalUserId = null;\\n        /**\\n         * The video stream bound with the [[VideoTile]].\\n         */\\n        this.boundVideoStream = null;\\n        /**\\n         * The HTMLVideoElement bound with the [[VideoTile]].\\n         */\\n        this.boundVideoElement = null;\\n        /**\\n         * The nameplate for the [[VideoTile]]. SDK users should use boundExternalUserId for user id instead of this field.\\n         */\\n        this.nameplate = null;\\n        /**\\n         * The intrinsic width of the video stream upon binding with the [[VideoTile]].\\n         * Video stream intrinsic width could change and developers should use HTMLVideoElement listener for actual intrinsic width.\\n         */\\n        this.videoStreamContentWidth = null;\\n        /**\\n         * The intrinsic height of the video stream upon binding with the [[VideoTile]]\\n         * Video stream intrinsic height could change and developers should use HTMLVideoElement listener for actual intrinsic height.\\n         */\\n        this.videoStreamContentHeight = null;\\n        /**\\n         * The CSS width in pixel of the HTMLVideoElement upon binding with the [[VideoTile]].\\n         */\\n        this.videoElementCSSWidthPixels = null;\\n        /**\\n         * The CSS height in pixel of the HTMLVideoElement upon binding with the [[VideoTile]].\\n         */\\n        this.videoElementCSSHeightPixels = null;\\n        /**\\n         * The device pixel ratio of the current display monitor.\\n         */\\n        this.devicePixelRatio = 0;\\n        /**\\n         * The physical width in pixel of the HTMLVideoElement upon binding with the [[VideoTile]].\\n         */\\n        this.videoElementPhysicalWidthPixels = null;\\n        /**\\n         * The physical height in pixel of the HTMLVideoElement upon binding with the [[VideoTile]].\\n         */\\n        this.videoElementPhysicalHeightPixels = null;\\n        /**\\n         * The unique identifier published by server to associate with bound video stream. It is defined in [[SignalingProtocol.proto]].\\n         * Developers should avoid using this field directly.\\n         */\\n        this.streamId = null;\\n    }\\n    clone() {\\n        const cloned = new VideoTileState();\\n        cloned.tileId = this.tileId;\\n        cloned.localTile = this.localTile;\\n        cloned.isContent = this.isContent;\\n        cloned.active = this.active;\\n        cloned.paused = this.paused;\\n        cloned.poorConnection = this.poorConnection;\\n        cloned.boundAttendeeId = this.boundAttendeeId;\\n        cloned.boundExternalUserId = this.boundExternalUserId;\\n        cloned.boundVideoStream = this.boundVideoStream;\\n        cloned.boundVideoElement = this.boundVideoElement;\\n        cloned.nameplate = this.nameplate;\\n        cloned.videoStreamContentWidth = this.videoStreamContentWidth;\\n        cloned.videoStreamContentHeight = this.videoStreamContentHeight;\\n        cloned.videoElementCSSWidthPixels = this.videoElementCSSWidthPixels;\\n        cloned.videoElementCSSHeightPixels = this.videoElementCSSHeightPixels;\\n        cloned.devicePixelRatio = this.devicePixelRatio;\\n        cloned.videoElementPhysicalWidthPixels = this.videoElementPhysicalWidthPixels;\\n        cloned.videoElementPhysicalHeightPixels = this.videoElementPhysicalHeightPixels;\\n        cloned.streamId = this.streamId;\\n        return cloned;\\n    }\\n}\\nexports[\\\"default\\\"] = VideoTileState;\\n//# sourceMappingURL=VideoTileState.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videotile/VideoTileState.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videotilecontroller/DefaultVideoTileController.js\":\n/*!**************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videotilecontroller/DefaultVideoTileController.js ***!\n  \\**************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultDevicePixelRatioMonitor_1 = __webpack_require__(/*! ../devicepixelratiomonitor/DefaultDevicePixelRatioMonitor */ \\\"./node_modules/amazon-chime-sdk-js/build/devicepixelratiomonitor/DefaultDevicePixelRatioMonitor.js\\\");\\nconst DevicePixelRatioWindowSource_1 = __webpack_require__(/*! ../devicepixelratiosource/DevicePixelRatioWindowSource */ \\\"./node_modules/amazon-chime-sdk-js/build/devicepixelratiosource/DevicePixelRatioWindowSource.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst DefaultVideoTile_1 = __webpack_require__(/*! ../videotile/DefaultVideoTile */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js\\\");\\nclass DefaultVideoTileController {\\n    constructor(tileFactory, audioVideoController, logger) {\\n        this.tileFactory = tileFactory;\\n        this.audioVideoController = audioVideoController;\\n        this.logger = logger;\\n        this.tileMap = new Map();\\n        this.nextTileId = 1;\\n        this.currentLocalTile = null;\\n        this.currentPausedTilesByIds = new Set();\\n        this.keepLastFrameWhenPaused = false;\\n        this.keepLastFrameWhenPaused = audioVideoController.configuration.keepLastFrameWhenPaused;\\n    }\\n    createDevicePixelRatioMonitorIfNeeded() {\\n        if (this.devicePixelRatioMonitor) {\\n            return;\\n        }\\n        this.devicePixelRatioMonitor = new DefaultDevicePixelRatioMonitor_1.default(new DevicePixelRatioWindowSource_1.default(), this.logger);\\n    }\\n    discardDevicePixelRatioMonitorIfNotNeeded() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.tileMap.size || !this.devicePixelRatioMonitor) {\\n                return;\\n            }\\n            const monitor = this.devicePixelRatioMonitor;\\n            this.devicePixelRatioMonitor = undefined;\\n            return monitor.destroy();\\n        });\\n    }\\n    bindVideoElement(tileId, videoElement) {\\n        const tile = this.getVideoTile(tileId);\\n        if (tile === null) {\\n            this.logger.warn(`Ignoring video element binding for unknown tile id ${tileId}`);\\n            return;\\n        }\\n        tile.bindVideoElement(videoElement);\\n    }\\n    unbindVideoElement(tileId, cleanUpVideoElement = true) {\\n        const tile = this.getVideoTile(tileId);\\n        if (tile === null) {\\n            this.logger.warn(`Ignoring video element unbinding for unknown tile id ${tileId}`);\\n            return;\\n        }\\n        this.logger.info('Unbinding the video element');\\n        const videoElement = tile.stateRef().boundVideoElement;\\n        tile.bindVideoElement(null);\\n        if (cleanUpVideoElement) {\\n            this.logger.info('Cleaning up the video element');\\n            DefaultVideoTile_1.default.disconnectVideoStreamFromVideoElement(videoElement, false);\\n        }\\n    }\\n    startLocalVideoTile() {\\n        const tile = this.findOrCreateLocalVideoTile();\\n        this.currentLocalTile.stateRef().localTileStarted = true;\\n        this.audioVideoController.update({ needsRenegotiation: true });\\n        return tile.id();\\n    }\\n    stopLocalVideoTile() {\\n        if (!this.currentLocalTile) {\\n            return;\\n        }\\n        this.currentLocalTile.stateRef().localTileStarted = false;\\n        this.currentLocalTile.bindVideoStream(this.audioVideoController.configuration.credentials.attendeeId, true, null, null, null, null, this.audioVideoController.configuration.credentials.externalUserId);\\n        this.audioVideoController.update({ needsRenegotiation: true });\\n    }\\n    hasStartedLocalVideoTile() {\\n        return !!(this.currentLocalTile && this.currentLocalTile.stateRef().localTileStarted);\\n    }\\n    removeLocalVideoTile() {\\n        if (this.currentLocalTile) {\\n            this.removeVideoTile(this.currentLocalTile.id());\\n        }\\n    }\\n    getLocalVideoTile() {\\n        return this.currentLocalTile;\\n    }\\n    pauseVideoTile(tileId) {\\n        const tile = this.getVideoTile(tileId);\\n        if (tile) {\\n            if (!this.currentPausedTilesByIds.has(tileId)) {\\n                this.audioVideoController.pauseReceivingStream(tile.stateRef().streamId);\\n                this.currentPausedTilesByIds.add(tileId);\\n            }\\n            tile.pause();\\n        }\\n    }\\n    unpauseVideoTile(tileId) {\\n        const tile = this.getVideoTile(tileId);\\n        if (tile) {\\n            if (this.currentPausedTilesByIds.has(tileId)) {\\n                this.audioVideoController.resumeReceivingStream(tile.stateRef().streamId);\\n                this.currentPausedTilesByIds.delete(tileId);\\n            }\\n            tile.unpause();\\n        }\\n    }\\n    getVideoTile(tileId) {\\n        return this.tileMap.has(tileId) ? this.tileMap.get(tileId) : null;\\n    }\\n    getVideoTileArea(tile) {\\n        const state = tile.state();\\n        let tileHeight = 0;\\n        let tileWidth = 0;\\n        if (state.boundVideoElement) {\\n            tileHeight = state.boundVideoElement.clientHeight * state.devicePixelRatio;\\n            tileWidth = state.boundVideoElement.clientWidth * state.devicePixelRatio;\\n        }\\n        return tileHeight * tileWidth;\\n    }\\n    getAllRemoteVideoTiles() {\\n        const result = new Array();\\n        this.tileMap.forEach((tile, tileId) => {\\n            if (!this.currentLocalTile || tileId !== this.currentLocalTile.id()) {\\n                result.push(tile);\\n            }\\n        });\\n        return result;\\n    }\\n    getAllVideoTiles() {\\n        return Array.from(this.tileMap.values());\\n    }\\n    addVideoTile(localTile = false) {\\n        const tileId = this.nextTileId;\\n        this.nextTileId += 1;\\n        this.createDevicePixelRatioMonitorIfNeeded();\\n        const tile = this.tileFactory.makeTile(tileId, localTile, this, this.devicePixelRatioMonitor);\\n        this.tileMap.set(tileId, tile);\\n        return tile;\\n    }\\n    removeVideoTile(tileId) {\\n        if (!this.tileMap.has(tileId)) {\\n            return;\\n        }\\n        const tile = this.tileMap.get(tileId);\\n        if (this.currentLocalTile === tile) {\\n            this.currentLocalTile = null;\\n        }\\n        tile.destroy();\\n        this.tileMap.delete(tileId);\\n        this.audioVideoController.forEachObserver((observer) => {\\n            Types_1.Maybe.of(observer.videoTileWasRemoved).map(f => f.bind(observer)(tileId));\\n        });\\n        this.discardDevicePixelRatioMonitorIfNotNeeded();\\n    }\\n    removeVideoTilesByAttendeeId(attendeeId) {\\n        const tilesRemoved = [];\\n        for (const tile of this.getAllVideoTiles()) {\\n            const state = tile.state();\\n            if (state.boundAttendeeId === attendeeId) {\\n                this.removeVideoTile(state.tileId);\\n                tilesRemoved.push(state.tileId);\\n            }\\n        }\\n        return tilesRemoved;\\n    }\\n    removeAllVideoTiles() {\\n        const tileIds = Array.from(this.tileMap.keys());\\n        for (const tileId of tileIds) {\\n            this.removeVideoTile(tileId);\\n        }\\n    }\\n    sendTileStateUpdate(tileState) {\\n        this.audioVideoController.forEachObserver((observer) => {\\n            Types_1.Maybe.of(observer.videoTileDidUpdate).map(f => f.bind(observer)(tileState));\\n        });\\n    }\\n    haveVideoTilesWithStreams() {\\n        for (const tile of this.getAllVideoTiles()) {\\n            if (tile.state().boundVideoStream) {\\n                return true;\\n            }\\n        }\\n        return false;\\n    }\\n    haveVideoTileForAttendeeId(attendeeId) {\\n        return !!this.getVideoTileForAttendeeId(attendeeId);\\n    }\\n    getVideoTileForAttendeeId(attendeeId) {\\n        for (const tile of this.getAllVideoTiles()) {\\n            const state = tile.state();\\n            if (state.boundAttendeeId === attendeeId) {\\n                return tile;\\n            }\\n        }\\n        return undefined;\\n    }\\n    captureVideoTile(tileId) {\\n        const tile = this.getVideoTile(tileId);\\n        if (!tile) {\\n            return null;\\n        }\\n        return tile.capture();\\n    }\\n    findOrCreateLocalVideoTile() {\\n        if (this.currentLocalTile) {\\n            return this.currentLocalTile;\\n        }\\n        this.currentLocalTile = this.addVideoTile(true);\\n        this.currentLocalTile.bindVideoStream(this.audioVideoController.configuration.credentials.attendeeId, true, null, null, null, null, this.audioVideoController.configuration.credentials.externalUserId);\\n        return this.currentLocalTile;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoTileController;\\n//# sourceMappingURL=DefaultVideoTileController.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videotilecontroller/DefaultVideoTileController.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videotilefactory/DefaultVideoTileFactory.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videotilefactory/DefaultVideoTileFactory.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultVideoTile_1 = __webpack_require__(/*! ../videotile/DefaultVideoTile */ \\\"./node_modules/amazon-chime-sdk-js/build/videotile/DefaultVideoTile.js\\\");\\nclass DefaultVideoTileFactory {\\n    makeTile(tileId, localTile, tileController, devicePixelRatioMonitor) {\\n        return new DefaultVideoTile_1.default(tileId, localTile, tileController, devicePixelRatioMonitor);\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVideoTileFactory;\\n//# sourceMappingURL=DefaultVideoTileFactory.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videotilefactory/DefaultVideoTileFactory.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/BitrateParameters.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/BitrateParameters.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass BitrateParameters {\\n}\\nexports[\\\"default\\\"] = BitrateParameters;\\n//# sourceMappingURL=BitrateParameters.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/BitrateParameters.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.js ***!\n  \\***********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SimulcastLayers_1 = __webpack_require__(/*! ../simulcastlayers/SimulcastLayers */ \\\"./node_modules/amazon-chime-sdk-js/build/simulcastlayers/SimulcastLayers.js\\\");\\nconst SimulcastTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/SimulcastTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastTransceiverController.js\\\");\\nconst Types_1 = __webpack_require__(/*! ../utils/Types */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Types.js\\\");\\nconst DefaultVideoCaptureAndEncodeParameter_1 = __webpack_require__(/*! ../videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter */ \\\"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\\\");\\nconst BitrateParameters_1 = __webpack_require__(/*! ./BitrateParameters */ \\\"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/BitrateParameters.js\\\");\\n/**\\n * [[DefaultSimulcastUplinkPolicy]] determines capture and encode\\n *  parameters that reacts to estimated uplink bandwidth\\n */\\nclass DefaultSimulcastUplinkPolicy {\\n    constructor(selfAttendeeId, logger) {\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.logger = logger;\\n        this.numSenders = 0;\\n        // Simulcast is disabled when there are only 2 or fewer attendees, because in that case the backend will forward REMBs from\\n        // receiver to sender. Therefore there is no need for simulcast based adaption.\\n        this.shouldDisableSimulcast = false;\\n        this.newQualityMap = new Map();\\n        this.currentQualityMap = new Map();\\n        this.newActiveStreams = 1 /* kHiAndLow */;\\n        this.currentActiveStreams = 1 /* kHiAndLow */;\\n        this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps;\\n        this.startTimeMs = 0;\\n        this.lastUpdatedMs = Date.now();\\n        this.videoIndex = null;\\n        this.currLocalDescriptions = [];\\n        this.nextLocalDescriptions = [];\\n        this.observerQueue = new Set();\\n        this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, true);\\n        this.parametersInEffect = new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, true);\\n        this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps;\\n        this.currentQualityMap = this.fillEncodingParamWithBitrates([300, 0, 1200]);\\n        this.newQualityMap = this.fillEncodingParamWithBitrates([300, 0, 1200]);\\n    }\\n    updateConnectionMetric({ uplinkKbps = 0 }) {\\n        if (isNaN(uplinkKbps)) {\\n            return;\\n        }\\n        // Check if startup period in order to ignore estimate when video first enabled.\\n        // If only audio was active then the estimate will be very low\\n        if (this.startTimeMs === 0) {\\n            this.startTimeMs = Date.now();\\n        }\\n        if (Date.now() - this.startTimeMs < DefaultSimulcastUplinkPolicy.startupDurationMs) {\\n            this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps;\\n        }\\n        else {\\n            this.lastUplinkBandwidthKbps = uplinkKbps;\\n        }\\n        this.logger.debug(() => {\\n            return `simulcast: uplink policy update metrics ${this.lastUplinkBandwidthKbps}`;\\n        });\\n        let holdTime = DefaultSimulcastUplinkPolicy.holdDownDurationMs;\\n        if (this.currentActiveStreams === 3 /* kLow */) {\\n            holdTime = DefaultSimulcastUplinkPolicy.holdDownDurationMs * 2;\\n        }\\n        else if ((this.currentActiveStreams === 2 /* kMidAndLow */ &&\\n            uplinkKbps <= DefaultSimulcastUplinkPolicy.kMidDisabledRate) ||\\n            (this.currentActiveStreams === 1 /* kHiAndLow */ &&\\n                uplinkKbps <= DefaultSimulcastUplinkPolicy.kHiDisabledRate)) {\\n            holdTime = DefaultSimulcastUplinkPolicy.holdDownDurationMs / 2;\\n        }\\n        if (Date.now() < this.lastUpdatedMs + holdTime) {\\n            return;\\n        }\\n        this.newQualityMap = this.calculateEncodingParameters(false);\\n    }\\n    calculateEncodingParameters(numSendersChanged) {\\n        // bitrates parameter min is not used for now\\n        const newBitrates = [\\n            new BitrateParameters_1.default(),\\n            new BitrateParameters_1.default(),\\n            new BitrateParameters_1.default(),\\n        ];\\n        let hysteresisIncrease = 0, hysteresisDecrease = 0;\\n        if (this.currentActiveStreams === 0 /* kHi */) {\\n            // Don't trigger redetermination based on rate if only one simulcast stream\\n            hysteresisIncrease = this.lastUplinkBandwidthKbps + 1;\\n            hysteresisDecrease = 0;\\n        }\\n        else if (this.currentActiveStreams === 1 /* kHiAndLow */) {\\n            hysteresisIncrease = 2400;\\n            hysteresisDecrease = DefaultSimulcastUplinkPolicy.kHiDisabledRate;\\n        }\\n        else if (this.currentActiveStreams === 2 /* kMidAndLow */) {\\n            hysteresisIncrease = 1000;\\n            hysteresisDecrease = DefaultSimulcastUplinkPolicy.kMidDisabledRate;\\n        }\\n        else {\\n            hysteresisIncrease = 300;\\n            hysteresisDecrease = 0;\\n        }\\n        if (numSendersChanged ||\\n            this.lastUplinkBandwidthKbps >= hysteresisIncrease ||\\n            this.lastUplinkBandwidthKbps <= hysteresisDecrease) {\\n            if (this.shouldDisableSimulcast) {\\n                // See comment above `shouldDisableSimulcast` for usage.\\n                //\\n                // The value of `newActiveStreams` is somewhat irrelevant since in one to one calls\\n                // we forward REMBs, so this single stream will adapt anywhere from < 100 kbps to 1200 kbps\\n                // based on both sender and receiver network conditions. E.g. A receiver may calculate it's\\n                // receive BWE as 300 kbps, send that in a REMB which is forwarded, and on receipt the sender\\n                // will set its own BWE at 300 kbps, and start sending that as well (again, only for one-to-one\\n                // calls). Additionally the value `kHi` is only relevant to the send side (via\\n                // `encodingSimulcastLayersDidChange`) as it is not transmitted in anyform to the receiver.\\n                //\\n                // We use middle layer here to work around a bug in Chromium where\\n                // it seems when a transceiver is created when BWE is low (e.g. on a reconnection),\\n                // it will never reset the encoder even when `setParameters` is called.  WebRTC bug\\n                // #12788 seems to call a similar issue out as fixed for VP8, it's not clear if this\\n                // is the same issue for H.264. Additionally we are not able to force a keyframe\\n                // request from the backend since it will only be sending padding (which also\\n                // don't have MID due to #10822). Since we don't scale when simulcast is disabled\\n                // this doesn't have any end-user effect.\\n                //\\n                // Note that this still relies on a little bit (5-6 packets) of padding on reconnect\\n                // and that technically the browser will still eventually try to send all 3 streams.\\n                //\\n                // Also note that due to some uninvestigated logic in bitrate allocation, Chromium\\n                // will skip the bottom layer if we try setting it to 1200 kbps instead so it will\\n                // still take a while to recover (as it needs to send padding until it reaches around\\n                // 1000 kbps).\\n                this.newActiveStreams = 0 /* kHi */;\\n                newBitrates[0].maxBitrateKbps = 0;\\n                newBitrates[1].maxBitrateKbps = 1200;\\n                newBitrates[2].maxBitrateKbps = 0;\\n            }\\n            else if (this.numSenders <= 4 &&\\n                this.lastUplinkBandwidthKbps >= DefaultSimulcastUplinkPolicy.kHiDisabledRate) {\\n                // 320x192+ (640x384)  + 1280x768\\n                this.newActiveStreams = 1 /* kHiAndLow */;\\n                newBitrates[0].maxBitrateKbps = 300;\\n                newBitrates[1].maxBitrateKbps = 0;\\n                newBitrates[2].maxBitrateKbps = 1200;\\n            }\\n            else if (this.lastUplinkBandwidthKbps >= DefaultSimulcastUplinkPolicy.kMidDisabledRate) {\\n                // 320x192 + 640x384 + (1280x768)\\n                this.newActiveStreams = 2 /* kMidAndLow */;\\n                newBitrates[0].maxBitrateKbps = this.lastUplinkBandwidthKbps >= 350 ? 200 : 150;\\n                newBitrates[1].maxBitrateKbps = this.numSenders <= 6 ? 600 : 350;\\n                newBitrates[2].maxBitrateKbps = 0;\\n            }\\n            else {\\n                // 320x192 + 640x384 + (1280x768)\\n                this.newActiveStreams = 3 /* kLow */;\\n                newBitrates[0].maxBitrateKbps = 300;\\n                newBitrates[1].maxBitrateKbps = 0;\\n                newBitrates[2].maxBitrateKbps = 0;\\n            }\\n            const bitrates = newBitrates.map((v, _i, _a) => {\\n                return v.maxBitrateKbps;\\n            });\\n            this.newQualityMap = this.fillEncodingParamWithBitrates(bitrates);\\n            if (!this.encodingParametersEqual()) {\\n                this.logger.info(`simulcast: policy:calculateEncodingParameters bw:${this.lastUplinkBandwidthKbps} numSources:${this.numSenders} shouldDisableSimulcast:${this.shouldDisableSimulcast} newQualityMap: ${this.getQualityMapString(this.newQualityMap)}`);\\n            }\\n        }\\n        return this.newQualityMap;\\n    }\\n    chooseMediaTrackConstraints() {\\n        // Changing MediaTrackConstraints causes a restart of video input and possible small\\n        // scaling changes.  Always use 720p for now\\n        const trackConstraint = {\\n            width: { ideal: 1280 },\\n            height: { ideal: 768 },\\n            frameRate: { ideal: 15 },\\n        };\\n        return trackConstraint;\\n    }\\n    chooseEncodingParameters() {\\n        this.currentQualityMap = this.newQualityMap;\\n        this.currentActiveStreams = this.newActiveStreams;\\n        if (this.activeStreamsToPublish !== this.newActiveStreams) {\\n            this.activeStreamsToPublish = this.newActiveStreams;\\n            this.publishEncodingSimulcastLayer();\\n        }\\n        return this.currentQualityMap;\\n    }\\n    updateIndex(videoIndex) {\\n        // the +1 for self is assuming that we intend to send video, since\\n        // the context here is VideoUplinkBandwidthPolicy\\n        const numSenders = videoIndex.numberOfVideoPublishingParticipantsExcludingSelf(this.selfAttendeeId) + 1;\\n        const numSendersChanged = numSenders !== this.numSenders;\\n        // See comment above `shouldDisableSimulcast`\\n        const numParticipants = videoIndex.numberOfParticipants();\\n        const newShouldDisableSimulcast = numParticipants >= 0 && numParticipants <= 2;\\n        const shouldDisableSimulcastChanged = this.shouldDisableSimulcast !== newShouldDisableSimulcast;\\n        this.numSenders = numSenders;\\n        this.shouldDisableSimulcast = newShouldDisableSimulcast;\\n        this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1.default(this.captureWidth(), this.captureHeight(), this.captureFrameRate(), this.maxBandwidthKbps(), false);\\n        this.videoIndex = videoIndex;\\n        this.newQualityMap = this.calculateEncodingParameters(numSendersChanged || shouldDisableSimulcastChanged);\\n    }\\n    wantsResubscribe() {\\n        let constraintDiff = !this.encodingParametersEqual();\\n        this.nextLocalDescriptions = this.videoIndex.localStreamDescriptions();\\n        for (let i = 0; i < this.nextLocalDescriptions.length; i++) {\\n            const streamId = this.nextLocalDescriptions[i].streamId;\\n            if (streamId !== 0 && !!streamId) {\\n                const prevIndex = this.currLocalDescriptions.findIndex(val => {\\n                    return val.streamId === streamId;\\n                });\\n                if (prevIndex !== -1) {\\n                    if (this.nextLocalDescriptions[i].disabledByWebRTC !==\\n                        this.currLocalDescriptions[prevIndex].disabledByWebRTC) {\\n                        constraintDiff = true;\\n                    }\\n                }\\n            }\\n        }\\n        if (constraintDiff) {\\n            this.lastUpdatedMs = Date.now();\\n        }\\n        this.currLocalDescriptions = this.nextLocalDescriptions;\\n        return constraintDiff;\\n    }\\n    compareEncodingParameter(encoding1, encoding2) {\\n        return JSON.stringify(encoding1) === JSON.stringify(encoding2);\\n    }\\n    encodingParametersEqual() {\\n        let different = false;\\n        for (const ridName of SimulcastTransceiverController_1.default.NAME_ARR_ASCENDING) {\\n            different =\\n                different ||\\n                    !this.compareEncodingParameter(this.newQualityMap.get(ridName), this.currentQualityMap.get(ridName));\\n            if (different) {\\n                break;\\n            }\\n        }\\n        return !different;\\n    }\\n    chooseCaptureAndEncodeParameters() {\\n        // should deprecate in this policy\\n        this.parametersInEffect = this.optimalParameters.clone();\\n        return this.parametersInEffect.clone();\\n    }\\n    captureWidth() {\\n        // should deprecate in this policy\\n        const width = 1280;\\n        return width;\\n    }\\n    captureHeight() {\\n        // should deprecate in this policy\\n        const height = 768;\\n        return height;\\n    }\\n    captureFrameRate() {\\n        // should deprecate in this policy\\n        return 15;\\n    }\\n    maxBandwidthKbps() {\\n        // should deprecate in this policy\\n        return 1400;\\n    }\\n    setIdealMaxBandwidthKbps(_idealMaxBandwidthKbps) {\\n        // should deprecate in this policy\\n    }\\n    setHasBandwidthPriority(_hasBandwidthPriority) {\\n        // should deprecate in this policy\\n    }\\n    fillEncodingParamWithBitrates(bitratesKbps) {\\n        const newMap = new Map();\\n        const toBps = 1000;\\n        const nameArr = SimulcastTransceiverController_1.default.NAME_ARR_ASCENDING;\\n        const bitrateArr = bitratesKbps;\\n        // Don't scale the single simulcast stream regardless of its layer.\\n        let scale = this.shouldDisableSimulcast ? 1 : 4;\\n        for (let i = 0; i < nameArr.length; i++) {\\n            const ridName = nameArr[i];\\n            newMap.set(ridName, {\\n                rid: ridName,\\n                active: bitrateArr[i] > 0 ? true : false,\\n                scaleResolutionDownBy: Math.max(scale, 1),\\n                maxBitrate: bitrateArr[i] * toBps,\\n            });\\n            scale = scale / 2;\\n        }\\n        return newMap;\\n    }\\n    getQualityMapString(params) {\\n        let qualityString = '';\\n        const localDescriptions = this.videoIndex.localStreamDescriptions();\\n        if (localDescriptions.length === 3) {\\n            params.forEach((value) => {\\n                let disabledByWebRTC = false;\\n                if (value.rid === 'low')\\n                    disabledByWebRTC = localDescriptions[0].disabledByWebRTC;\\n                else if (value.rid === 'mid')\\n                    disabledByWebRTC = localDescriptions[1].disabledByWebRTC;\\n                else\\n                    disabledByWebRTC = localDescriptions[2].disabledByWebRTC;\\n                qualityString += `{ rid: ${value.rid} active:${value.active} disabledByWebRTC: ${disabledByWebRTC} maxBitrate:${value.maxBitrate}}`;\\n            });\\n        }\\n        return qualityString;\\n    }\\n    getEncodingSimulcastLayer(activeStreams) {\\n        switch (activeStreams) {\\n            case 0 /* kHi */:\\n                return SimulcastLayers_1.default.High;\\n            case 1 /* kHiAndLow */:\\n                return SimulcastLayers_1.default.LowAndHigh;\\n            case 2 /* kMidAndLow */:\\n                return SimulcastLayers_1.default.LowAndMedium;\\n            case 3 /* kLow */:\\n                return SimulcastLayers_1.default.Low;\\n        }\\n    }\\n    publishEncodingSimulcastLayer() {\\n        const simulcastLayers = this.getEncodingSimulcastLayer(this.activeStreamsToPublish);\\n        this.forEachObserver(observer => {\\n            Types_1.Maybe.of(observer.encodingSimulcastLayersDidChange).map(f => f.bind(observer)(simulcastLayers));\\n        });\\n    }\\n    addObserver(observer) {\\n        this.logger.info('adding simulcast uplink observer');\\n        this.observerQueue.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.logger.info('removing simulcast uplink observer');\\n        this.observerQueue.delete(observer);\\n    }\\n    forEachObserver(observerFunc) {\\n        for (const observer of this.observerQueue) {\\n            observerFunc(observer);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultSimulcastUplinkPolicy;\\nDefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps = 1200;\\nDefaultSimulcastUplinkPolicy.startupDurationMs = 6000;\\nDefaultSimulcastUplinkPolicy.holdDownDurationMs = 4000;\\nDefaultSimulcastUplinkPolicy.defaultMaxFrameRate = 15;\\n// Current rough estimates where webrtc disables streams\\nDefaultSimulcastUplinkPolicy.kHiDisabledRate = 700;\\nDefaultSimulcastUplinkPolicy.kMidDisabledRate = 240;\\n//# sourceMappingURL=DefaultSimulcastUplinkPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare.js\":\n/*!**************************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare.js ***!\n  \\**************************************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst SimulcastContentShareTransceiverController_1 = __webpack_require__(/*! ../transceivercontroller/SimulcastContentShareTransceiverController */ \\\"./node_modules/amazon-chime-sdk-js/build/transceivercontroller/SimulcastContentShareTransceiverController.js\\\");\\n/**\\n * [[DefaultSimulcastUplinkPolicyForContentShare]] sets the capture and encode\\n *  parameters based on constructor input parameters\\n */\\nclass DefaultSimulcastUplinkPolicyForContentShare {\\n    constructor(logger, encodingParams) {\\n        this.logger = logger;\\n        this.encodingParams = encodingParams;\\n        this.videoIndex = null;\\n        this.currLocalDescriptions = [];\\n        this.nextLocalDescriptions = [];\\n    }\\n    updateConnectionMetric(_metrics) {\\n        // Noop\\n    }\\n    chooseMediaTrackConstraints() {\\n        // Changing MediaTrackConstraints causes a restart of video input and possible small\\n        // scaling changes.  Always use 720p for now\\n        return undefined;\\n    }\\n    chooseEncodingParameters() {\\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\\n        const newMap = new Map();\\n        const toBps = 1000;\\n        const nameArr = SimulcastContentShareTransceiverController_1.default.NAME_ARR_ASCENDING;\\n        newMap.set(nameArr[0], {\\n            rid: nameArr[0],\\n            active: true,\\n            scaleResolutionDownBy: ((_b = (_a = this.encodingParams) === null || _a === void 0 ? void 0 : _a.low) === null || _b === void 0 ? void 0 : _b.scaleResolutionDownBy) || 2,\\n            maxBitrate: (((_d = (_c = this.encodingParams) === null || _c === void 0 ? void 0 : _c.low) === null || _d === void 0 ? void 0 : _d.maxBitrateKbps) || 300) * toBps,\\n            maxFramerate: ((_f = (_e = this.encodingParams) === null || _e === void 0 ? void 0 : _e.low) === null || _f === void 0 ? void 0 : _f.maxFramerate) || 5,\\n        });\\n        newMap.set(nameArr[1], {\\n            rid: nameArr[1],\\n            active: true,\\n            scaleResolutionDownBy: ((_h = (_g = this.encodingParams) === null || _g === void 0 ? void 0 : _g.high) === null || _h === void 0 ? void 0 : _h.scaleResolutionDownBy) || 1,\\n            maxBitrate: (((_k = (_j = this.encodingParams) === null || _j === void 0 ? void 0 : _j.high) === null || _k === void 0 ? void 0 : _k.maxBitrateKbps) || 1200) * toBps,\\n            maxFramerate: (_m = (_l = this.encodingParams) === null || _l === void 0 ? void 0 : _l.high) === null || _m === void 0 ? void 0 : _m.maxFramerate,\\n        });\\n        this.getQualityMapString(newMap);\\n        return newMap;\\n    }\\n    updateIndex(videoIndex) {\\n        this.videoIndex = videoIndex;\\n    }\\n    wantsResubscribe() {\\n        var _a, _b;\\n        let constraintDiff = false;\\n        this.nextLocalDescriptions = (_a = this.videoIndex) === null || _a === void 0 ? void 0 : _a.localStreamDescriptions();\\n        for (let i = 0; i < ((_b = this.nextLocalDescriptions) === null || _b === void 0 ? void 0 : _b.length); i++) {\\n            const streamId = this.nextLocalDescriptions[i].streamId;\\n            if (streamId !== 0 && !!streamId) {\\n                const prevIndex = this.currLocalDescriptions.findIndex(val => {\\n                    return val.streamId === streamId;\\n                });\\n                if (prevIndex !== -1) {\\n                    if (this.nextLocalDescriptions[i].disabledByWebRTC !==\\n                        this.currLocalDescriptions[prevIndex].disabledByWebRTC) {\\n                        constraintDiff = true;\\n                    }\\n                }\\n            }\\n        }\\n        this.currLocalDescriptions = this.nextLocalDescriptions;\\n        return constraintDiff;\\n    }\\n    chooseCaptureAndEncodeParameters() {\\n        // should deprecate in this policy\\n        return undefined;\\n    }\\n    maxBandwidthKbps() {\\n        // should deprecate in this policy\\n        return 1200;\\n    }\\n    setIdealMaxBandwidthKbps(_idealMaxBandwidthKbps) {\\n        // should deprecate in this policy\\n    }\\n    setHasBandwidthPriority(_hasBandwidthPriority) {\\n        // should deprecate in this policy\\n    }\\n    getQualityMapString(params) {\\n        var _a;\\n        let qualityString = '';\\n        const localDescriptions = (_a = this.videoIndex) === null || _a === void 0 ? void 0 : _a.localStreamDescriptions();\\n        if ((localDescriptions === null || localDescriptions === void 0 ? void 0 : localDescriptions.length) > 0) {\\n            params.forEach((value) => {\\n                let disabledByWebRTC = false;\\n                if (value.rid === 'low')\\n                    disabledByWebRTC = localDescriptions[0].disabledByWebRTC;\\n                else\\n                    disabledByWebRTC = localDescriptions[1].disabledByWebRTC;\\n                qualityString += `{ rid: ${value.rid} active:${value.active} disabledByWebRTC: ${disabledByWebRTC} maxBitrate:${value.maxBitrate} scaleResolutionDownBy:${value.scaleResolutionDownBy} maxFrameRate:${value.maxFramerate}`;\\n            });\\n            this.logger.info(`simulcast: content policy:chooseEncodingParameters newQualityMap: ${qualityString}`);\\n        }\\n    }\\n    addObserver(_observer) { }\\n    removeObserver(_observer) { }\\n    forEachObserver(_observerFunc) { }\\n}\\nexports[\\\"default\\\"] = DefaultSimulcastUplinkPolicyForContentShare;\\n//# sourceMappingURL=DefaultSimulcastUplinkPolicyForContentShare.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicyForContentShare.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy.js\":\n/*!***************************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy.js ***!\n  \\***************************************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultVideoCaptureAndEncodeParameter_1 = __webpack_require__(/*! ../videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter */ \\\"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\\\");\\n/** NScaleVideoUplinkBandwidthPolicy implements capture and encode\\n *  parameters that are nearly equivalent to those chosen by the\\n *  traditional native clients, except for a modification to\\n *  maxBandwidthKbps and scaleResolutionDownBy described below. */\\nclass NScaleVideoUplinkBandwidthPolicy {\\n    constructor(selfAttendeeId, scaleResolution = true, logger = undefined, browserBehavior = undefined) {\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.scaleResolution = scaleResolution;\\n        this.logger = logger;\\n        this.browserBehavior = browserBehavior;\\n        this.numberOfPublishedVideoSources = 0;\\n        this.idealMaxBandwidthKbps = 1400;\\n        this.hasBandwidthPriority = false;\\n        this.encodingParamMap = new Map();\\n        this.reset();\\n    }\\n    reset() {\\n        // Don't reset `idealMaxBandwidthKbps` or `hasBandwidthPriority` which are set via builder API paths\\n        this.numberOfPublishedVideoSources = 0;\\n        this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, false);\\n        this.parametersInEffect = new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, false);\\n        this.encodingParamMap.set(NScaleVideoUplinkBandwidthPolicy.encodingMapKey, {\\n            maxBitrate: 0,\\n        });\\n    }\\n    updateConnectionMetric(_metrics) {\\n        return;\\n    }\\n    chooseMediaTrackConstraints() {\\n        return {};\\n    }\\n    chooseEncodingParameters() {\\n        return new Map();\\n    }\\n    updateIndex(videoIndex) {\\n        var _a;\\n        let hasLocalVideo = true;\\n        let scale = 1;\\n        if (this.transceiverController) {\\n            hasLocalVideo = this.transceiverController.hasVideoInput();\\n        }\\n        // the +1 for self is assuming that we intend to send video, since\\n        // the context here is VideoUplinkBandwidthPolicy\\n        const numberOfPublishedVideoSources = videoIndex.numberOfVideoPublishingParticipantsExcludingSelf(this.selfAttendeeId) +\\n            (hasLocalVideo ? 1 : 0);\\n        if (this.numberOfPublishedVideoSources === numberOfPublishedVideoSources) {\\n            (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Skipping update index; Number of participants has not changed');\\n            return;\\n        }\\n        this.numberOfPublishedVideoSources = numberOfPublishedVideoSources;\\n        if (this.transceiverController) {\\n            const settings = this.getStreamCaptureSetting();\\n            if (settings) {\\n                const encodingParams = this.calculateEncodingParameters(settings);\\n                scale = encodingParams.scaleResolutionDownBy;\\n            }\\n        }\\n        this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1.default(this.captureWidth(), this.captureHeight(), this.captureFrameRate(), this.maxBandwidthKbps(), false, scale);\\n    }\\n    wantsResubscribe() {\\n        return !this.parametersInEffect.equal(this.optimalParameters);\\n    }\\n    chooseCaptureAndEncodeParameters() {\\n        this.parametersInEffect = this.optimalParameters.clone();\\n        return this.parametersInEffect.clone();\\n    }\\n    captureWidth() {\\n        let width = 640;\\n        if (this.getNumberOfPublishedVideoSources() > 4) {\\n            width = 320;\\n        }\\n        return width;\\n    }\\n    captureHeight() {\\n        let height = 384;\\n        if (this.getNumberOfPublishedVideoSources() > 4) {\\n            height = 192;\\n        }\\n        return height;\\n    }\\n    captureFrameRate() {\\n        return 15;\\n    }\\n    maxBandwidthKbps() {\\n        if (this.hasBandwidthPriority) {\\n            return Math.trunc(this.idealMaxBandwidthKbps);\\n        }\\n        let rate = 0;\\n        if (this.getNumberOfPublishedVideoSources() <= 2) {\\n            rate = this.idealMaxBandwidthKbps;\\n        }\\n        else if (this.getNumberOfPublishedVideoSources() <= 4) {\\n            rate = (this.idealMaxBandwidthKbps * 2) / 3;\\n        }\\n        else {\\n            rate =\\n                ((544 / 11 + 14880 / (11 * this.getNumberOfPublishedVideoSources())) / 600) *\\n                    this.idealMaxBandwidthKbps;\\n        }\\n        return Math.trunc(rate);\\n    }\\n    setIdealMaxBandwidthKbps(idealMaxBandwidthKbps) {\\n        this.idealMaxBandwidthKbps = idealMaxBandwidthKbps;\\n    }\\n    setHasBandwidthPriority(hasBandwidthPriority) {\\n        this.hasBandwidthPriority = hasBandwidthPriority;\\n    }\\n    setTransceiverController(transceiverController) {\\n        this.transceiverController = transceiverController;\\n    }\\n    updateTransceiverController() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const settings = this.getStreamCaptureSetting();\\n            if (!settings) {\\n                return;\\n            }\\n            const encodingParams = this.calculateEncodingParameters(settings);\\n            if (this.shouldUpdateEndcodingParameters(encodingParams)) {\\n                this.encodingParamMap.set(NScaleVideoUplinkBandwidthPolicy.encodingMapKey, encodingParams);\\n                this.transceiverController.setEncodingParameters(this.encodingParamMap);\\n            }\\n        });\\n    }\\n    shouldUpdateEndcodingParameters(encoding) {\\n        var _a, _b;\\n        const transceiverEncoding = (_b = (_a = this.transceiverController\\n            .localVideoTransceiver()\\n            .sender.getParameters()) === null || _a === void 0 ? void 0 : _a.encodings) === null || _b === void 0 ? void 0 : _b[0];\\n        /* istanbul ignore next: transceiverEncoding?.scaleResolutionDownBy cannot be covered */\\n        return (encoding.maxBitrate !== (transceiverEncoding === null || transceiverEncoding === void 0 ? void 0 : transceiverEncoding.maxBitrate) ||\\n            encoding.scaleResolutionDownBy !== (transceiverEncoding === null || transceiverEncoding === void 0 ? void 0 : transceiverEncoding.scaleResolutionDownBy));\\n    }\\n    calculateEncodingParameters(setting) {\\n        var _a, _b;\\n        const maxBitrate = this.maxBandwidthKbps() * 1000;\\n        let scale = 1;\\n        if (setting.height !== undefined &&\\n            setting.width !== undefined &&\\n            this.scaleResolution &&\\n            !this.hasBandwidthPriority &&\\n            this.getNumberOfPublishedVideoSources() > 2) {\\n            let targetHeight = NScaleVideoUplinkBandwidthPolicy.targetHeightArray[Math.min(this.getNumberOfPublishedVideoSources(), NScaleVideoUplinkBandwidthPolicy.targetHeightArray.length - 1)];\\n            //Workaround for issue https://github.com/aws/amazon-chime-sdk-js/issues/2002\\n            if (targetHeight === 480 && ((_a = this.browserBehavior) === null || _a === void 0 ? void 0 : _a.disable480pResolutionScaleDown())) {\\n                targetHeight = 360;\\n            }\\n            scale = Math.max(Math.min(setting.height, setting.width) / targetHeight, 1);\\n            (_b = this.logger) === null || _b === void 0 ? void 0 : _b.info(`Resolution scale factor is ${scale} for capture resolution ${setting.width}x${setting.height}. New dimension is ${setting.width / scale}x${setting.height / scale}`);\\n        }\\n        return {\\n            scaleResolutionDownBy: scale,\\n            maxBitrate: maxBitrate,\\n        };\\n    }\\n    getStreamCaptureSetting() {\\n        var _a, _b, _c, _d;\\n        return (_d = (_c = (_b = (_a = this.transceiverController) === null || _a === void 0 ? void 0 : _a.localVideoTransceiver()) === null || _b === void 0 ? void 0 : _b.sender) === null || _c === void 0 ? void 0 : _c.track) === null || _d === void 0 ? void 0 : _d.getSettings();\\n    }\\n    getNumberOfPublishedVideoSources() {\\n        var _a;\\n        /* istanbul ignore next: policy calculation is dependent on index so this is never undefined at time of use */\\n        return (_a = this.numberOfPublishedVideoSources) !== null && _a !== void 0 ? _a : 0;\\n    }\\n}\\nexports[\\\"default\\\"] = NScaleVideoUplinkBandwidthPolicy;\\nNScaleVideoUplinkBandwidthPolicy.encodingMapKey = 'video';\\n// 0, 1, 2 have dummy value as we keep the original resolution if we have less than 2 videos.\\nNScaleVideoUplinkBandwidthPolicy.targetHeightArray = [\\n    0,\\n    0,\\n    0,\\n    540,\\n    540,\\n    480,\\n    480,\\n    480,\\n    480,\\n    360,\\n    360,\\n    360,\\n    360,\\n    270,\\n    270,\\n    270,\\n    270,\\n    180,\\n    180,\\n    180,\\n    180,\\n    180,\\n    180,\\n    180,\\n    180,\\n    180,\\n];\\n//# sourceMappingURL=NScaleVideoUplinkBandwidthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NScaleVideoUplinkBandwidthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NoVideoUplinkBandwidthPolicy.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NoVideoUplinkBandwidthPolicy.js ***!\n  \\***********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultVideoCaptureAndEncodeParameter_1 = __webpack_require__(/*! ../videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter */ \\\"./node_modules/amazon-chime-sdk-js/build/videocaptureandencodeparameter/DefaultVideoCaptureAndEncodeParameter.js\\\");\\nclass NoVideoUplinkBandwidthPolicy {\\n    constructor() { }\\n    updateConnectionMetric(_metrics) { }\\n    chooseMediaTrackConstraints() {\\n        return {};\\n    }\\n    chooseEncodingParameters() {\\n        return new Map();\\n    }\\n    updateIndex(_videoIndex) { }\\n    wantsResubscribe() {\\n        return false;\\n    }\\n    chooseCaptureAndEncodeParameters() {\\n        return new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, false);\\n    }\\n    maxBandwidthKbps() {\\n        return 0;\\n    }\\n    setIdealMaxBandwidthKbps(_idealMaxBandwidthKbps) { }\\n    setHasBandwidthPriority(_hasBandwidthPriority) { }\\n}\\nexports[\\\"default\\\"] = NoVideoUplinkBandwidthPolicy;\\n//# sourceMappingURL=NoVideoUplinkBandwidthPolicy.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/videouplinkbandwidthpolicy/NoVideoUplinkBandwidthPolicy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/voicefocus/LoggerAdapter.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/voicefocus/LoggerAdapter.js ***!\n  \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/** @internal */\\nfunction stringify(args) {\\n    return args\\n        .map((v) => {\\n        if (typeof v === 'object') {\\n            return JSON.stringify(v);\\n        }\\n        return `${v}`;\\n    })\\n        .join(' ');\\n}\\n/** @internal */\\nclass LoggerAdapter {\\n    constructor(base) {\\n        this.base = base;\\n    }\\n    debug(...args) {\\n        this.base.debug(stringify(args));\\n    }\\n    info(...args) {\\n        this.base.info(stringify(args));\\n    }\\n    warn(...args) {\\n        this.base.warn(stringify(args));\\n    }\\n    error(...args) {\\n        this.base.error(stringify(args));\\n    }\\n}\\nexports[\\\"default\\\"] = LoggerAdapter;\\n//# sourceMappingURL=LoggerAdapter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/voicefocus/LoggerAdapter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusDeviceTransformer.js\":\n/*!******************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusDeviceTransformer.js ***!\n  \\******************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.VoiceFocusDeviceTransformer = void 0;\\nconst voicefocus_1 = __webpack_require__(/*! ../../libs/voicefocus/voicefocus */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/voicefocus.js\\\");\\nconst Utils_1 = __webpack_require__(/*! ../utils/Utils */ \\\"./node_modules/amazon-chime-sdk-js/build/utils/Utils.js\\\");\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nconst LoggerAdapter_1 = __webpack_require__(/*! ./LoggerAdapter */ \\\"./node_modules/amazon-chime-sdk-js/build/voicefocus/LoggerAdapter.js\\\");\\nconst VoiceFocusTransformDevice_1 = __webpack_require__(/*! ./VoiceFocusTransformDevice */ \\\"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDevice.js\\\");\\nconst VoiceFocusTransformDeviceDelegate_1 = __webpack_require__(/*! ./VoiceFocusTransformDeviceDelegate */ \\\"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDeviceDelegate.js\\\");\\n/**\\n * `VoiceFocusDeviceTransformer` is used to create {@link VoiceFocusTransformDevice|transform devices}\\n * that apply Amazon Voice Focus noise suppression to audio input.\\n *\\n * This transformer captures relevant configuration. You should check for support, initialize,\\n * and then create a device as follows:\\n *\\n * ```typescript\\n * const deviceID = null;\\n *\\n * // This check for support is cheap and quick, and should be used to gate use\\n * // of this feature.\\n * if (!(await VoiceFocusDeviceTransformer.isSupported()) {\\n *   console.log('Amazon Voice Focus not supported in this browser.');\\n *   return deviceID;\\n * }\\n *\\n * let transformer: VoiceFocusDeviceTransformer;\\n * try {\\n *   // This operation can fail in ways that do not indicate no support,\\n *   // but do indicate an inability to apply Amazon Voice Focus. Trying again\\n *   // might succeed.\\n *   transformer = await VoiceFocusDeviceTransformer.create({});\\n * } catch (e) {\\n *   // Something went wrong.\\n *   console.log('Unable to instantiate Amazon Voice Focus.');\\n *   return deviceID;\\n * }\\n *\\n * if (!transformer.isSupported()) {\\n *   // The transformer will fall through, but your UI might care.\\n *   console.log('Amazon Voice Focus not supported in this browser.');\\n * }\\n *\\n * return await transformer.createTransformDevice(deviceID);\\n * ```\\n */\\nclass VoiceFocusDeviceTransformer {\\n    constructor(spec, { preload = true, logger, fetchBehavior = VoiceFocusDeviceTransformer.defaultFetchBehavior(), }, config) {\\n        this.spec = spec;\\n        this.supported = true;\\n        this.logger = logger;\\n        this.vfLogger = logger ? new LoggerAdapter_1.default(logger) : undefined;\\n        this.preload = preload;\\n        this.fetchBehavior = fetchBehavior;\\n        // If the user didn't specify one, add the default, which is\\n        // identified by the major and minor SDK version.\\n        this.spec = VoiceFocusDeviceTransformer.augmentSpec(this.spec);\\n        if (config) {\\n            this.configuration = Promise.resolve(config);\\n        }\\n    }\\n    /**\\n     * Quickly check whether Amazon Voice Focus is supported on this platform.\\n     *\\n     * This will return `false` if key technologies are absent. A value of `true` does not\\n     * necessarily mean that adding Amazon Voice Focus will succeed: it is still possible that the\\n     * configuration of the page or the CPU speed of the device are limiting factors.\\n     *\\n     * {@link VoiceFocusDeviceTransformer.create} will return an instance whose\\n     * `isSupported` method more accurately reflects whether Amazon Voice Focus\\n     * is supported in the current environment.\\n     *\\n     * This method will only reject if you provide invalid inputs.\\n     *\\n     * @param spec An optional asset group and URL paths to use when fetching. You can pass\\n     *             a complete {@link VoiceFocusSpec} here for convenience, matching the signature of {@link VoiceFocusDeviceTransformer.create}.\\n     * @param options Additional named arguments, including `logger`. Set\\n     *                `allowIFrame` to false to cause the support check to fail in\\n     *                an iframe.\\n     *                Chromium's security model means that audio processing works\\n     *                poorly in iframes.\\n     */\\n    static isSupported(spec, options) {\\n        var _a, _b;\\n        const fetchBehavior = VoiceFocusDeviceTransformer.defaultFetchBehavior();\\n        const logger = (options === null || options === void 0 ? void 0 : options.logger) ? new LoggerAdapter_1.default(options.logger) : undefined;\\n        const opts = {\\n            fetchBehavior,\\n            logger,\\n        };\\n        // This is impossible to test in Node, so Istanbul ignore.\\n        /* istanbul ignore next */\\n        if (Utils_1.isIFramed()) {\\n            if ((options === null || options === void 0 ? void 0 : options.allowIFrame) === false) {\\n                (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.error('Amazon Voice Focus support check inside iframe: not supported.');\\n                return Promise.resolve(false);\\n            }\\n            else {\\n                (_b = options === null || options === void 0 ? void 0 : options.logger) === null || _b === void 0 ? void 0 : _b.warn('Amazon Voice Focus support check inside iframe: not recommended.');\\n            }\\n        }\\n        return voicefocus_1.VoiceFocus.isSupported(VoiceFocusDeviceTransformer.augmentSpec(spec), opts);\\n    }\\n    /**\\n     * Create a transformer that can apply Amazon Voice Focus noise suppression to a device.\\n     *\\n     * This method will reject if the provided spec is invalid, or if the process of\\n     * checking for support or estimating fails (e.g., because the network is unreachable).\\n     *\\n     * If Amazon Voice Focus is not supported on this device, this call will not reject and\\n     * `isSupported` will return `false` on the returned instance. That instance will\\n     * pass through devices unmodified.\\n     *\\n     * @param spec A definition of how you want Amazon Voice Focus to behave. See the declaration of\\n     *             {@link VoiceFocusSpec} for details.\\n     * @param options Additional named arguments, including `logger` and `preload`.\\n     */\\n    static create(spec = {}, options = {}, config, \\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n    createMeetingResponse, \\n    // eslint-disable-next-line\\n    createAttendeeResponse) {\\n        var _a, _b, _c;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (createMeetingResponse) {\\n                if (createMeetingResponse.Meeting.Meeting) {\\n                    createMeetingResponse = createMeetingResponse.Meeting;\\n                }\\n            }\\n            const meetingFeaturesAllowsES = ((_c = (_b = (_a = createMeetingResponse === null || createMeetingResponse === void 0 ? void 0 : createMeetingResponse.Meeting) === null || _a === void 0 ? void 0 : _a.MeetingFeatures) === null || _b === void 0 ? void 0 : _b.Audio) === null || _c === void 0 ? void 0 : _c.EchoReduction) === 'AVAILABLE';\\n            const forbiddenConfig = config &&\\n                config.supported === true &&\\n                config.model.name === 'ns_es' &&\\n                !meetingFeaturesAllowsES;\\n            const forbiddenSpec = spec.name === 'ns_es' && !meetingFeaturesAllowsES;\\n            if (forbiddenConfig || forbiddenSpec) {\\n                throw new Error('Echo Reduction requested but not enabled.');\\n            }\\n            const transformer = new VoiceFocusDeviceTransformer(spec, options, config);\\n            // This also preps the first `VoiceFocus` instance.\\n            yield transformer.init();\\n            return transformer;\\n        });\\n    }\\n    /**\\n     * Given a spec and options, perform the configuration work that is\\n     * ordinarily performed during creation of a transformer.\\n     *\\n     * The computed configuration is not portable between devices or sessions,\\n     * but is useful for 'moving' transformers between windows.\\n     *\\n     * Pass the returned configuration as the third argument to a call to\\n     * {@link VoiceFocusDeviceTransformer.create} with the matching spec.\\n     */\\n    static configure(spec = {}, options = {}) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const transformer = new VoiceFocusDeviceTransformer(spec, options, undefined);\\n            return transformer.configure(true);\\n        });\\n    }\\n    /**\\n     * Return the computed configuration for this transformer.\\n     */\\n    getConfiguration() {\\n        return this.configuration;\\n    }\\n    /**\\n     * Return whether this transformer is able to function in this environment.\\n     * If not, calls to\\n     * {@link VoiceFocusDeviceTransformer.createTransformDevice|createTransformDevice}\\n     * will pass through an unmodified device.\\n     */\\n    isSupported() {\\n        return this.supported;\\n    }\\n    /**\\n     * Apply Amazon Voice Focus to the selected {@link Device}.\\n     *\\n     * If this is a stream, it should be one that does not include other noise suppression features,\\n     * and you should consider whether to disable automatic gain control (AGC) on the stream, because\\n     * it can interact with noise suppression.\\n     *\\n     * @returns a device promise. This will always resolve to either a\\n     *          {@link VoiceFocusTransformDevice} or undefined; it will never reject.\\n     */\\n    createTransformDevice(device, nodeOptions) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.supported) {\\n                // Fall back.\\n                return undefined;\\n            }\\n            try {\\n                const preload = true;\\n                const [vf, delegate] = yield this.allocateVoiceFocus(preload);\\n                const options = Object.assign(Object.assign({}, nodeOptions), { es: this.spec.name === 'ns_es' });\\n                return new VoiceFocusTransformDevice_1.default(device, vf, delegate, options);\\n            }\\n            catch (e) {\\n                // Fall back.\\n                /* istanbul ignore next */\\n                return undefined;\\n            }\\n        });\\n    }\\n    /**\\n     * Destroy the Voice Focus instance and worker thread associated with the transformer.\\n     */\\n    static destroyVoiceFocus(transformer) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            /* istanbul ignore next */\\n            (_a = transformer === null || transformer === void 0 ? void 0 : transformer.vf) === null || _a === void 0 ? void 0 : _a.destroy();\\n        });\\n    }\\n    static augmentSpec(spec) {\\n        if (!spec || (!spec.assetGroup && !spec.revisionID)) {\\n            return Object.assign(Object.assign({}, spec), { assetGroup: VoiceFocusDeviceTransformer.currentSDKAssetGroup() });\\n        }\\n        return spec;\\n    }\\n    configure(preResolve = false) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const options = {\\n                fetchBehavior: this.fetchBehavior,\\n                preResolve,\\n                logger: this.vfLogger,\\n            };\\n            return voicefocus_1.VoiceFocus.configure(this.spec, options);\\n        });\\n    }\\n    init() {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.configuration) {\\n                this.configuration = this.configure();\\n            }\\n            const config = yield this.configuration;\\n            if (!config.supported) {\\n                // No need to init: it won't work.\\n                this.supported = false;\\n                return;\\n            }\\n            // We initialize the first one right now, which makes it easier to detect\\n            // possible failures.\\n            // This can throw for malformed input. Pass that up the chain.\\n            this.pendingVoiceFocus = this.createVoiceFocus(config, this.preload);\\n            try {\\n                yield this.pendingVoiceFocus;\\n            }\\n            catch (e) {\\n                (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(`Unable to initialize Amazon Voice Focus: ${e}`);\\n                this.supported = false;\\n            }\\n        });\\n    }\\n    createVoiceFocus(config, preload) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const delegate = new VoiceFocusTransformDeviceDelegate_1.default();\\n            this.vf = yield voicefocus_1.VoiceFocus.init(config, { delegate, preload, logger: this.vfLogger });\\n            return [this.vf, delegate];\\n        });\\n    }\\n    allocateVoiceFocus(preload) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // A little safety.\\n            /* istanbul ignore next */\\n            if (!this.supported) {\\n                throw new Error('Not supported.');\\n            }\\n            if (this.pendingVoiceFocus) {\\n                // Use the one we already have, and free the slot for any future execution.\\n                const vf = this.pendingVoiceFocus;\\n                this.pendingVoiceFocus = undefined;\\n                return vf;\\n            }\\n            return this.createVoiceFocus(yield this.configuration, preload);\\n        });\\n    }\\n    static majorVersion() {\\n        return Versioning_1.default.sdkVersion.match(/^[1-9][0-9]*\\\\.(?:0|[1-9][0-9]*)/)[0];\\n    }\\n    static majorMinorVersion() {\\n        return Versioning_1.default.sdkVersion.match(/^[1-9][0-9]*\\\\.(?:0|(?:[1-9][0-9]*))\\\\.(?:0|[1-9][0-9]*)/)[0];\\n    }\\n    static currentSDKAssetGroup() {\\n        // Just on the off chance someone does something silly, handle\\n        // malformed version strings here.\\n        const v = this.majorVersion();\\n        // Just a little safety.\\n        /* istanbul ignore next */\\n        if (!v) {\\n            return `stable-v1`;\\n        }\\n        return `sdk-${v}`;\\n    }\\n    // Note that we use query strings here, not headers, in order to make these requests 'simple' and\\n    // avoid the need for CORS preflights.\\n    // Be very, very careful if you choose to add headers here. You should never need to.\\n    static defaultFetchBehavior() {\\n        // Just a little safety.\\n        /* istanbul ignore next */\\n        const version = VoiceFocusDeviceTransformer.majorMinorVersion() || 'unknown';\\n        const ua = Versioning_1.default.sdkUserAgentLowResolution;\\n        return {\\n            escapedQueryString: `sdk=${encodeURIComponent(version)}&ua=${encodeURIComponent(ua)}`,\\n        };\\n    }\\n}\\nexports.VoiceFocusDeviceTransformer = VoiceFocusDeviceTransformer;\\nexports[\\\"default\\\"] = VoiceFocusDeviceTransformer;\\n//# sourceMappingURL=VoiceFocusDeviceTransformer.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusDeviceTransformer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDevice.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDevice.js ***!\n  \\****************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst DefaultBrowserBehavior_1 = __webpack_require__(/*! ../browserbehavior/DefaultBrowserBehavior */ \\\"./node_modules/amazon-chime-sdk-js/build/browserbehavior/DefaultBrowserBehavior.js\\\");\\n/**\\n * A device that augments a {@link Device} to apply Amazon Voice Focus\\n * noise suppression to an audio input.\\n */\\nclass VoiceFocusTransformDevice {\\n    /** @internal */\\n    constructor(device, voiceFocus, delegate, nodeOptions, failed = false, node = undefined, browserBehavior = new DefaultBrowserBehavior_1.default(), \\n    /** farEndStreams` maps from a stream that could cause echo or interfere with double talkto an `AudioSourceNode` that we use to mix multiple such streams.*/\\n    farEndStreamToAudioSourceNode = new Map(), \\n    /** mixDestNode is the Audio Destination Node where farEndStreams got mixed into one stream.*/\\n    mixDestNode = undefined, \\n    /** mixSourceNode is the Audio Source Node where the stream out of mixDestNode got transferred into Audio Worklet Node for processing.*/\\n    mixSourceNode = undefined) {\\n        this.device = device;\\n        this.voiceFocus = voiceFocus;\\n        this.delegate = delegate;\\n        this.nodeOptions = nodeOptions;\\n        this.failed = failed;\\n        this.node = node;\\n        this.browserBehavior = browserBehavior;\\n        this.farEndStreamToAudioSourceNode = farEndStreamToAudioSourceNode;\\n        this.mixDestNode = mixDestNode;\\n        this.mixSourceNode = mixSourceNode;\\n    }\\n    /**\\n     * Return the inner device as provided during construction, or updated via\\n     * {@link VoiceFocusTransformDevice.chooseNewInnerDevice}. Do not confuse\\n     * this method with {@link VoiceFocusTransformDevice.intrinsicDevice}.\\n     */\\n    getInnerDevice() {\\n        return this.device;\\n    }\\n    /**\\n     * Disable the audio node while muted to reduce CPU usage.\\n     *\\n     * @param muted whether the audio device should be muted.\\n     */\\n    mute(muted) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.node) {\\n                return;\\n            }\\n            if (muted) {\\n                yield this.node.disable();\\n            }\\n            else {\\n                yield this.node.enable();\\n            }\\n        });\\n    }\\n    /**\\n     * Dispose of the inner workings of the transform device. After this method is called\\n     * you will need to create a new device to use Amazon Voice Focus again.\\n     */\\n    stop() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.node) {\\n                return;\\n            }\\n            this.node.disconnect();\\n            yield this.node.stop();\\n        });\\n    }\\n    /**\\n     * If you wish to choose a different inner device, but continue to use Amazon Voice Focus, you\\n     * can use this method to efficiently create a new device that will reuse\\n     * the same internal state. Only one of the two devices can be used at a time: switch\\n     * between them using {@link DeviceController.startAudioInput}.\\n     *\\n     * If the same device is passed as is currently in use, `this` is returned.\\n     *\\n     * @param inner The new inner device to use.\\n     */\\n    chooseNewInnerDevice(inner) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            // If the new device is 'default', always recreate. Chrome can switch out\\n            // the real device underneath us.\\n            if (this.device === inner && !isDefaultDevice(inner)) {\\n                return this;\\n            }\\n            return new VoiceFocusTransformDevice(inner, this.voiceFocus, this.delegate, this.nodeOptions, this.failed, this.node, this.browserBehavior, this.farEndStreamToAudioSourceNode, this.mixDestNode, this.mixSourceNode);\\n        });\\n    }\\n    intrinsicDevice() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.failed) {\\n                return this.device;\\n            }\\n            const isUsingES = this.nodeOptions.es;\\n            // Turn the Device into constraints with appropriate AGC settings.\\n            const trackConstraints = {\\n                echoCancellation: !isUsingES,\\n                // @ts-ignore\\n                googEchoCancellation: !isUsingES,\\n                // @ts-ignore\\n                googEchoCancellation2: !isUsingES,\\n                noiseSuppression: false,\\n                // @ts-ignore\\n                googNoiseSuppression: false,\\n                // @ts-ignore\\n                googHighpassFilter: false,\\n                // @ts-ignore\\n                googNoiseSuppression2: false,\\n            };\\n            let useBuiltInAGC;\\n            if (this.nodeOptions && this.nodeOptions.agc !== undefined) {\\n                useBuiltInAGC = this.nodeOptions.agc.useBuiltInAGC;\\n            }\\n            else {\\n                useBuiltInAGC = true;\\n            }\\n            trackConstraints.autoGainControl = useBuiltInAGC;\\n            // @ts-ignore\\n            trackConstraints.googAutoGainControl = useBuiltInAGC;\\n            // @ts-ignore\\n            trackConstraints.googAutoGainControl2 = useBuiltInAGC;\\n            // Empty string and null.\\n            if (!this.device) {\\n                return trackConstraints;\\n            }\\n            // Device ID.\\n            if (typeof this.device === 'string') {\\n                /* istanbul ignore if */\\n                if (this.browserBehavior.requiresNoExactMediaStreamConstraints()) {\\n                    trackConstraints.deviceId = this.device;\\n                }\\n                else {\\n                    trackConstraints.deviceId = { exact: this.device };\\n                }\\n                return trackConstraints;\\n            }\\n            // It's a stream.\\n            if (this.device.id) {\\n                // Nothing we can do.\\n                return this.device;\\n            }\\n            // It's constraints.\\n            return Object.assign(Object.assign({}, this.device), trackConstraints);\\n        });\\n    }\\n    createAudioNode(context) {\\n        var _a, _b;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (((_a = this.node) === null || _a === void 0 ? void 0 : _a.context) === context) {\\n                return {\\n                    start: this.node,\\n                    end: this.node,\\n                };\\n            }\\n            const agc = { useVoiceFocusAGC: false };\\n            const options = Object.assign({ enabled: true, agc }, this.nodeOptions);\\n            try {\\n                (_b = this.node) === null || _b === void 0 ? void 0 : _b.disconnect();\\n                this.node = yield this.voiceFocus.createNode(context, options);\\n                if (this.nodeOptions.es) {\\n                    this.mixDestNode = new MediaStreamAudioDestinationNode(context, {\\n                        channelCount: 1,\\n                        channelCountMode: 'explicit',\\n                    });\\n                    for (const stream of this.farEndStreamToAudioSourceNode.keys()) {\\n                        this.assignFarEndStreamToAudioSourceNode(stream);\\n                    }\\n                    this.createMixSourceNode();\\n                }\\n                const start = this.node;\\n                const end = this.node;\\n                return { start, end };\\n            }\\n            catch (e) {\\n                // It's better to return some audio stream than nothing.\\n                this.failed = true;\\n                this.delegate.onFallback(this, e);\\n                throw e;\\n            }\\n        });\\n    }\\n    observeMeetingAudio(audioVideo) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.nodeOptions.es) {\\n                return;\\n            }\\n            audioVideo.addAudioMixObserver(this);\\n            const stream = yield audioVideo.getCurrentMeetingAudioStream();\\n            if (stream) {\\n                this.addFarEndStream(stream);\\n            }\\n        });\\n    }\\n    unObserveMeetingAudio(audioVideo) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.nodeOptions.es) {\\n                return;\\n            }\\n            audioVideo.removeAudioMixObserver(this);\\n            const stream = yield audioVideo.getCurrentMeetingAudioStream();\\n            if (stream) {\\n                this.removeFarendStream(stream);\\n            }\\n        });\\n    }\\n    /**\\n     * Add an observer to receive notifications about Amazon Voice Focus lifecycle events.\\n     * See {@link VoiceFocusTransformDeviceObserver} for details.\\n     * If the observer has already been added, this method call has no effect.\\n     */\\n    addObserver(observer) {\\n        this.delegate.addObserver(observer);\\n    }\\n    /**\\n     * Remove an existing observer. If the observer has not been previously {@link\\n     * VoiceFocusTransformDevice.addObserver|added}, this method call has no effect.\\n     */\\n    removeObserver(observer) {\\n        this.delegate.removeObserver(observer);\\n    }\\n    addFarEndStream(activeStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (!this.nodeOptions.es ||\\n                !activeStream ||\\n                this.farEndStreamToAudioSourceNode.has(activeStream)) {\\n                return;\\n            }\\n            if (this.node) {\\n                this.assignFarEndStreamToAudioSourceNode(activeStream);\\n            }\\n            else {\\n                this.farEndStreamToAudioSourceNode.set(activeStream, null);\\n            }\\n        });\\n    }\\n    removeFarendStream(inactiveStream) {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            (_a = this.farEndStreamToAudioSourceNode.get(inactiveStream)) === null || _a === void 0 ? void 0 : _a.disconnect();\\n            this.farEndStreamToAudioSourceNode.delete(inactiveStream);\\n        });\\n    }\\n    meetingAudioStreamBecameActive(activeStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.addFarEndStream(activeStream);\\n        });\\n    }\\n    meetingAudioStreamBecameInactive(inactiveStream) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.removeFarendStream(inactiveStream);\\n        });\\n    }\\n    assignFarEndStreamToAudioSourceNode(streamToAdd) {\\n        const streamNodeToAdd = this.node.context.createMediaStreamSource(streamToAdd);\\n        streamNodeToAdd.channelCount = 1;\\n        streamNodeToAdd.channelCountMode = 'explicit';\\n        this.farEndStreamToAudioSourceNode.set(streamToAdd, streamNodeToAdd);\\n        streamNodeToAdd.connect(this.mixDestNode, 0);\\n    }\\n    createMixSourceNode() {\\n        this.mixSourceNode = this.node.context.createMediaStreamSource(this.mixDestNode.stream);\\n        this.mixSourceNode.channelCount = 1;\\n        this.mixSourceNode.channelCountMode = 'explicit';\\n        this.mixSourceNode.connect(this.node, 0, 1);\\n    }\\n}\\nfunction isDefaultDevice(device) {\\n    if (device === 'default') {\\n        return true;\\n    }\\n    if (!device || typeof device !== 'object') {\\n        return false;\\n    }\\n    if ('deviceId' in device && device.deviceId === 'default') {\\n        return true;\\n    }\\n    if ('id' in device && device.id === 'default') {\\n        return true;\\n    }\\n    return false;\\n}\\nexports[\\\"default\\\"] = VoiceFocusTransformDevice;\\n//# sourceMappingURL=VoiceFocusTransformDevice.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDevice.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDeviceDelegate.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDeviceDelegate.js ***!\n  \\************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\n/** @internal */\\nclass VoiceFocusTransformDeviceDelegate {\\n    constructor() {\\n        this.observers = new Set();\\n    }\\n    addObserver(observer) {\\n        this.observers.add(observer);\\n    }\\n    removeObserver(observer) {\\n        this.observers.delete(observer);\\n    }\\n    /** @internal */\\n    onFallback(device, e) {\\n        var _a;\\n        for (const observer of this.observers) {\\n            (_a = observer.voiceFocusFellBackToInnerStream) === null || _a === void 0 ? void 0 : _a.call(observer, device, e);\\n        }\\n    }\\n    onCPUWarning() {\\n        var _a;\\n        for (const observer of this.observers) {\\n            (_a = observer.voiceFocusInsufficientResources) === null || _a === void 0 ? void 0 : _a.call(observer);\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VoiceFocusTransformDeviceDelegate;\\n//# sourceMappingURL=VoiceFocusTransformDeviceDelegate.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/voicefocus/VoiceFocusTransformDeviceDelegate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/volumeindicatoradapter/DefaultVolumeIndicatorAdapter.js\":\n/*!********************************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/volumeindicatoradapter/DefaultVolumeIndicatorAdapter.js ***!\n  \\********************************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nclass DefaultVolumeIndicatorAdapter {\\n    constructor(logger, realtimeController, minVolumeDecibels, maxVolumeDecibels, selfAttendeeId) {\\n        this.logger = logger;\\n        this.realtimeController = realtimeController;\\n        this.minVolumeDecibels = minVolumeDecibels;\\n        this.maxVolumeDecibels = maxVolumeDecibels;\\n        this.selfAttendeeId = selfAttendeeId;\\n        this.streamIdToAttendeeId = {};\\n        this.streamIdToExternalUserId = {};\\n        this.warnedAboutMissingStreamIdMapping = {};\\n        this.attendeeIdToStreamId = {};\\n        this.sessionReconnected = false;\\n    }\\n    onReconnect() {\\n        this.sessionReconnected = true;\\n    }\\n    sendRealtimeUpdatesForAudioStreamIdInfo(info) {\\n        let streamIndex = 0;\\n        for (const stream of info.streams) {\\n            const hasAttendeeId = !!stream.attendeeId;\\n            const hasExternalUserId = !!stream.externalUserId;\\n            const hasMuted = stream.hasOwnProperty('muted');\\n            const hasDropped = !!stream.dropped;\\n            if (hasAttendeeId) {\\n                if (!!this.attendeeIdToStreamId[stream.attendeeId] &&\\n                    this.attendeeIdToStreamId[stream.attendeeId] < stream.audioStreamId) {\\n                    delete this.attendeeIdToStreamId[stream.attendeeId];\\n                }\\n                this.streamIdToAttendeeId[stream.audioStreamId] = stream.attendeeId;\\n                const externalUserId = hasExternalUserId ? stream.externalUserId : stream.attendeeId;\\n                this.streamIdToExternalUserId[stream.audioStreamId] = externalUserId;\\n                this.attendeeIdToStreamId[stream.attendeeId] = stream.audioStreamId;\\n                this.realtimeController.realtimeSetAttendeeIdPresence(stream.attendeeId, true, externalUserId, false, { attendeeIndex: streamIndex++, attendeesInFrame: info.streams.length });\\n            }\\n            if (hasMuted) {\\n                const attendeeId = this.streamIdToAttendeeId[stream.audioStreamId];\\n                const externalUserId = this.streamIdToExternalUserId[stream.audioStreamId];\\n                this.realtimeController.realtimeUpdateVolumeIndicator(attendeeId, null, stream.muted, null, externalUserId);\\n            }\\n            if (!hasAttendeeId && !hasMuted) {\\n                const attendeeId = this.streamIdToAttendeeId[stream.audioStreamId];\\n                if (attendeeId) {\\n                    const externalUserId = this.streamIdToExternalUserId[stream.audioStreamId];\\n                    delete this.streamIdToAttendeeId[stream.audioStreamId];\\n                    delete this.streamIdToExternalUserId[stream.audioStreamId];\\n                    delete this.warnedAboutMissingStreamIdMapping[stream.audioStreamId];\\n                    if (this.attendeeIdToStreamId[attendeeId] === stream.audioStreamId) {\\n                        delete this.attendeeIdToStreamId[attendeeId];\\n                    }\\n                    let attendeeHasNewStreamId = false;\\n                    for (const otherStreamId of Object.keys(this.streamIdToAttendeeId)) {\\n                        const otherStreamIdNumber = parseInt(otherStreamId);\\n                        if (otherStreamIdNumber > stream.audioStreamId &&\\n                            this.streamIdToAttendeeId[otherStreamIdNumber] === attendeeId) {\\n                            attendeeHasNewStreamId = true;\\n                            break;\\n                        }\\n                    }\\n                    if (!attendeeHasNewStreamId) {\\n                        this.realtimeController.realtimeSetAttendeeIdPresence(attendeeId, false, externalUserId, hasDropped, { attendeeIndex: streamIndex++, attendeesInFrame: info.streams.length });\\n                    }\\n                }\\n            }\\n        }\\n        if (this.sessionReconnected) {\\n            this.cleanUpState(info);\\n            this.sessionReconnected = false;\\n        }\\n    }\\n    cleanUpState(info) {\\n        const localAttendeeIds = Object.values(this.streamIdToAttendeeId);\\n        const remoteAttendeeIds = info.streams.map(stream => stream.attendeeId);\\n        const deletedAttendeeIds = localAttendeeIds.filter(id => {\\n            return !remoteAttendeeIds.includes(id);\\n        });\\n        for (const [index, deletedAttendeeId] of deletedAttendeeIds.entries()) {\\n            const streamId = this.attendeeIdToStreamId[deletedAttendeeId];\\n            const externalUserId = this.streamIdToExternalUserId[streamId];\\n            delete this.streamIdToAttendeeId[streamId];\\n            delete this.streamIdToExternalUserId[streamId];\\n            delete this.warnedAboutMissingStreamIdMapping[streamId];\\n            delete this.attendeeIdToStreamId[deletedAttendeeId];\\n            // During reconnection, the audio info frame might not include self attendee.\\n            // However, if that happens, there would be another audio info frame with the self attendee after reconnection.\\n            // So we should not send leave event here for self attendee.\\n            if (deletedAttendeeId === this.selfAttendeeId) {\\n                this.logger.warn(`the volume indicator adapter cleans up the current attendee (presence = false) after reconnection`);\\n                continue;\\n            }\\n            // The reconnect event does not have information whether the attendee is dropped/left.\\n            // Defaulting to attendee leaving the meeting\\n            this.realtimeController.realtimeSetAttendeeIdPresence(deletedAttendeeId, false, externalUserId, false, { attendeeIndex: index, attendeesInFrame: deletedAttendeeId.length });\\n        }\\n    }\\n    sendRealtimeUpdatesForAudioMetadata(metadata) {\\n        let volumes = null;\\n        let signalStrengths = null;\\n        for (const state of metadata.attendeeStates) {\\n            const attendeeId = this.attendeeIdForStreamId(state.audioStreamId);\\n            if (state.hasOwnProperty('volume')) {\\n                if (volumes === null) {\\n                    volumes = {};\\n                }\\n                if (attendeeId !== null) {\\n                    // @ts-ignore: TODO fix this protobufjs issue\\n                    volumes[attendeeId] = this.normalizedVolume(state);\\n                }\\n            }\\n            if (state.hasOwnProperty('signalStrength')) {\\n                if (signalStrengths === null) {\\n                    signalStrengths = {};\\n                }\\n                if (attendeeId !== null) {\\n                    // @ts-ignore: TODO fix this protobufjs issue\\n                    signalStrengths[attendeeId] = this.normalizedSignalStrength(state);\\n                }\\n            }\\n        }\\n        this.applyRealtimeUpdatesForAudioMetadata(volumes, signalStrengths);\\n    }\\n    normalizedVolume(state) {\\n        const dBVolume = -state.volume;\\n        const normalized = 1.0 - (dBVolume - this.maxVolumeDecibels) / (this.minVolumeDecibels - this.maxVolumeDecibels);\\n        const clipped = Math.min(Math.max(normalized, 0.0), 1.0);\\n        return clipped;\\n    }\\n    normalizedSignalStrength(state) {\\n        const normalized = state.signalStrength / DefaultVolumeIndicatorAdapter.MAX_SIGNAL_STRENGTH_LEVELS;\\n        const clipped = Math.min(Math.max(normalized, 0.0), 1.0);\\n        return clipped;\\n    }\\n    applyRealtimeUpdatesForAudioMetadata(volumes, signalStrengths) {\\n        for (const streamId in this.streamIdToAttendeeId) {\\n            const attendeeId = this.streamIdToAttendeeId[streamId];\\n            const externalUserId = this.streamIdToExternalUserId[streamId];\\n            let volumeUpdate = null;\\n            let signalStrengthUpdate = null;\\n            if (volumes !== null) {\\n                if (volumes.hasOwnProperty(attendeeId)) {\\n                    volumeUpdate = volumes[attendeeId];\\n                }\\n                else {\\n                    volumeUpdate = DefaultVolumeIndicatorAdapter.IMPLICIT_VOLUME;\\n                }\\n            }\\n            if (signalStrengths !== null) {\\n                if (signalStrengths.hasOwnProperty(attendeeId)) {\\n                    signalStrengthUpdate = signalStrengths[attendeeId];\\n                }\\n                else {\\n                    signalStrengthUpdate = DefaultVolumeIndicatorAdapter.IMPLICIT_SIGNAL_STRENGTH;\\n                }\\n            }\\n            if (volumeUpdate !== null || signalStrengthUpdate !== null) {\\n                this.realtimeController.realtimeUpdateVolumeIndicator(attendeeId, volumeUpdate, null, signalStrengthUpdate, externalUserId);\\n            }\\n        }\\n    }\\n    attendeeIdForStreamId(streamId) {\\n        if (streamId === 0) {\\n            return null;\\n        }\\n        const attendeeId = this.streamIdToAttendeeId[streamId];\\n        if (attendeeId) {\\n            return attendeeId;\\n        }\\n        if (!this.warnedAboutMissingStreamIdMapping[streamId]) {\\n            this.warnedAboutMissingStreamIdMapping[streamId] = true;\\n            this.logger.warn(`volume indicator stream id ${streamId} seen before being defined`);\\n        }\\n        return null;\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultVolumeIndicatorAdapter;\\nDefaultVolumeIndicatorAdapter.MAX_SIGNAL_STRENGTH_LEVELS = 2;\\nDefaultVolumeIndicatorAdapter.IMPLICIT_VOLUME = 0;\\nDefaultVolumeIndicatorAdapter.IMPLICIT_SIGNAL_STRENGTH = 1;\\n//# sourceMappingURL=DefaultVolumeIndicatorAdapter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/volumeindicatoradapter/DefaultVolumeIndicatorAdapter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js\":\n/*!********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js ***!\n  \\********************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst Versioning_1 = __webpack_require__(/*! ../versioning/Versioning */ \\\"./node_modules/amazon-chime-sdk-js/build/versioning/Versioning.js\\\");\\nconst WebSocketReadyState_1 = __webpack_require__(/*! ./WebSocketReadyState */ \\\"./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js\\\");\\nclass DefaultWebSocketAdapter {\\n    constructor(logger) {\\n        this.logger = logger;\\n    }\\n    create(url, protocols, isSignedUrl) {\\n        this.connection = new WebSocket(isSignedUrl ? url : Versioning_1.default.urlWithVersion(url), protocols);\\n        this.connection.binaryType = 'arraybuffer';\\n    }\\n    send(message) {\\n        if (!this.connection) {\\n            this.logger.error('WebSocket not yet created or already destroyed.');\\n            return false;\\n        }\\n        try {\\n            if (message instanceof Uint8Array) {\\n                this.connection.send(message.buffer);\\n            }\\n            else {\\n                this.connection.send(message);\\n            }\\n            return true;\\n        }\\n        catch (err) {\\n            this.logger.debug(() => `send error: ${err.message}, websocket state=${WebSocketReadyState_1.default[this.readyState()]}`);\\n            return false;\\n        }\\n    }\\n    close(code, reason) {\\n        var _a;\\n        (_a = this.connection) === null || _a === void 0 ? void 0 : _a.close(code, reason);\\n    }\\n    destroy() {\\n        this.connection = undefined;\\n    }\\n    addEventListener(handler, eventListener) {\\n        /* istanbul ignore if */\\n        if (!this.connection) {\\n            this.logger.warn('Cannot add event listener with no WebSocket connection.');\\n            return;\\n        }\\n        this.connection.addEventListener(handler, eventListener);\\n    }\\n    removeEventListener(handler, eventListener) {\\n        var _a;\\n        (_a = this.connection) === null || _a === void 0 ? void 0 : _a.removeEventListener(handler, eventListener);\\n    }\\n    readyState() {\\n        if (!this.connection) {\\n            return WebSocketReadyState_1.default.None;\\n        }\\n        switch (this.connection.readyState) {\\n            case WebSocket.CONNECTING:\\n                return WebSocketReadyState_1.default.Connecting;\\n            case WebSocket.OPEN:\\n                return WebSocketReadyState_1.default.Open;\\n            case WebSocket.CLOSING:\\n                return WebSocketReadyState_1.default.Closing;\\n            case WebSocket.CLOSED:\\n                return WebSocketReadyState_1.default.Closed;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = DefaultWebSocketAdapter;\\n//# sourceMappingURL=DefaultWebSocketAdapter.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/websocketadapter/DefaultWebSocketAdapter.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js\":\n/*!****************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js ***!\n  \\****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.WebSocketReadyState = void 0;\\nvar WebSocketReadyState;\\n(function (WebSocketReadyState) {\\n    WebSocketReadyState[WebSocketReadyState[\\\"None\\\"] = 0] = \\\"None\\\";\\n    WebSocketReadyState[WebSocketReadyState[\\\"Connecting\\\"] = 1] = \\\"Connecting\\\";\\n    WebSocketReadyState[WebSocketReadyState[\\\"Open\\\"] = 2] = \\\"Open\\\";\\n    WebSocketReadyState[WebSocketReadyState[\\\"Closing\\\"] = 3] = \\\"Closing\\\";\\n    WebSocketReadyState[WebSocketReadyState[\\\"Closed\\\"] = 4] = \\\"Closed\\\";\\n})(WebSocketReadyState = exports.WebSocketReadyState || (exports.WebSocketReadyState = {}));\\nexports[\\\"default\\\"] = WebSocketReadyState;\\n//# sourceMappingURL=WebSocketReadyState.js.map\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/build/websocketadapter/WebSocketReadyState.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/decider.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/decider.js ***!\n  \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.decideModel = exports.measureAndDecideExecutionApproach = void 0;\\nconst loader_js_1 = __webpack_require__(/*! ./loader.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\\\");\\nconst support_js_1 = __webpack_require__(/*! ./support.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst DEFAULT_EXECUTION_QUANTA = 3;\\nconst SIMD_SCORE_FIXED_POINT = 2.50;\\nconst WASM_SCORE_FIXED_POINT = 2.63;\\nconst SINGLE_INLINE_SCORE_MULTIPLIER = 0.6;\\nconst QUALITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER = 0.65;\\nconst INTERACTIVITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER = 0.5;\\nconst WORKER_SCORE_MULTIPLIER = 0.7;\\nconst PERFORMANCE_THRESHOLDS = {\\n    wasm: {\\n        noSupport: 0.07,\\n        inline: {\\n            c100: 1,\\n            c50: 0.36,\\n            c20: 0.16,\\n            c10: 0.07,\\n        },\\n        worker: {\\n            c100: 0.5,\\n            c50: 0.18,\\n            c20: 0.08,\\n            c10: 0.06,\\n        },\\n    },\\n    simd: {\\n        noSupport: 0.10,\\n        inline: {\\n            c100: 1,\\n            c50: 0.43,\\n            c20: 0.3,\\n            c10: 0.2,\\n        },\\n        worker: {\\n            c100: 0.5,\\n            c50: 0.21,\\n            c20: 0.15,\\n            c10: 0.10,\\n        },\\n    },\\n};\\nclass Estimator {\\n    constructor(fetchConfig, logger) {\\n        this.fetchConfig = fetchConfig;\\n        this.logger = logger;\\n        const workerURL = `${fetchConfig.paths.workers}estimator-v1.js`;\\n        this.fetchBehavior = { headers: fetchConfig.headers, escapedQueryString: fetchConfig.escapedQueryString };\\n        this.worker = loader_js_1.loadWorker(workerURL, 'VoiceFocusEstimator', this.fetchBehavior, logger);\\n    }\\n    roundtrip(toSend, receive, expectedKey) {\\n        return new Promise((resolve, reject) => {\\n            this.worker.then(worker => {\\n                let listener;\\n                listener = (event) => {\\n                    const { message, key } = event.data;\\n                    if (message === receive && key === expectedKey) {\\n                        worker.removeEventListener('message', listener);\\n                        resolve(event.data);\\n                    }\\n                };\\n                worker.addEventListener('message', listener);\\n                worker.postMessage(toSend);\\n            }).catch(e => {\\n                var _a;\\n                (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error('Failed to load worker.', e);\\n                reject(e);\\n            });\\n        });\\n    }\\n    supportsSIMD(url) {\\n        const key = 'simd';\\n        const path = url || `${this.fetchConfig.paths.wasm}simd-v1.wasm`;\\n        const toSend = {\\n            message: 'supports-simd',\\n            fetchBehavior: this.fetchBehavior,\\n            path,\\n            key,\\n        };\\n        return this.roundtrip(toSend, 'simd-support', key)\\n            .then(data => data.supports);\\n    }\\n    measure(simd, budget) {\\n        const benchWASM = `${this.fetchConfig.paths.wasm}bench-v1.wasm`;\\n        const benchSIMD = `${this.fetchConfig.paths.wasm}bench-v1_simd.wasm`;\\n        const path = simd ? benchSIMD : benchWASM;\\n        const key = `bench:${simd}`;\\n        const toSend = {\\n            message: 'measure',\\n            fetchBehavior: this.fetchBehavior,\\n            budget,\\n            path,\\n            key,\\n        };\\n        return this.roundtrip(toSend, 'measurement', key)\\n            .then(data => {\\n            if (data.measurement) {\\n                return data.measurement;\\n            }\\n            throw new Error('Failed to measure.');\\n        });\\n    }\\n    stop() {\\n        this.worker.then(worker => {\\n            var _a;\\n            (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Stopping estimator worker.');\\n            worker.terminate();\\n        }).catch(e => {\\n        });\\n    }\\n}\\nconst inlineScoreMultiplier = (executionQuanta, usagePreference) => {\\n    if (executionQuanta === 1) {\\n        return SINGLE_INLINE_SCORE_MULTIPLIER;\\n    }\\n    if (usagePreference === 'quality') {\\n        return QUALITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER * executionQuanta;\\n    }\\n    return INTERACTIVITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER * executionQuanta;\\n};\\nconst decideExecutionApproach = ({ supportsSIMD, supportsSAB, duration, executionPreference = 'auto', simdPreference, variantPreference = 'auto', namePreference = 'default', usagePreference, executionQuantaPreference = DEFAULT_EXECUTION_QUANTA, }, allThresholds = PERFORMANCE_THRESHOLDS, logger) => {\\n    const forceSIMD = (simdPreference === 'force');\\n    const useSIMD = forceSIMD || (simdPreference !== 'disable' && supportsSIMD);\\n    const checkScores = duration !== -1;\\n    const baseScore = checkScores ? (useSIMD ? SIMD_SCORE_FIXED_POINT : WASM_SCORE_FIXED_POINT) / duration : 0;\\n    const thresholds = useSIMD ? allThresholds.simd : allThresholds.wasm;\\n    const inlineScore = checkScores ? inlineScoreMultiplier(executionQuantaPreference, usagePreference) * baseScore : 0;\\n    const workerScore = checkScores ? WORKER_SCORE_MULTIPLIER * baseScore : 0;\\n    const name = namePreference;\\n    const unsupported = (reason) => {\\n        return {\\n            supported: false,\\n            reason,\\n        };\\n    };\\n    if (checkScores) {\\n        if (baseScore < thresholds.noSupport) {\\n            return unsupported(`Performance score ${baseScore} worse than threshold ${thresholds.noSupport}.`);\\n        }\\n    }\\n    else {\\n        if ((executionPreference === 'auto') ||\\n            (variantPreference === 'auto')) {\\n            return unsupported(`Missing explicit execution (${executionPreference}) or variant (${variantPreference}) preference, but no scoring performed.`);\\n        }\\n    }\\n    logger === null || logger === void 0 ? void 0 : logger.debug(`Bench duration ${duration} yields inline score ${inlineScore} and worker score ${workerScore}.`);\\n    const succeed = (processor, executionApproach, variant) => {\\n        return {\\n            supported: true,\\n            useSIMD,\\n            processor,\\n            executionApproach,\\n            variant,\\n            executionQuanta: (executionApproach === 'inline' ? executionQuantaPreference : undefined),\\n            name,\\n        };\\n    };\\n    const resolveVariant = (score, variant, lookup) => {\\n        if (variant !== 'auto') {\\n            if (!checkScores || score > lookup[variant]) {\\n                return variant;\\n            }\\n            return 'failed';\\n        }\\n        if (score > lookup.c100) {\\n            return 'c100';\\n        }\\n        if (score > lookup.c50) {\\n            return 'c50';\\n        }\\n        if (score > lookup.c20) {\\n            return 'c20';\\n        }\\n        if (score > lookup.c10) {\\n            return 'c10';\\n        }\\n        return 'failed';\\n    };\\n    const reducePreference = (preference) => {\\n        switch (preference || 'auto') {\\n            case 'auto': {\\n                let inlineOption = reducePreference('inline');\\n                let workerOption = reducePreference('worker');\\n                logger === null || logger === void 0 ? void 0 : logger.debug(`Reducing auto preference: ${JSON.stringify(inlineOption)} vs ${JSON.stringify(workerOption)}`);\\n                if (inlineOption.supported === false) {\\n                    return workerOption;\\n                }\\n                if (workerOption.supported === false) {\\n                    return workerOption;\\n                }\\n                if (inlineOption.variant === workerOption.variant || inlineOption.variant === 'c50') {\\n                    return inlineOption;\\n                }\\n                return workerOption;\\n            }\\n            case 'worker': {\\n                if (support_js_1.supportsSharedArrayBuffer(globalThis, window, logger)) {\\n                    return reducePreference('worker-sab');\\n                }\\n                return reducePreference('worker-postMessage');\\n            }\\n            case 'inline': {\\n                const variant = resolveVariant(inlineScore, variantPreference, thresholds.inline);\\n                if (variant === 'failed') {\\n                    return unsupported(`Performance score ${inlineScore} not sufficient for inline use with variant preference ${variantPreference}.`);\\n                }\\n                ;\\n                return succeed('voicefocus-inline-processor', 'inline', variant);\\n            }\\n            case 'worker-sab': {\\n                if (!supportsSAB) {\\n                    const reason = 'Requested worker-sab but no SharedArrayBuffer support.';\\n                    logger === null || logger === void 0 ? void 0 : logger.warn(reason);\\n                    return { supported: false, reason };\\n                }\\n                const variant = resolveVariant(workerScore, variantPreference, thresholds.worker);\\n                if (variant === 'failed') {\\n                    return unsupported(`Performance score ${workerScore} not sufficient for worker use with variant preference ${variantPreference}.`);\\n                }\\n                ;\\n                return succeed('voicefocus-worker-sab-processor', 'worker-sab', variant);\\n            }\\n            case 'worker-postMessage': {\\n                const variant = resolveVariant(workerScore, variantPreference, thresholds.worker);\\n                if (variant === 'failed') {\\n                    return unsupported(`Performance score ${workerScore} not sufficient for worker use.`);\\n                }\\n                ;\\n                if (name === 'ns_es') {\\n                    const reason = 'Requested echo suppression but postMessage executor does not support it.';\\n                    logger === null || logger === void 0 ? void 0 : logger.warn(reason);\\n                    return { supported: false, reason };\\n                }\\n                ;\\n                return succeed('voicefocus-worker-postMessage-processor', 'worker-postMessage', variant);\\n            }\\n        }\\n    };\\n    return reducePreference(executionPreference);\\n};\\nconst featureCheck = (forceSIMD, fetchConfig, logger, estimator) => __awaiter(void 0, void 0, void 0, function* () {\\n    const supports = {\\n        supportsSIMD: forceSIMD,\\n        supportsSAB: support_js_1.supportsSharedArrayBuffer(globalThis, window, logger),\\n        duration: -1,\\n    };\\n    if (forceSIMD) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Supports SIMD: true (force)');\\n        return supports;\\n    }\\n    const cleanup = !estimator;\\n    const e = estimator || new Estimator(fetchConfig, logger);\\n    try {\\n        const useSIMD = !support_js_1.isOldChrome(window, logger) && (yield e.supportsSIMD());\\n        logger === null || logger === void 0 ? void 0 : logger.info(`Supports SIMD: ${useSIMD} (force: ${forceSIMD})`);\\n        supports.supportsSIMD = useSIMD;\\n        return supports;\\n    }\\n    finally {\\n        if (cleanup) {\\n            e.stop();\\n        }\\n    }\\n});\\nconst estimateAndFeatureCheck = (forceSIMD, fetchConfig, estimatorBudget, logger) => __awaiter(void 0, void 0, void 0, function* () {\\n    const estimator = new Estimator(fetchConfig, logger);\\n    try {\\n        const supports = yield featureCheck(forceSIMD, fetchConfig, logger, estimator);\\n        if (supports.supportsSIMD) {\\n            try {\\n                supports.duration = yield estimator.measure(true, estimatorBudget);\\n                logger === null || logger === void 0 ? void 0 : logger.info('SIMD timing:', supports.duration);\\n                return supports;\\n            }\\n            catch (e) {\\n                logger === null || logger === void 0 ? void 0 : logger.warn('Failed SIMD estimation; falling back to non-SIMD.');\\n                supports.supportsSIMD = false;\\n            }\\n        }\\n        supports.duration = yield estimator.measure(false, estimatorBudget);\\n        logger === null || logger === void 0 ? void 0 : logger.info('No-SIMD timing:', supports.duration);\\n        return supports;\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.error('Could not feature check.', e);\\n        throw e;\\n    }\\n    finally {\\n        estimator.stop();\\n    }\\n});\\nconst measureAndDecideExecutionApproach = (spec, fetchConfig, logger, thresholds = PERFORMANCE_THRESHOLDS) => __awaiter(void 0, void 0, void 0, function* () {\\n    let executionPreference = spec.executionPreference;\\n    const { usagePreference, variantPreference, namePreference, simdPreference, estimatorBudget, executionQuantaPreference, } = spec;\\n    if (usagePreference === 'interactivity' && executionPreference !== 'inline') {\\n        logger === null || logger === void 0 ? void 0 : logger.debug(`Overriding execution preference ${executionPreference} to reflect interactivity preference.`);\\n        executionPreference = 'inline';\\n    }\\n    const forceSIMD = simdPreference === 'force';\\n    const knownModel = variantPreference !== 'auto';\\n    const knownExecution = executionPreference !== 'auto';\\n    let supports;\\n    try {\\n        if (knownModel && knownExecution) {\\n            supports = yield featureCheck(forceSIMD, fetchConfig, logger);\\n        }\\n        else {\\n            supports = yield estimateAndFeatureCheck(forceSIMD, fetchConfig, estimatorBudget, logger);\\n        }\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.error('Could not load estimator.', e);\\n        throw new Error('Could not load Voice Focus estimator.');\\n    }\\n    return decideExecutionApproach(Object.assign(Object.assign({}, supports), { simdPreference,\\n        executionPreference,\\n        variantPreference,\\n        namePreference,\\n        usagePreference,\\n        executionQuantaPreference }), thresholds, logger);\\n});\\nexports.measureAndDecideExecutionApproach = measureAndDecideExecutionApproach;\\nconst decideModel = ({ category, name, variant, simd, url }) => {\\n    return `${category}-${name}-${variant}-v1${simd ? '_simd' : ''}`;\\n};\\nexports.decideModel = decideModel;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/decider.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/fetch.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/fetch.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isValidRevisionID = exports.isValidAssetGroup = exports.resolveURL = exports.addQueryParams = exports.withQueryString = exports.withRequestHeaders = exports.fetchWithBehavior = void 0;\\nfunction fetchWithBehavior(url, init, fetchBehavior) {\\n    if (!fetchBehavior) {\\n        return fetch(url, init);\\n    }\\n    const withQuery = withQueryString(url, fetchBehavior);\\n    const withHeaders = withRequestHeaders(init, fetchBehavior);\\n    return fetch(withQuery, withHeaders);\\n}\\nexports.fetchWithBehavior = fetchWithBehavior;\\nfunction withRequestHeaders(init, fetchBehavior) {\\n    if (!(fetchBehavior === null || fetchBehavior === void 0 ? void 0 : fetchBehavior.headers)) {\\n        return init;\\n    }\\n    if (!init) {\\n        return {\\n            headers: fetchBehavior.headers,\\n        };\\n    }\\n    return Object.assign(Object.assign({}, init), { headers: Object.assign(Object.assign({}, init.headers || {}), fetchBehavior.headers) });\\n}\\nexports.withRequestHeaders = withRequestHeaders;\\nfunction withQueryString(url, fetchBehavior) {\\n    if (!(fetchBehavior === null || fetchBehavior === void 0 ? void 0 : fetchBehavior.escapedQueryString)) {\\n        return url;\\n    }\\n    const hasQuery = url.lastIndexOf('?') !== -1;\\n    return `${url}${hasQuery ? '&' : '?'}${fetchBehavior.escapedQueryString}`;\\n}\\nexports.withQueryString = withQueryString;\\nfunction addQueryParams(fetchBehavior, queryParams) {\\n    const keys = Object.keys(queryParams);\\n    if (!keys.length) {\\n        return fetchBehavior;\\n    }\\n    const params = new URLSearchParams(fetchBehavior === null || fetchBehavior === void 0 ? void 0 : fetchBehavior.escapedQueryString);\\n    for (const key of keys) {\\n        params.append(key, queryParams[key]);\\n    }\\n    return Object.assign(Object.assign({}, fetchBehavior), { escapedQueryString: params.toString() });\\n}\\nexports.addQueryParams = addQueryParams;\\nconst HEAD_OPTIONS = {\\n    method: 'HEAD',\\n    mode: 'cors',\\n    credentials: 'omit',\\n    redirect: 'follow',\\n    referrerPolicy: 'origin',\\n};\\nfunction resolveURL(url, fetchBehavior) {\\n    return fetchWithBehavior(url, HEAD_OPTIONS, fetchBehavior)\\n        .then(response => response.redirected ? response.url : url);\\n}\\nexports.resolveURL = resolveURL;\\nfunction isValidAssetGroup(assetGroup) {\\n    return !!assetGroup && /^[-.a-zA-Z0-9]+$/.test(assetGroup);\\n}\\nexports.isValidAssetGroup = isValidAssetGroup;\\nfunction isValidRevisionID(revisionID) {\\n    return !!revisionID && /^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]{22}$/.test(revisionID);\\n}\\nexports.isValidRevisionID = isValidRevisionID;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/fetch.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.loadWorker = void 0;\\nconst fetch_js_1 = __webpack_require__(/*! ./fetch.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/fetch.js\\\");\\nconst WORKER_FETCH_OPTIONS = {\\n    method: 'GET',\\n    mode: 'cors',\\n    credentials: 'omit',\\n    redirect: 'follow',\\n    referrerPolicy: 'no-referrer',\\n};\\nconst loadWorker = (workerURL, name, fetchBehavior, logger) => {\\n    logger === null || logger === void 0 ? void 0 : logger.debug(`Loading ${name} worker from ${workerURL}.`);\\n    let workerURLIsSameOrigin = false;\\n    try {\\n        workerURLIsSameOrigin = self.origin === (new URL(workerURL)).origin;\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.error('Could not compare origins.', e);\\n    }\\n    if (workerURLIsSameOrigin) {\\n        const workerURLWithQuery = fetch_js_1.withQueryString(workerURL, fetchBehavior);\\n        return Promise.resolve(new Worker(workerURLWithQuery, { name }));\\n    }\\n    return fetch_js_1.fetchWithBehavior(workerURL, WORKER_FETCH_OPTIONS, fetchBehavior).then((res) => {\\n        if (res.ok) {\\n            return res.blob()\\n                .then((blob) => new Worker(window.URL.createObjectURL(blob)));\\n        }\\n        throw new Error('Fetch failed.');\\n    });\\n};\\nexports.loadWorker = loadWorker;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js ***!\n  \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.isOldChrome = exports.supportsWASMStreaming = exports.supportsSharedArrayBuffer = exports.supportsWASM = exports.supportsAudioWorklet = exports.supportsWorker = exports.supportsVoiceFocusWorker = exports.supportsWASMPostMessage = exports.isSafari = void 0;\\nconst loader_js_1 = __webpack_require__(/*! ./loader.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\\\");\\nconst isChrome = (global = globalThis) => {\\n    const ua = global.navigator.userAgent;\\n    return !!ua.match(/Chrom(?:e|ium)\\\\/([0-9]+)/);\\n};\\nconst isSafari = (global = globalThis) => {\\n    const ua = global.navigator.userAgent;\\n    const hasSafari = ua.match(/Safari\\\\//);\\n    const hasChrome = ua.match(/Chrom(?:e|ium)\\\\//);\\n    return !!(hasSafari && !hasChrome);\\n};\\nexports.isSafari = isSafari;\\nconst supportsWASMPostMessage = (global = globalThis) => {\\n    if (exports.isSafari(global)) {\\n        return false;\\n    }\\n    if (isChrome(global)) {\\n        const version = chromeVersion(global) || 0;\\n        return version < 95;\\n    }\\n    return true;\\n};\\nexports.supportsWASMPostMessage = supportsWASMPostMessage;\\nconst supportsVoiceFocusWorker = (scope = globalThis, fetchConfig, logger) => __awaiter(void 0, void 0, void 0, function* () {\\n    if (!exports.supportsWorker(scope, logger)) {\\n        return false;\\n    }\\n    const workerURL = `${fetchConfig.paths.workers}worker-v1.js`;\\n    try {\\n        const worker = yield loader_js_1.loadWorker(workerURL, 'VoiceFocusTestWorker', fetchConfig, logger);\\n        try {\\n            worker.terminate();\\n        }\\n        catch (e) {\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Failed to terminate worker.', e);\\n        }\\n        return true;\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Failed to fetch and instantiate test worker', e);\\n        return false;\\n    }\\n});\\nexports.supportsVoiceFocusWorker = supportsVoiceFocusWorker;\\nconst supportsWorker = (scope = globalThis, logger) => {\\n    try {\\n        return !!scope.Worker;\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Does not support Worker', e);\\n        return false;\\n    }\\n};\\nexports.supportsWorker = supportsWorker;\\nconst supportsAudioWorklet = (scope = globalThis, logger) => {\\n    try {\\n        return !!scope.AudioWorklet && !!scope.AudioWorkletNode;\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Does not support Audio Worklet', e);\\n        return false;\\n    }\\n};\\nexports.supportsAudioWorklet = supportsAudioWorklet;\\nconst supportsWASM = (scope = globalThis, logger) => {\\n    try {\\n        return !!scope.WebAssembly && (!!scope.WebAssembly.compile || !!scope.WebAssembly.compileStreaming);\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Does not support WASM', e);\\n        return false;\\n    }\\n};\\nexports.supportsWASM = supportsWASM;\\nconst supportsSharedArrayBuffer = (scope = globalThis, window = globalThis, logger) => {\\n    try {\\n        return !!scope.SharedArrayBuffer && (!!window.chrome || !!scope.crossOriginIsolated);\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Does not support SharedArrayBuffer.');\\n        return false;\\n    }\\n};\\nexports.supportsSharedArrayBuffer = supportsSharedArrayBuffer;\\nconst supportsWASMStreaming = (scope = globalThis, logger) => {\\n    var _a;\\n    try {\\n        return !!((_a = scope.WebAssembly) === null || _a === void 0 ? void 0 : _a.compileStreaming);\\n    }\\n    catch (e) {\\n        logger === null || logger === void 0 ? void 0 : logger.info('Does not support WASM streaming compilation', e);\\n        return false;\\n    }\\n};\\nexports.supportsWASMStreaming = supportsWASMStreaming;\\nconst SUPPORTED_CHROME_VERSION = 90;\\nconst chromeVersion = (global = globalThis) => {\\n    try {\\n        if (!global.chrome) {\\n            return undefined;\\n        }\\n    }\\n    catch (e) {\\n    }\\n    const versionCheck = global.navigator.userAgent.match(/Chrom(?:e|ium)\\\\/([0-9]+)/);\\n    if (!versionCheck) {\\n        return undefined;\\n    }\\n    return parseInt(versionCheck[1], 10);\\n};\\nconst isOldChrome = (global = globalThis, logger) => {\\n    const version = chromeVersion(global);\\n    if (!version) {\\n        return false;\\n    }\\n    if (version < SUPPORTED_CHROME_VERSION) {\\n        logger === null || logger === void 0 ? void 0 : logger.debug(`Chrome ${version} has incomplete SIMD support.`);\\n        return true;\\n    }\\n    return false;\\n};\\nexports.isOldChrome = isOldChrome;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.VoiceFocusAudioWorkletNode = void 0;\\nclass VoiceFocusAudioWorkletNode extends ((typeof globalThis !== 'undefined' && globalThis['AudioWorkletNode']) ||\\n    class Sadness {\\n    }) {\\n}\\nexports.VoiceFocusAudioWorkletNode = VoiceFocusAudioWorkletNode;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/voicefocus.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/voicefocus.js ***!\n  \\************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nexports.getAudioInput = exports.createAudioContext = exports.VoiceFocus = void 0;\\nconst decider_js_1 = __webpack_require__(/*! ./decider.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/decider.js\\\");\\nconst fetch_js_1 = __webpack_require__(/*! ./fetch.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/fetch.js\\\");\\nconst loader_js_1 = __webpack_require__(/*! ./loader.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/loader.js\\\");\\nconst support_js_1 = __webpack_require__(/*! ./support.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst worklet_inline_node_js_1 = __webpack_require__(/*! ./worklet-inline-node.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-inline-node.js\\\");\\nconst worklet_worker_sab_node_js_1 = __webpack_require__(/*! ./worklet-worker-sab-node.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-sab-node.js\\\");\\nconst worklet_worker_postMessage_node_js_1 = __webpack_require__(/*! ./worklet-worker-postMessage-node.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-postMessage-node.js\\\");\\nconst DEFAULT_AGC_DISABLED_SETTING = {\\n    useVoiceFocusAGC: false,\\n    useBuiltInAGC: true,\\n};\\nconst DEFAULT_AGC_SETTING = DEFAULT_AGC_DISABLED_SETTING;\\nconst DEFAULT_ASSET_GROUP = 'stable-v1';\\nconst DEFAULT_CDN = 'https://static.sdkassets.chime.aws';\\nconst DEFAULT_PATHS = {\\n    processors: `${DEFAULT_CDN}/processors/`,\\n    workers: `${DEFAULT_CDN}/workers/`,\\n    wasm: `${DEFAULT_CDN}/wasm/`,\\n    models: `${DEFAULT_CDN}/wasm/`,\\n};\\nconst DEFAULT_CONTEXT_HINT = {\\n    latencyHint: 0,\\n};\\nconst BASE_AUDIO_CONSTRAINTS = {\\n    channelCount: 1,\\n    echoCancellation: true,\\n    googEchoCancellation: true,\\n    noiseSuppression: false,\\n    googNoiseSuppression: false,\\n    googHighpassFilter: false,\\n    googTypingNoiseDetection: false,\\n};\\nconst DEFAULT_AUDIO_CONSTRAINTS_WITH_BUILTIN_AGC = Object.assign(Object.assign({}, BASE_AUDIO_CONSTRAINTS), { autoGainControl: true, googAutoGainControl: true, googAutoGainControl2: true });\\nconst DEFAULT_AUDIO_CONSTRAINTS_WITHOUT_BUILTIN_AGC = Object.assign(Object.assign({}, BASE_AUDIO_CONSTRAINTS), { autoGainControl: false, googAutoGainControl: false, googAutoGainControl2: false });\\nconst PROCESSORS = {\\n    'voicefocus-worker-sab-processor': {\\n        file: 'worklet-worker-sab-processor-v1.js',\\n        node: worklet_worker_sab_node_js_1.default,\\n    },\\n    'voicefocus-worker-postMessage-processor': {\\n        file: 'worklet-worker-postMessage-processor-v1.js',\\n        node: worklet_worker_postMessage_node_js_1.default,\\n    },\\n    'voicefocus-inline-processor': {\\n        file: 'worklet-inline-processor-v1.js',\\n        node: worklet_inline_node_js_1.default,\\n    },\\n};\\nconst validateAssetSpec = (assetGroup, revisionID) => {\\n    if (assetGroup !== undefined && !fetch_js_1.isValidAssetGroup(assetGroup)) {\\n        throw new Error(`Invalid asset group ${assetGroup}`);\\n    }\\n    if (revisionID !== undefined && !fetch_js_1.isValidRevisionID(revisionID)) {\\n        throw new Error(`Invalid revision ID ${revisionID}`);\\n    }\\n};\\nconst mungeConstraints = (constraints, agc) => {\\n    let defaultConstraints;\\n    if (agc.useBuiltInAGC) {\\n        defaultConstraints = DEFAULT_AUDIO_CONSTRAINTS_WITH_BUILTIN_AGC;\\n    }\\n    else {\\n        defaultConstraints = DEFAULT_AUDIO_CONSTRAINTS_WITHOUT_BUILTIN_AGC;\\n    }\\n    if (!constraints) {\\n        return { audio: defaultConstraints };\\n    }\\n    if (!constraints.audio) {\\n        return constraints;\\n    }\\n    if (constraints.video) {\\n        throw new Error('Not adding Voice Focus to multi-device getUserMedia call.');\\n    }\\n    return Object.assign(Object.assign({}, constraints), { audio: constraints.audio === true ? defaultConstraints : Object.assign(Object.assign({}, constraints.audio), defaultConstraints) });\\n};\\nconst urlForModel = (model, paths) => {\\n    return `${paths.models}${decider_js_1.decideModel(model)}.wasm`;\\n};\\nclass VoiceFocus {\\n    constructor(worker, processorURL, nodeConstructor, nodeOptions, executionQuanta) {\\n        this.processorURL = processorURL;\\n        this.nodeConstructor = nodeConstructor;\\n        this.nodeOptions = nodeOptions;\\n        this.executionQuanta = executionQuanta;\\n        this.internal = {\\n            worker,\\n            nodeOptions,\\n            isDestroyed: false,\\n        };\\n    }\\n    static isSupported(spec, options) {\\n        const { fetchBehavior, logger } = options || {};\\n        if (typeof globalThis === 'undefined') {\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Browser does not have globalThis.');\\n            return Promise.resolve(false);\\n        }\\n        if (!support_js_1.supportsAudioWorklet(globalThis, logger)) {\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Browser does not support Audio Worklet.');\\n            return Promise.resolve(false);\\n        }\\n        if (!support_js_1.supportsWASM(globalThis, logger)) {\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Browser does not support WASM.');\\n            return Promise.resolve(false);\\n        }\\n        if (!support_js_1.supportsWASMStreaming(globalThis, logger)) {\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Browser does not support streaming WASM compilation.');\\n        }\\n        const { assetGroup = DEFAULT_ASSET_GROUP, revisionID, paths = DEFAULT_PATHS, } = spec || {};\\n        validateAssetSpec(assetGroup, revisionID);\\n        const assetConfig = revisionID ? { revisionID } : { assetGroup };\\n        const updatedFetchBehavior = fetch_js_1.addQueryParams(fetchBehavior, assetConfig);\\n        const fetchConfig = Object.assign(Object.assign({}, updatedFetchBehavior), { paths });\\n        return support_js_1.supportsVoiceFocusWorker(globalThis, fetchConfig, logger);\\n    }\\n    static mungeExecutionPreference(preference, logger) {\\n        const isAuto = (preference === undefined || preference === 'auto');\\n        if (support_js_1.isSafari(globalThis)) {\\n            if (isAuto || preference === 'inline') {\\n                return 'inline';\\n            }\\n            if (!isAuto) {\\n                throw new Error(`Unsupported execution preference ${preference}`);\\n            }\\n        }\\n        if (preference === 'worker-sab' && !support_js_1.supportsSharedArrayBuffer(globalThis, globalThis, logger)) {\\n            throw new Error(`Unsupported execution preference ${preference}`);\\n        }\\n        return preference || 'auto';\\n    }\\n    static configure(spec, options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const { fetchBehavior, preResolve, logger, } = options || {};\\n            const { category = 'voicefocus', name = 'default', variant: variantPreference = 'auto', assetGroup = DEFAULT_ASSET_GROUP, revisionID, simd = 'detect', executionPreference = 'auto', executionQuantaPreference, usagePreference = 'interactivity', estimatorBudget = 100, paths = DEFAULT_PATHS, thresholds, } = spec || {};\\n            logger === null || logger === void 0 ? void 0 : logger.debug('Configuring Voice Focus with spec', spec);\\n            if (category !== undefined && category !== 'voicefocus') {\\n                throw new Error(`Unrecognized category ${category}`);\\n            }\\n            if (name !== undefined && name !== 'default' && name !== 'ns_es') {\\n                throw new Error(`Unrecognized feature name ${name}`);\\n            }\\n            if (variantPreference !== undefined && !['auto', 'c100', 'c50', 'c20', 'c10'].includes(variantPreference)) {\\n                throw new Error(`Unrecognized feature variant ${variantPreference}`);\\n            }\\n            if (executionQuantaPreference !== undefined && ![1, 2, 3].includes(executionQuantaPreference)) {\\n                throw new Error(`Unrecognized execution quanta preference ${executionQuantaPreference}`);\\n            }\\n            validateAssetSpec(assetGroup, revisionID);\\n            if (simd !== undefined && !['detect', 'force', 'disable'].includes(simd)) {\\n                throw new Error(`Unrecognized SIMD option ${simd}`);\\n            }\\n            if (executionPreference !== undefined && !['auto', 'inline', 'worker', 'worker-sab', 'worker-postMessage'].includes(executionPreference)) {\\n                throw new Error(`Unrecognized execution preference ${executionPreference}`);\\n            }\\n            if (usagePreference !== undefined && !['quality', 'interactivity'].includes(usagePreference)) {\\n                throw new Error(`Unrecognized usage preference ${usagePreference}`);\\n            }\\n            const executionSpec = {\\n                executionPreference: this.mungeExecutionPreference(executionPreference, logger),\\n                usagePreference,\\n                executionQuantaPreference,\\n                variantPreference,\\n                namePreference: name,\\n                simdPreference: simd,\\n                estimatorBudget,\\n            };\\n            const assetConfig = revisionID ? { revisionID } : { assetGroup };\\n            const updatedFetchBehavior = fetch_js_1.addQueryParams(fetchBehavior, assetConfig);\\n            const fetchConfig = Object.assign({ paths }, updatedFetchBehavior);\\n            const executionDefinition = yield decider_js_1.measureAndDecideExecutionApproach(executionSpec, fetchConfig, logger, thresholds);\\n            if (executionDefinition.supported === false) {\\n                return { supported: false, reason: executionDefinition.reason };\\n            }\\n            logger === null || logger === void 0 ? void 0 : logger.info('Decided execution approach', executionDefinition);\\n            const { useSIMD, processor, variant, executionQuanta } = executionDefinition;\\n            const model = {\\n                category: category || 'voicefocus',\\n                name: name || 'default',\\n                variant,\\n                simd: useSIMD,\\n            };\\n            if (preResolve) {\\n                const startingURL = urlForModel(model, paths);\\n                model.url = yield fetch_js_1.resolveURL(startingURL, updatedFetchBehavior);\\n            }\\n            return {\\n                fetchConfig,\\n                model,\\n                processor,\\n                executionQuanta,\\n                supported: true,\\n            };\\n        });\\n    }\\n    static init(configuration, { delegate, preload = true, logger, }) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (configuration.supported === false) {\\n                throw new Error('Voice Focus not supported. Reason: ' + configuration.reason);\\n            }\\n            const { model, processor, fetchConfig, executionQuanta, } = configuration;\\n            const { simd, name } = model;\\n            const { paths } = fetchConfig;\\n            if (processor !== 'voicefocus-inline-processor' &&\\n                processor !== 'voicefocus-worker-postMessage-processor' &&\\n                processor !== 'voicefocus-worker-sab-processor') {\\n                throw new Error(`Unknown processor ${processor}`);\\n            }\\n            const modelURL = model.url || urlForModel(model, paths);\\n            logger === null || logger === void 0 ? void 0 : logger.debug(`Using model URL ${modelURL}.`);\\n            const audioBufferURL = `${paths.wasm}audio_buffer-v1${simd ? '_simd' : ''}.wasm`;\\n            const resamplerURL = `${paths.wasm}resampler-v1${simd ? '_simd' : ''}.wasm`;\\n            const workerURL = `${paths.workers}worker-v1.js`;\\n            const { file, node } = PROCESSORS[processor];\\n            const processorURL = `${paths.processors}${file}`;\\n            const worker = yield loader_js_1.loadWorker(workerURL, 'VoiceFocusWorker', fetchConfig, logger);\\n            if (preload) {\\n                logger === null || logger === void 0 ? void 0 : logger.debug('Preloading', modelURL);\\n                let message = support_js_1.supportsWASMPostMessage(globalThis) ? 'get-module' : 'get-module-buffer';\\n                worker.postMessage({\\n                    message,\\n                    preload: true,\\n                    key: 'model',\\n                    fetchBehavior: fetchConfig,\\n                    path: modelURL,\\n                });\\n            }\\n            const numberOfInputs = (name === 'ns_es') ? 2 : 1;\\n            const nodeOptions = {\\n                processor,\\n                worker,\\n                audioBufferURL,\\n                resamplerURL,\\n                fetchBehavior: fetchConfig,\\n                modelURL,\\n                delegate,\\n                logger,\\n                numberOfInputs,\\n            };\\n            const factory = new VoiceFocus(worker, processorURL, node, nodeOptions, executionQuanta);\\n            return Promise.resolve(factory);\\n        });\\n    }\\n    createNode(context, options) {\\n        var _a;\\n        if (this.internal.isDestroyed) {\\n            throw new Error('Unable to create node because VoiceFocus worker has been destroyed.');\\n        }\\n        const { voiceFocusSampleRate = (context.sampleRate === 16000 ? 16000 : 48000), enabled = true, agc = DEFAULT_AGC_SETTING, } = options || {};\\n        const supportFarendStream = options === null || options === void 0 ? void 0 : options.es;\\n        const processorOptions = {\\n            voiceFocusSampleRate,\\n            enabled,\\n            sendBufferCount: 10,\\n            prefill: 6,\\n            agc,\\n            executionQuanta: this.executionQuanta,\\n            supportFarendStream,\\n        };\\n        const url = fetch_js_1.withQueryString(this.processorURL, (_a = this.nodeOptions) === null || _a === void 0 ? void 0 : _a.fetchBehavior);\\n        return context.audioWorklet\\n            .addModule(url)\\n            .then(() => new (this.nodeConstructor)(context, Object.assign(Object.assign({}, this.nodeOptions), { processorOptions })));\\n    }\\n    applyToStream(stream, context, options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.internal.isDestroyed) {\\n                throw new Error(\\\"Unable to apply stream because VoiceFocus worker has been destroyed\\\");\\n            }\\n            const source = context.createMediaStreamSource(stream);\\n            const node = yield this.applyToSourceNode(source, context, options);\\n            const destination = context.createMediaStreamDestination();\\n            node.connect(destination);\\n            return {\\n                node,\\n                source,\\n                destination,\\n                stream: destination.stream,\\n            };\\n        });\\n    }\\n    applyToSourceNode(source, context, options) {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            const node = yield this.createNode(context, options);\\n            source.connect(node);\\n            return node;\\n        });\\n    }\\n    destroy() {\\n        this.internal.worker?.terminate();\\n        this.internal.isDestroyed = true;\\n    }\\n}\\nexports.VoiceFocus = VoiceFocus;\\nconst createAudioContext = (contextHint = DEFAULT_CONTEXT_HINT) => {\\n    return new (window.AudioContext || window.webkitAudioContext)(contextHint);\\n};\\nexports.createAudioContext = createAudioContext;\\nconst getAudioInput = (context, inputOptions, voiceFocusOptions) => __awaiter(void 0, void 0, void 0, function* () {\\n    var _a, _b;\\n    const { constraints, spec, delegate, preload = true, options } = inputOptions;\\n    const { logger } = voiceFocusOptions;\\n    const config = yield VoiceFocus.configure(spec, voiceFocusOptions);\\n    if (!config.supported) {\\n        (_a = voiceFocusOptions.logger) === null || _a === void 0 ? void 0 : _a.warn('Voice Focus not supported; returning standard stream.');\\n        return window.navigator.mediaDevices.getUserMedia(constraints);\\n    }\\n    const factory = yield VoiceFocus.init(config, { delegate, preload, logger });\\n    const agc = ((_b = inputOptions.options) === null || _b === void 0 ? void 0 : _b.agc) || DEFAULT_AGC_SETTING;\\n    const input = yield window.navigator.mediaDevices.getUserMedia(mungeConstraints(constraints, agc));\\n    return factory.applyToStream(input, context, options).then(result => result.stream);\\n});\\nexports.getAudioInput = getAudioInput;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/voicefocus.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-inline-node.js\":\n/*!*********************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-inline-node.js ***!\n  \\*********************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst support_js_1 = __webpack_require__(/*! ./support.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst types_js_1 = __webpack_require__(/*! ./types.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js\\\");\\nconst CPU_WARNING_MAX_INTERVAL_MS = 5 * 1000;\\nclass VoiceFocusInlineNode extends types_js_1.VoiceFocusAudioWorkletNode {\\n    constructor(context, options) {\\n        super(context, options.processor, options);\\n        this.cpuWarningCount = 0;\\n        this.channelCountMode = 'explicit';\\n        this.channelCount = 1;\\n        const { modelURL, worker, fetchBehavior, logger, delegate, } = options;\\n        this.logger = logger;\\n        this.port.onmessage = this.onProcessorMessage.bind(this);\\n        this.delegate = delegate;\\n        if (logger)\\n            logger.debug('VoiceFocusInlineNode:', modelURL);\\n        this.worker = worker;\\n        this.worker.onmessage = this.onWorkerMessage.bind(this);\\n        const message = support_js_1.supportsWASMPostMessage(globalThis) ? 'get-module' : 'get-module-buffer';\\n        this.worker.postMessage({\\n            message,\\n            key: 'model',\\n            fetchBehavior,\\n            path: modelURL,\\n        });\\n    }\\n    onModuleBufferLoaded(buffer, key) {\\n        this.port.postMessage({ message: 'module-buffer', buffer, key });\\n    }\\n    onModuleLoaded(module, key) {\\n        this.port.postMessage({ message: 'module', module, key });\\n    }\\n    enable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.port.postMessage({ message: 'enable' });\\n        });\\n    }\\n    disable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.port.postMessage({ message: 'disable' });\\n        });\\n    }\\n    stop() {\\n        var _a;\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.port.postMessage({ message: 'stop' });\\n            try {\\n                (_a = this.worker) === null || _a === void 0 ? void 0 : _a.terminate();\\n            }\\n            catch (e) {\\n                console.error(\\\"failed to terminate worker:\\\", e);\\n            }\\n            this.disconnect();\\n        });\\n    }\\n    onProcessorMessage(event) {\\n        var _a, _b, _c;\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'cpu':\\n                this.cpuWarningCount++;\\n                const now = Date.now();\\n                const before = this.cpuWarningLastTriggered || now;\\n                const diff = Math.abs(now - before);\\n                if (!this.cpuWarningLastTriggered || diff > CPU_WARNING_MAX_INTERVAL_MS) {\\n                    (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn(`CPU warning (count: ${this.cpuWarningCount}):`, data.message);\\n                    this.cpuWarningCount = 0;\\n                    this.cpuWarningLastTriggered = now;\\n                }\\n                (_b = this.delegate) === null || _b === void 0 ? void 0 : _b.onCPUWarning();\\n                break;\\n            default:\\n                (_c = this.logger) === null || _c === void 0 ? void 0 : _c.debug('Ignoring processor message.');\\n        }\\n    }\\n    onWorkerMessage(event) {\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'module-buffer':\\n                if (!data.buffer || !data.key) {\\n                    return;\\n                }\\n                this.onModuleBufferLoaded(data.buffer, data.key);\\n                break;\\n            case 'module':\\n                if (!data.module || !data.key) {\\n                    return;\\n                }\\n                this.onModuleLoaded(data.module, data.key);\\n                break;\\n            case 'stopped':\\n                if (this.worker) {\\n                    this.worker.terminate();\\n                }\\n                break;\\n            default:\\n                return;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VoiceFocusInlineNode;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-inline-node.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-postMessage-node.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-postMessage-node.js ***!\n  \\*********************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst support_js_1 = __webpack_require__(/*! ./support.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst types_js_1 = __webpack_require__(/*! ./types.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js\\\");\\nclass VoiceFocusWorkerPostMessageNode extends types_js_1.VoiceFocusAudioWorkletNode {\\n    constructor(context, options) {\\n        super(context, options.processor, options);\\n        this.channelCountMode = 'explicit';\\n        this.channelCount = 1;\\n        const { modelURL, audioBufferURL, worker, fetchBehavior, delegate, } = options;\\n        this.delegate = delegate;\\n        this.worker = worker;\\n        this.worker.onmessage = this.onWorkerMessage.bind(this);\\n        this.port.onmessage = this.onProcessorMessage.bind(this);\\n        const { enabled, agc, supportFarendStream } = options.processorOptions;\\n        this.worker.postMessage({\\n            message: 'init',\\n            approach: 'postMessage',\\n            frames: context.sampleRate === 16000 ? 160 : 480,\\n            enabled,\\n            agc,\\n            fetchBehavior,\\n            model: modelURL,\\n            supportFarendStream,\\n        });\\n        const message = support_js_1.supportsWASMPostMessage(globalThis) ? 'get-module' : 'get-module-buffer';\\n        this.worker.postMessage({\\n            message,\\n            key: 'buffer',\\n            fetchBehavior,\\n            path: audioBufferURL,\\n        });\\n    }\\n    enable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.worker.postMessage({ message: 'enable' });\\n        });\\n    }\\n    disable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            this.worker.postMessage({ message: 'disable' });\\n        });\\n    }\\n    stop() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            try {\\n                this.worker.postMessage({ message: 'stop' });\\n            }\\n            catch (e) {\\n            }\\n            this.disconnect();\\n        });\\n    }\\n    onWorkerMessage(event) {\\n        var _a;\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'ready':\\n                this.port.postMessage({ message: 'ready', shared: data.shared }, data.shared ? Object.values(data.shared) : []);\\n                break;\\n            case 'data':\\n                if (!data.buffer) {\\n                    return;\\n                }\\n                this.port.postMessage({ message: 'data', buffer: data.buffer }, [data.buffer]);\\n                break;\\n            case 'stopped':\\n                this.worker.terminate();\\n                break;\\n            case 'module-buffer':\\n            case 'module':\\n                this.port.postMessage(data);\\n                break;\\n            case 'cpu':\\n                (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.onCPUWarning();\\n                break;\\n            case 'processing':\\n                this.port.postMessage(data);\\n                break;\\n            default:\\n                return;\\n        }\\n    }\\n    onProcessorMessage(event) {\\n        var _a;\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'data':\\n                if (!data.buffer) {\\n                    return;\\n                }\\n                this.worker.postMessage({ message: 'data', buffer: data.buffer }, [data.buffer]);\\n                break;\\n            case 'cpu':\\n                (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.onCPUWarning();\\n                break;\\n            case 'prepare-for-frames':\\n                this.worker.postMessage(data);\\n                break;\\n            default:\\n                return;\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VoiceFocusWorkerPostMessageNode;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-postMessage-node.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-sab-node.js\":\n/*!*************************************************************************************!*\\\n  !*** ./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-sab-node.js ***!\n  \\*************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\\n// SPDX-License-Identifier: Apache-2.0\\n\\n\\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};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nconst support_js_1 = __webpack_require__(/*! ./support.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/support.js\\\");\\nconst types_js_1 = __webpack_require__(/*! ./types.js */ \\\"./node_modules/amazon-chime-sdk-js/libs/voicefocus/types.js\\\");\\nconst INDICES = {\\n    ready: 0,\\n    enabled: 1,\\n};\\nconst STATES = {\\n    disabled: 0,\\n    enabled: 1,\\n    stopped: 2,\\n};\\nclass VoiceFocusWorkerBufferNode extends types_js_1.VoiceFocusAudioWorkletNode {\\n    constructor(context, options) {\\n        super(context, options.processor, options);\\n        this.channelCountMode = 'explicit';\\n        this.channelCount = 1;\\n        const { modelURL, resamplerURL, worker, fetchBehavior, delegate, } = options;\\n        this.delegate = delegate;\\n        this.worker = worker;\\n        this.worker.onmessage = this.onWorkerMessage.bind(this);\\n        this.port.onmessage = this.onProcessorMessage.bind(this);\\n        const { enabled, supportFarendStream } = options.processorOptions;\\n        this.worker.postMessage({\\n            message: 'init',\\n            approach: 'sab',\\n            frames: context.sampleRate === 16000 ? 160 : 480,\\n            enabled,\\n            model: modelURL,\\n            supportFarendStream,\\n        });\\n        const message = support_js_1.supportsWASMPostMessage(globalThis) ? 'get-module' : 'get-module-buffer';\\n        this.worker.postMessage({\\n            message,\\n            key: 'resampler',\\n            fetchBehavior,\\n            path: resamplerURL,\\n        });\\n    }\\n    enable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.state) {\\n                Atomics.store(this.state, INDICES.enabled, STATES.enabled);\\n                Atomics.notify(this.state, INDICES.ready, 1);\\n            }\\n            else {\\n                this.worker.postMessage({ message: 'enable' });\\n            }\\n        });\\n    }\\n    disable() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.state) {\\n                Atomics.store(this.state, INDICES.enabled, STATES.disabled);\\n                Atomics.notify(this.state, INDICES.ready, 1);\\n            }\\n            else {\\n                this.worker.postMessage({ message: 'disable' });\\n            }\\n        });\\n    }\\n    stop() {\\n        return __awaiter(this, void 0, void 0, function* () {\\n            if (this.state) {\\n                Atomics.store(this.state, INDICES.enabled, STATES.stopped);\\n                Atomics.notify(this.state, INDICES.ready, 1);\\n            }\\n            else {\\n                try {\\n                    this.worker.postMessage({ message: 'stop' });\\n                }\\n                catch (e) {\\n                }\\n            }\\n            this.disconnect();\\n        });\\n    }\\n    onWorkerMessage(event) {\\n        var _a;\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'ready':\\n                if (!data.shared) {\\n                    throw new Error('No shared state.');\\n                }\\n                this.state = new Int32Array(data.shared.state);\\n                this.port.postMessage(data);\\n                break;\\n            case 'stopped':\\n                this.worker.terminate();\\n                break;\\n            case 'module-buffer':\\n            case 'module':\\n                this.port.postMessage(data);\\n                break;\\n            case 'cpu':\\n                (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.onCPUWarning();\\n                break;\\n            case 'processing':\\n                this.port.postMessage(data);\\n                break;\\n            default:\\n                return;\\n        }\\n    }\\n    onProcessorMessage(event) {\\n        var _a;\\n        const data = event.data;\\n        switch (data.message) {\\n            case 'cpu':\\n                (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.onCPUWarning();\\n                break;\\n            case 'prepare-for-frames':\\n                this.worker.postMessage(data);\\n                break;\\n            default:\\n        }\\n    }\\n}\\nexports[\\\"default\\\"] = VoiceFocusWorkerBufferNode;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/amazon-chime-sdk-js/libs/voicefocus/worklet-worker-sab-node.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/base64-js/index.js\":\n/*!*****************************************!*\\\n  !*** ./node_modules/base64-js/index.js ***!\n  \\*****************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\neval(\"\\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://@dannadori/voice-changer-client-js/./node_modules/base64-js/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/bowser/es5.js\":\n/*!************************************!*\\\n  !*** ./node_modules/bowser/es5.js ***!\n  \\************************************/\n/***/ (function(module) {\n\neval(\"!function(e,t){ true?module.exports=t():0}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\\\"undefined\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(e,\\\"__esModule\\\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\\\"object\\\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\\\"default\\\",{enumerable:!0,value:e}),2&t&&\\\"string\\\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\\\"a\\\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\\\"\\\",r(r.s=90)}({17:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\\\"\\\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\\\"\\\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\\\"NT\\\":return\\\"NT\\\";case\\\"XP\\\":return\\\"XP\\\";case\\\"NT 5.0\\\":return\\\"2000\\\";case\\\"NT 5.1\\\":return\\\"XP\\\";case\\\"NT 5.2\\\":return\\\"2003\\\";case\\\"NT 6.0\\\":return\\\"Vista\\\";case\\\"NT 6.1\\\":return\\\"7\\\";case\\\"NT 6.2\\\":return\\\"8\\\";case\\\"NT 6.3\\\":return\\\"8.1\\\";case\\\"NT 10.0\\\":return\\\"10\\\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\\\".\\\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\\\"Leopard\\\";case 6:return\\\"Snow Leopard\\\";case 7:return\\\"Lion\\\";case 8:return\\\"Mountain Lion\\\";case 9:return\\\"Mavericks\\\";case 10:return\\\"Yosemite\\\";case 11:return\\\"El Capitan\\\";case 12:return\\\"Sierra\\\";case 13:return\\\"High Sierra\\\";case 14:return\\\"Mojave\\\";case 15:return\\\"Catalina\\\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\\\".\\\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\\\"Cupcake\\\":1===t[0]&&t[1]>=6?\\\"Donut\\\":2===t[0]&&t[1]<2?\\\"Eclair\\\":2===t[0]&&2===t[1]?\\\"Froyo\\\":2===t[0]&&t[1]>2?\\\"Gingerbread\\\":3===t[0]?\\\"Honeycomb\\\":4===t[0]&&t[1]<1?\\\"Ice Cream Sandwich\\\":4===t[0]&&t[1]<4?\\\"Jelly Bean\\\":4===t[0]&&t[1]>=4?\\\"KitKat\\\":5===t[0]?\\\"Lollipop\\\":6===t[0]?\\\"Marshmallow\\\":7===t[0]?\\\"Nougat\\\":8===t[0]?\\\"Oreo\\\":9===t[0]?\\\"Pie\\\":void 0},e.getVersionPrecision=function(e){return e.split(\\\".\\\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\\\".0\\\");return e.map(n.split(\\\".\\\"),(function(e){return new Array(20-e.length).join(\\\"0\\\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]<u[1][a])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),a=1;a<i;a++)s[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var o=function(){var e=s[t];\\\"object\\\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,r=s.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||\\\"\\\"},e}();t.default=i,e.exports=t.default},18:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={\\\"Amazon Silk\\\":\\\"amazon_silk\\\",\\\"Android Browser\\\":\\\"android\\\",Bada:\\\"bada\\\",BlackBerry:\\\"blackberry\\\",Chrome:\\\"chrome\\\",Chromium:\\\"chromium\\\",Electron:\\\"electron\\\",Epiphany:\\\"epiphany\\\",Firefox:\\\"firefox\\\",Focus:\\\"focus\\\",Generic:\\\"generic\\\",\\\"Google Search\\\":\\\"google_search\\\",Googlebot:\\\"googlebot\\\",\\\"Internet Explorer\\\":\\\"ie\\\",\\\"K-Meleon\\\":\\\"k_meleon\\\",Maxthon:\\\"maxthon\\\",\\\"Microsoft Edge\\\":\\\"edge\\\",\\\"MZ Browser\\\":\\\"mz\\\",\\\"NAVER Whale Browser\\\":\\\"naver\\\",Opera:\\\"opera\\\",\\\"Opera Coast\\\":\\\"opera_coast\\\",PhantomJS:\\\"phantomjs\\\",Puffin:\\\"puffin\\\",QupZilla:\\\"qupzilla\\\",QQ:\\\"qq\\\",QQLite:\\\"qqlite\\\",Safari:\\\"safari\\\",Sailfish:\\\"sailfish\\\",\\\"Samsung Internet for Android\\\":\\\"samsung_internet\\\",SeaMonkey:\\\"seamonkey\\\",Sleipnir:\\\"sleipnir\\\",Swing:\\\"swing\\\",Tizen:\\\"tizen\\\",\\\"UC Browser\\\":\\\"uc\\\",Vivaldi:\\\"vivaldi\\\",\\\"WebOS Browser\\\":\\\"webos\\\",WeChat:\\\"wechat\\\",\\\"Yandex Browser\\\":\\\"yandex\\\",Roku:\\\"roku\\\"};t.BROWSER_MAP={amazon_silk:\\\"Amazon Silk\\\",android:\\\"Android Browser\\\",bada:\\\"Bada\\\",blackberry:\\\"BlackBerry\\\",chrome:\\\"Chrome\\\",chromium:\\\"Chromium\\\",electron:\\\"Electron\\\",epiphany:\\\"Epiphany\\\",firefox:\\\"Firefox\\\",focus:\\\"Focus\\\",generic:\\\"Generic\\\",googlebot:\\\"Googlebot\\\",google_search:\\\"Google Search\\\",ie:\\\"Internet Explorer\\\",k_meleon:\\\"K-Meleon\\\",maxthon:\\\"Maxthon\\\",edge:\\\"Microsoft Edge\\\",mz:\\\"MZ Browser\\\",naver:\\\"NAVER Whale Browser\\\",opera:\\\"Opera\\\",opera_coast:\\\"Opera Coast\\\",phantomjs:\\\"PhantomJS\\\",puffin:\\\"Puffin\\\",qupzilla:\\\"QupZilla\\\",qq:\\\"QQ Browser\\\",qqlite:\\\"QQ Browser Lite\\\",safari:\\\"Safari\\\",sailfish:\\\"Sailfish\\\",samsung_internet:\\\"Samsung Internet for Android\\\",seamonkey:\\\"SeaMonkey\\\",sleipnir:\\\"Sleipnir\\\",swing:\\\"Swing\\\",tizen:\\\"Tizen\\\",uc:\\\"UC Browser\\\",vivaldi:\\\"Vivaldi\\\",webos:\\\"WebOS Browser\\\",wechat:\\\"WeChat\\\",yandex:\\\"Yandex Browser\\\"};t.PLATFORMS_MAP={tablet:\\\"tablet\\\",mobile:\\\"mobile\\\",desktop:\\\"desktop\\\",tv:\\\"tv\\\"};t.OS_MAP={WindowsPhone:\\\"Windows Phone\\\",Windows:\\\"Windows\\\",MacOS:\\\"macOS\\\",iOS:\\\"iOS\\\",Android:\\\"Android\\\",WebOS:\\\"WebOS\\\",BlackBerry:\\\"BlackBerry\\\",Bada:\\\"Bada\\\",Tizen:\\\"Tizen\\\",Linux:\\\"Linux\\\",ChromeOS:\\\"Chrome OS\\\",PlayStation4:\\\"PlayStation 4\\\",Roku:\\\"Roku\\\"};t.ENGINE_MAP={EdgeHTML:\\\"EdgeHTML\\\",Blink:\\\"Blink\\\",Trident:\\\"Trident\\\",Presto:\\\"Presto\\\",Gecko:\\\"Gecko\\\",WebKit:\\\"WebKit\\\"}},90:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\\\"value\\\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\\\"string\\\"!=typeof e)throw new Error(\\\"UserAgent should be a string\\\");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:\\\"BROWSER_MAP\\\",get:function(){return s.BROWSER_MAP}},{key:\\\"ENGINE_MAP\\\",get:function(){return s.ENGINE_MAP}},{key:\\\"OS_MAP\\\",get:function(){return s.OS_MAP}},{key:\\\"PLATFORMS_MAP\\\",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&a(t.prototype,r),n&&a(t,n),e}();t.default=o,e.exports=t.default},91:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),a=u(r(95)),o=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\\\"\\\"===e)throw new Error(\\\"UserAgent parameter can't be empty\\\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(n.default,(function(t){if(\\\"function\\\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\\\"Browser's test function is not valid\\\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\\\"\\\":this.getBrowser().name||\\\"\\\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(i.default,(function(t){if(\\\"function\\\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\\\"Browser's test function is not valid\\\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\\\"\\\":t||\\\"\\\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\\\"\\\":t||\\\"\\\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(s.default,(function(t){if(\\\"function\\\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\\\"Browser's test function is not valid\\\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\\\"\\\":this.getEngine().name||\\\"\\\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if(\\\"function\\\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\\\"Browser's test function is not valid\\\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var a=e[t];\\\"string\\\"==typeof a?(i[t]=a,s+=1):\\\"object\\\"==typeof a&&(r[t]=a,n+=1)})),n>0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\\\"string\\\"==typeof i)return\\\">\\\"===e[0]||\\\"<\\\"===e[0]?(r=e.substr(1),\\\"=\\\"===e[1]?(n=!0,r=e.substr(2)):t=[],\\\">\\\"===e[0]?t.push(1):t.push(-1)):\\\"=\\\"===e[0]?r=e.substr(1):\\\"~\\\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\\\"Googlebot\\\"},r=i.default.getFirstMatch(/googlebot\\\\/(\\\\d+(\\\\.\\\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\\\"Opera\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\\\/|opios/i],describe:function(e){var t={name:\\\"Opera\\\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\\\s/](\\\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\\\"Samsung Internet for Android\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\\\"NAVER Whale Browser\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\\\"MZ Browser\\\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\\\"Focus\\\"},r=i.default.getFirstMatch(/(?:focus)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\\\"Swing\\\"},r=i.default.getFirstMatch(/(?:swing)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\\\"Opera Coast\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\\\/\\\\d+(?:.?_?\\\\d+)+/i],describe:function(e){var t={name:\\\"Opera Touch\\\"},r=i.default.getFirstMatch(/(?:opt)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\\\"Yandex Browser\\\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\\\"UC Browser\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\\\"Maxthon\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\\\"Epiphany\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\\\"Puffin\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\\\"Sleipnir\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\\\"K-Meleon\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\\\"WeChat\\\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\\\"QQ Browser Lite\\\":\\\"QQ Browser\\\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\\\"Internet Explorer\\\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\\\sedg\\\\//i],describe:function(e){var t={name:\\\"Microsoft Edge\\\"},r=i.default.getFirstMatch(/\\\\sedg\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\\\"Microsoft Edge\\\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\\\"Vivaldi\\\"},r=i.default.getFirstMatch(/vivaldi\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\\\"SeaMonkey\\\"},r=i.default.getFirstMatch(/seamonkey\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\\\"Sailfish\\\"},r=i.default.getFirstMatch(/sailfish\\\\s?browser\\\\/(\\\\d+(\\\\.\\\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\\\"Amazon Silk\\\"},r=i.default.getFirstMatch(/silk\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\\\"PhantomJS\\\"},r=i.default.getFirstMatch(/phantomjs\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\\\"SlimerJS\\\"},r=i.default.getFirstMatch(/slimerjs\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\\\bbb\\\\d+/i,/rim\\\\stablet/i],describe:function(e){var t={name:\\\"BlackBerry\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\\\d]+\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\\\"WebOS Browser\\\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\\\"Bada\\\"},r=i.default.getFirstMatch(/dolfin\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\\\"Tizen\\\"},r=i.default.getFirstMatch(/(?:tizen\\\\s?)?browser\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\\\"QupZilla\\\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\\\"Firefox\\\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\\\"Electron\\\"},r=i.default.getFirstMatch(/(?:electron)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\\\"Miui\\\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\\\"Chromium\\\"},r=i.default.getFirstMatch(/(?:chromium)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\\\"Chrome\\\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\\\"Google Search\\\"},r=i.default.getFirstMatch(/(?:GSA)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\\\"Android Browser\\\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\\\"PlayStation 4\\\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\\\"Safari\\\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\\\"\\\\\\\\(\\\")?/^(.*)\\\\/(.*)[ \\\\t]\\\\((.*)/:/^(.*)\\\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\\\/DVP-(\\\\d+\\\\.\\\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\\\s?(\\\\d+(\\\\.\\\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\\\d\\\\d?.\\\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\\\/)(\\\\d[\\\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\\\d+(\\\\.?_?\\\\d+)+)/i,e).replace(/[_\\\\s]/g,\\\".\\\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\\\d+([_\\\\s]\\\\d+)*) like mac os x/i,e).replace(/[_\\\\s]/g,\\\".\\\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\\\s/-](\\\\d+(\\\\.\\\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\\\/(\\\\d+(\\\\.\\\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\\\bbb\\\\d+/i,/rim\\\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\\\stablet\\\\sos\\\\s(\\\\d+(\\\\.\\\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\\\d+\\\\/(\\\\d+([_\\\\s]\\\\d+)*)/i,e)||i.default.getFirstMatch(/\\\\bbb(\\\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\\\/(\\\\d+(\\\\.\\\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\\\s](\\\\d+(\\\\.\\\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\\\s](\\\\d+(\\\\.\\\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\\\"bot\\\",vendor:\\\"Google\\\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\\\"Nova\\\",r={type:s.PLATFORMS_MAP.mobile,vendor:\\\"Huawei\\\"};return t&&(r.model=t),r}},{test:[/nexus\\\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\\\"Nexus\\\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\\\"Apple\\\",model:\\\"iPad\\\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\\\"Apple\\\",model:\\\"iPad\\\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\\\"Amazon\\\",model:\\\"Kindle Fire HD 7\\\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\\\"Amazon\\\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\\\"Apple\\\",model:t}}},{test:[/nexus\\\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\\\"Nexus\\\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\\\"blackberry\\\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\\\"BlackBerry\\\"}}},{test:function(e){return\\\"bada\\\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\\\"windows phone\\\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\\\"Microsoft\\\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\\\".\\\")[0]);return\\\"android\\\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\\\"android\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\\\"macos\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\\\"Apple\\\"}}},{test:function(e){return\\\"windows\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\\\"linux\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\\\"playstation 4\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\\\"roku\\\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\\\"use strict\\\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\\\"microsoft edge\\\"===e.getBrowserName(!0)},describe:function(e){if(/\\\\sedg\\\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\\\/537\\\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/bowser/es5.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/buffer-from/index.js\":\n/*!*******************************************!*\\\n  !*** ./node_modules/buffer-from/index.js ***!\n  \\*******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")[\\\"Buffer\\\"];\\n/* eslint-disable node/no-deprecated-api */\\n\\nvar toString = Object.prototype.toString\\n\\nvar isModern = (\\n  typeof Buffer !== 'undefined' &&\\n  typeof Buffer.alloc === 'function' &&\\n  typeof Buffer.allocUnsafe === 'function' &&\\n  typeof Buffer.from === 'function'\\n)\\n\\nfunction isArrayBuffer (input) {\\n  return toString.call(input).slice(8, -1) === 'ArrayBuffer'\\n}\\n\\nfunction fromArrayBuffer (obj, byteOffset, length) {\\n  byteOffset >>>= 0\\n\\n  var maxLength = obj.byteLength - byteOffset\\n\\n  if (maxLength < 0) {\\n    throw new RangeError(\\\"'offset' is out of bounds\\\")\\n  }\\n\\n  if (length === undefined) {\\n    length = maxLength\\n  } else {\\n    length >>>= 0\\n\\n    if (length > maxLength) {\\n      throw new RangeError(\\\"'length' is out of bounds\\\")\\n    }\\n  }\\n\\n  return isModern\\n    ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\\n    : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\\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('\\\"encoding\\\" must be a valid string encoding')\\n  }\\n\\n  return isModern\\n    ? Buffer.from(string, encoding)\\n    : new Buffer(string, encoding)\\n}\\n\\nfunction bufferFrom (value, encodingOrOffset, length) {\\n  if (typeof value === 'number') {\\n    throw new TypeError('\\\"value\\\" argument must not be a number')\\n  }\\n\\n  if (isArrayBuffer(value)) {\\n    return fromArrayBuffer(value, encodingOrOffset, length)\\n  }\\n\\n  if (typeof value === 'string') {\\n    return fromString(value, encodingOrOffset)\\n  }\\n\\n  return isModern\\n    ? Buffer.from(value)\\n    : new Buffer(value)\\n}\\n\\nmodule.exports = bufferFrom\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/buffer-from/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/buffer/index.js\":\n/*!**************************************!*\\\n  !*** ./node_modules/buffer/index.js ***!\n  \\**************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/*!\\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://@dannadori/voice-changer-client-js/./node_modules/buffer/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/detect-browser/es/index.js\":\n/*!*************************************************!*\\\n  !*** ./node_modules/detect-browser/es/index.js ***!\n  \\*************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"BotInfo\\\": () => (/* binding */ BotInfo),\\n/* harmony export */   \\\"BrowserInfo\\\": () => (/* binding */ BrowserInfo),\\n/* harmony export */   \\\"NodeInfo\\\": () => (/* binding */ NodeInfo),\\n/* harmony export */   \\\"ReactNativeInfo\\\": () => (/* binding */ ReactNativeInfo),\\n/* harmony export */   \\\"SearchBotDeviceInfo\\\": () => (/* binding */ SearchBotDeviceInfo),\\n/* harmony export */   \\\"browserName\\\": () => (/* binding */ browserName),\\n/* harmony export */   \\\"detect\\\": () => (/* binding */ detect),\\n/* harmony export */   \\\"detectOS\\\": () => (/* binding */ detectOS),\\n/* harmony export */   \\\"getNodeVersion\\\": () => (/* binding */ getNodeVersion),\\n/* harmony export */   \\\"parseUserAgent\\\": () => (/* binding */ parseUserAgent)\\n/* harmony export */ });\\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./node_modules/process/browser.js\\\");\\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\\n        if (ar || !(i in from)) {\\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\\n            ar[i] = from[i];\\n        }\\n    }\\n    return to.concat(ar || Array.prototype.slice.call(from));\\n};\\nvar BrowserInfo = /** @class */ (function () {\\n    function BrowserInfo(name, version, os) {\\n        this.name = name;\\n        this.version = version;\\n        this.os = os;\\n        this.type = 'browser';\\n    }\\n    return BrowserInfo;\\n}());\\n\\nvar NodeInfo = /** @class */ (function () {\\n    function NodeInfo(version) {\\n        this.version = version;\\n        this.type = 'node';\\n        this.name = 'node';\\n        this.os = process.platform;\\n    }\\n    return NodeInfo;\\n}());\\n\\nvar SearchBotDeviceInfo = /** @class */ (function () {\\n    function SearchBotDeviceInfo(name, version, os, bot) {\\n        this.name = name;\\n        this.version = version;\\n        this.os = os;\\n        this.bot = bot;\\n        this.type = 'bot-device';\\n    }\\n    return SearchBotDeviceInfo;\\n}());\\n\\nvar BotInfo = /** @class */ (function () {\\n    function BotInfo() {\\n        this.type = 'bot';\\n        this.bot = true; // NOTE: deprecated test name instead\\n        this.name = 'bot';\\n        this.version = null;\\n        this.os = null;\\n    }\\n    return BotInfo;\\n}());\\n\\nvar ReactNativeInfo = /** @class */ (function () {\\n    function ReactNativeInfo() {\\n        this.type = 'react-native';\\n        this.name = 'react-native';\\n        this.version = null;\\n        this.os = null;\\n    }\\n    return ReactNativeInfo;\\n}());\\n\\n// tslint:disable-next-line:max-line-length\\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\\\ Jeeves\\\\/Teoma|ia_archiver)/;\\nvar REQUIRED_VERSION_PARTS = 3;\\nvar userAgentRules = [\\n    ['aol', /AOLShield\\\\/([0-9\\\\._]+)/],\\n    ['edge', /Edge\\\\/([0-9\\\\._]+)/],\\n    ['edge-ios', /EdgiOS\\\\/([0-9\\\\._]+)/],\\n    ['yandexbrowser', /YaBrowser\\\\/([0-9\\\\._]+)/],\\n    ['kakaotalk', /KAKAOTALK\\\\s([0-9\\\\.]+)/],\\n    ['samsung', /SamsungBrowser\\\\/([0-9\\\\.]+)/],\\n    ['silk', /\\\\bSilk\\\\/([0-9._-]+)\\\\b/],\\n    ['miui', /MiuiBrowser\\\\/([0-9\\\\.]+)$/],\\n    ['beaker', /BeakerBrowser\\\\/([0-9\\\\.]+)/],\\n    ['edge-chromium', /EdgA?\\\\/([0-9\\\\.]+)/],\\n    [\\n        'chromium-webview',\\n        /(?!Chrom.*OPR)wv\\\\).*Chrom(?:e|ium)\\\\/([0-9\\\\.]+)(:?\\\\s|$)/,\\n    ],\\n    ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\\\/([0-9\\\\.]+)(:?\\\\s|$)/],\\n    ['phantomjs', /PhantomJS\\\\/([0-9\\\\.]+)(:?\\\\s|$)/],\\n    ['crios', /CriOS\\\\/([0-9\\\\.]+)(:?\\\\s|$)/],\\n    ['firefox', /Firefox\\\\/([0-9\\\\.]+)(?:\\\\s|$)/],\\n    ['fxios', /FxiOS\\\\/([0-9\\\\.]+)/],\\n    ['opera-mini', /Opera Mini.*Version\\\\/([0-9\\\\.]+)/],\\n    ['opera', /Opera\\\\/([0-9\\\\.]+)(?:\\\\s|$)/],\\n    ['opera', /OPR\\\\/([0-9\\\\.]+)(:?\\\\s|$)/],\\n    ['pie', /^Microsoft Pocket Internet Explorer\\\\/(\\\\d+\\\\.\\\\d+)$/],\\n    ['pie', /^Mozilla\\\\/\\\\d\\\\.\\\\d+\\\\s\\\\(compatible;\\\\s(?:MSP?IE|MSInternet Explorer) (\\\\d+\\\\.\\\\d+);.*Windows CE.*\\\\)$/],\\n    ['netfront', /^Mozilla\\\\/\\\\d\\\\.\\\\d+.*NetFront\\\\/(\\\\d.\\\\d)/],\\n    ['ie', /Trident\\\\/7\\\\.0.*rv\\\\:([0-9\\\\.]+).*\\\\).*Gecko$/],\\n    ['ie', /MSIE\\\\s([0-9\\\\.]+);.*Trident\\\\/[4-7].0/],\\n    ['ie', /MSIE\\\\s(7\\\\.0)/],\\n    ['bb10', /BB10;\\\\sTouch.*Version\\\\/([0-9\\\\.]+)/],\\n    ['android', /Android\\\\s([0-9\\\\.]+)/],\\n    ['ios', /Version\\\\/([0-9\\\\._]+).*Mobile.*Safari.*/],\\n    ['safari', /Version\\\\/([0-9\\\\._]+).*Safari/],\\n    ['facebook', /FB[AS]V\\\\/([0-9\\\\.]+)/],\\n    ['instagram', /Instagram\\\\s([0-9\\\\.]+)/],\\n    ['ios-webview', /AppleWebKit\\\\/([0-9\\\\.]+).*Mobile/],\\n    ['ios-webview', /AppleWebKit\\\\/([0-9\\\\.]+).*Gecko\\\\)$/],\\n    ['curl', /^curl\\\\/([0-9\\\\.]+)$/],\\n    ['searchbot', SEARCHBOX_UA_REGEX],\\n];\\nvar operatingSystemRules = [\\n    ['iOS', /iP(hone|od|ad)/],\\n    ['Android OS', /Android/],\\n    ['BlackBerry OS', /BlackBerry|BB10/],\\n    ['Windows Mobile', /IEMobile/],\\n    ['Amazon OS', /Kindle/],\\n    ['Windows 3.11', /Win16/],\\n    ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\\n    ['Windows 98', /(Windows 98)|(Win98)/],\\n    ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\\n    ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\\n    ['Windows Server 2003', /(Windows NT 5.2)/],\\n    ['Windows Vista', /(Windows NT 6.0)/],\\n    ['Windows 7', /(Windows NT 6.1)/],\\n    ['Windows 8', /(Windows NT 6.2)/],\\n    ['Windows 8.1', /(Windows NT 6.3)/],\\n    ['Windows 10', /(Windows NT 10.0)/],\\n    ['Windows ME', /Windows ME/],\\n    ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\\n    ['Open BSD', /OpenBSD/],\\n    ['Sun OS', /SunOS/],\\n    ['Chrome OS', /CrOS/],\\n    ['Linux', /(Linux)|(X11)/],\\n    ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\\n    ['QNX', /QNX/],\\n    ['BeOS', /BeOS/],\\n    ['OS/2', /OS\\\\/2/],\\n];\\nfunction detect(userAgent) {\\n    if (!!userAgent) {\\n        return parseUserAgent(userAgent);\\n    }\\n    if (typeof document === 'undefined' &&\\n        typeof navigator !== 'undefined' &&\\n        navigator.product === 'ReactNative') {\\n        return new ReactNativeInfo();\\n    }\\n    if (typeof navigator !== 'undefined') {\\n        return parseUserAgent(navigator.userAgent);\\n    }\\n    return getNodeVersion();\\n}\\nfunction matchUserAgent(ua) {\\n    // opted for using reduce here rather than Array#first with a regex.test call\\n    // this is primarily because using the reduce we only perform the regex\\n    // execution once rather than once for the test and for the exec again below\\n    // probably something that needs to be benchmarked though\\n    return (ua !== '' &&\\n        userAgentRules.reduce(function (matched, _a) {\\n            var browser = _a[0], regex = _a[1];\\n            if (matched) {\\n                return matched;\\n            }\\n            var uaMatch = regex.exec(ua);\\n            return !!uaMatch && [browser, uaMatch];\\n        }, false));\\n}\\nfunction browserName(ua) {\\n    var data = matchUserAgent(ua);\\n    return data ? data[0] : null;\\n}\\nfunction parseUserAgent(ua) {\\n    var matchedRule = matchUserAgent(ua);\\n    if (!matchedRule) {\\n        return null;\\n    }\\n    var name = matchedRule[0], match = matchedRule[1];\\n    if (name === 'searchbot') {\\n        return new BotInfo();\\n    }\\n    // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\\n    var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\\n    if (versionParts) {\\n        if (versionParts.length < REQUIRED_VERSION_PARTS) {\\n            versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\\n        }\\n    }\\n    else {\\n        versionParts = [];\\n    }\\n    var version = versionParts.join('.');\\n    var os = detectOS(ua);\\n    var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\\n    if (searchBotMatch && searchBotMatch[1]) {\\n        return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\\n    }\\n    return new BrowserInfo(name, version, os);\\n}\\nfunction detectOS(ua) {\\n    for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\\n        var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\\n        var match = regex.exec(ua);\\n        if (match) {\\n            return os;\\n        }\\n    }\\n    return null;\\n}\\nfunction getNodeVersion() {\\n    var isNode = typeof process !== 'undefined' && process.version;\\n    return isNode ? new NodeInfo(process.version.slice(1)) : null;\\n}\\nfunction createVersionParts(count) {\\n    var output = [];\\n    for (var ii = 0; ii < count; ii++) {\\n        output.push('0');\\n    }\\n    return output;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/detect-browser/es/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/events/events.js\":\n/*!***************************************!*\\\n  !*** ./node_modules/events/events.js ***!\n  \\***************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"// 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://@dannadori/voice-changer-client-js/./node_modules/events/events.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/ieee754/index.js\":\n/*!***************************************!*\\\n  !*** ./node_modules/ieee754/index.js ***!\n  \\***************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\neval(\"/*! 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://@dannadori/voice-changer-client-js/./node_modules/ieee754/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/inherits/inherits_browser.js\":\n/*!***************************************************!*\\\n  !*** ./node_modules/inherits/inherits_browser.js ***!\n  \\***************************************************/\n/***/ ((module) => {\n\neval(\"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://@dannadori/voice-changer-client-js/./node_modules/inherits/inherits_browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/localforage/dist/localforage.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/localforage/dist/localforage.js ***!\n  \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/*!\\n    localForage -- Offline Storage, Improved\\n    Version 1.10.0\\n    https://localforage.github.io/localForage\\n    (c) 2013-2017 Mozilla, Apache License 2.0\\n*/\\n(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=undefined;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error(\\\"Cannot find module '\\\"+o+\\\"'\\\");throw (f.code=\\\"MODULE_NOT_FOUND\\\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=undefined;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\\n(function (global){\\n'use strict';\\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\\n\\nvar scheduleDrain;\\n\\n{\\n  if (Mutation) {\\n    var called = 0;\\n    var observer = new Mutation(nextTick);\\n    var element = global.document.createTextNode('');\\n    observer.observe(element, {\\n      characterData: true\\n    });\\n    scheduleDrain = function () {\\n      element.data = (called = ++called % 2);\\n    };\\n  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\\n    var channel = new global.MessageChannel();\\n    channel.port1.onmessage = nextTick;\\n    scheduleDrain = function () {\\n      channel.port2.postMessage(0);\\n    };\\n  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\\n    scheduleDrain = function () {\\n\\n      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\\n      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\\n      var scriptEl = global.document.createElement('script');\\n      scriptEl.onreadystatechange = function () {\\n        nextTick();\\n\\n        scriptEl.onreadystatechange = null;\\n        scriptEl.parentNode.removeChild(scriptEl);\\n        scriptEl = null;\\n      };\\n      global.document.documentElement.appendChild(scriptEl);\\n    };\\n  } else {\\n    scheduleDrain = function () {\\n      setTimeout(nextTick, 0);\\n    };\\n  }\\n}\\n\\nvar draining;\\nvar queue = [];\\n//named nextTick for less confusing stack traces\\nfunction nextTick() {\\n  draining = true;\\n  var i, oldQueue;\\n  var len = queue.length;\\n  while (len) {\\n    oldQueue = queue;\\n    queue = [];\\n    i = -1;\\n    while (++i < len) {\\n      oldQueue[i]();\\n    }\\n    len = queue.length;\\n  }\\n  draining = false;\\n}\\n\\nmodule.exports = immediate;\\nfunction immediate(task) {\\n  if (queue.push(task) === 1 && !draining) {\\n    scheduleDrain();\\n  }\\n}\\n\\n}).call(this,typeof __webpack_require__.g !== \\\"undefined\\\" ? __webpack_require__.g : typeof self !== \\\"undefined\\\" ? self : typeof window !== \\\"undefined\\\" ? window : {})\\n},{}],2:[function(_dereq_,module,exports){\\n'use strict';\\nvar immediate = _dereq_(1);\\n\\n/* istanbul ignore next */\\nfunction INTERNAL() {}\\n\\nvar handlers = {};\\n\\nvar REJECTED = ['REJECTED'];\\nvar FULFILLED = ['FULFILLED'];\\nvar PENDING = ['PENDING'];\\n\\nmodule.exports = Promise;\\n\\nfunction Promise(resolver) {\\n  if (typeof resolver !== 'function') {\\n    throw new TypeError('resolver must be a function');\\n  }\\n  this.state = PENDING;\\n  this.queue = [];\\n  this.outcome = void 0;\\n  if (resolver !== INTERNAL) {\\n    safelyResolveThenable(this, resolver);\\n  }\\n}\\n\\nPromise.prototype[\\\"catch\\\"] = function (onRejected) {\\n  return this.then(null, onRejected);\\n};\\nPromise.prototype.then = function (onFulfilled, onRejected) {\\n  if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\\n    typeof onRejected !== 'function' && this.state === REJECTED) {\\n    return this;\\n  }\\n  var promise = new this.constructor(INTERNAL);\\n  if (this.state !== PENDING) {\\n    var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\\n    unwrap(promise, resolver, this.outcome);\\n  } else {\\n    this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\\n  }\\n\\n  return promise;\\n};\\nfunction QueueItem(promise, onFulfilled, onRejected) {\\n  this.promise = promise;\\n  if (typeof onFulfilled === 'function') {\\n    this.onFulfilled = onFulfilled;\\n    this.callFulfilled = this.otherCallFulfilled;\\n  }\\n  if (typeof onRejected === 'function') {\\n    this.onRejected = onRejected;\\n    this.callRejected = this.otherCallRejected;\\n  }\\n}\\nQueueItem.prototype.callFulfilled = function (value) {\\n  handlers.resolve(this.promise, value);\\n};\\nQueueItem.prototype.otherCallFulfilled = function (value) {\\n  unwrap(this.promise, this.onFulfilled, value);\\n};\\nQueueItem.prototype.callRejected = function (value) {\\n  handlers.reject(this.promise, value);\\n};\\nQueueItem.prototype.otherCallRejected = function (value) {\\n  unwrap(this.promise, this.onRejected, value);\\n};\\n\\nfunction unwrap(promise, func, value) {\\n  immediate(function () {\\n    var returnValue;\\n    try {\\n      returnValue = func(value);\\n    } catch (e) {\\n      return handlers.reject(promise, e);\\n    }\\n    if (returnValue === promise) {\\n      handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\\n    } else {\\n      handlers.resolve(promise, returnValue);\\n    }\\n  });\\n}\\n\\nhandlers.resolve = function (self, value) {\\n  var result = tryCatch(getThen, value);\\n  if (result.status === 'error') {\\n    return handlers.reject(self, result.value);\\n  }\\n  var thenable = result.value;\\n\\n  if (thenable) {\\n    safelyResolveThenable(self, thenable);\\n  } else {\\n    self.state = FULFILLED;\\n    self.outcome = value;\\n    var i = -1;\\n    var len = self.queue.length;\\n    while (++i < len) {\\n      self.queue[i].callFulfilled(value);\\n    }\\n  }\\n  return self;\\n};\\nhandlers.reject = function (self, error) {\\n  self.state = REJECTED;\\n  self.outcome = error;\\n  var i = -1;\\n  var len = self.queue.length;\\n  while (++i < len) {\\n    self.queue[i].callRejected(error);\\n  }\\n  return self;\\n};\\n\\nfunction getThen(obj) {\\n  // Make sure we only access the accessor once as required by the spec\\n  var then = obj && obj.then;\\n  if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\\n    return function appyThen() {\\n      then.apply(obj, arguments);\\n    };\\n  }\\n}\\n\\nfunction safelyResolveThenable(self, thenable) {\\n  // Either fulfill, reject or reject with error\\n  var called = false;\\n  function onError(value) {\\n    if (called) {\\n      return;\\n    }\\n    called = true;\\n    handlers.reject(self, value);\\n  }\\n\\n  function onSuccess(value) {\\n    if (called) {\\n      return;\\n    }\\n    called = true;\\n    handlers.resolve(self, value);\\n  }\\n\\n  function tryToUnwrap() {\\n    thenable(onSuccess, onError);\\n  }\\n\\n  var result = tryCatch(tryToUnwrap);\\n  if (result.status === 'error') {\\n    onError(result.value);\\n  }\\n}\\n\\nfunction tryCatch(func, value) {\\n  var out = {};\\n  try {\\n    out.value = func(value);\\n    out.status = 'success';\\n  } catch (e) {\\n    out.status = 'error';\\n    out.value = e;\\n  }\\n  return out;\\n}\\n\\nPromise.resolve = resolve;\\nfunction resolve(value) {\\n  if (value instanceof this) {\\n    return value;\\n  }\\n  return handlers.resolve(new this(INTERNAL), value);\\n}\\n\\nPromise.reject = reject;\\nfunction reject(reason) {\\n  var promise = new this(INTERNAL);\\n  return handlers.reject(promise, reason);\\n}\\n\\nPromise.all = all;\\nfunction all(iterable) {\\n  var self = this;\\n  if (Object.prototype.toString.call(iterable) !== '[object Array]') {\\n    return this.reject(new TypeError('must be an array'));\\n  }\\n\\n  var len = iterable.length;\\n  var called = false;\\n  if (!len) {\\n    return this.resolve([]);\\n  }\\n\\n  var values = new Array(len);\\n  var resolved = 0;\\n  var i = -1;\\n  var promise = new this(INTERNAL);\\n\\n  while (++i < len) {\\n    allResolver(iterable[i], i);\\n  }\\n  return promise;\\n  function allResolver(value, i) {\\n    self.resolve(value).then(resolveFromAll, function (error) {\\n      if (!called) {\\n        called = true;\\n        handlers.reject(promise, error);\\n      }\\n    });\\n    function resolveFromAll(outValue) {\\n      values[i] = outValue;\\n      if (++resolved === len && !called) {\\n        called = true;\\n        handlers.resolve(promise, values);\\n      }\\n    }\\n  }\\n}\\n\\nPromise.race = race;\\nfunction race(iterable) {\\n  var self = this;\\n  if (Object.prototype.toString.call(iterable) !== '[object Array]') {\\n    return this.reject(new TypeError('must be an array'));\\n  }\\n\\n  var len = iterable.length;\\n  var called = false;\\n  if (!len) {\\n    return this.resolve([]);\\n  }\\n\\n  var i = -1;\\n  var promise = new this(INTERNAL);\\n\\n  while (++i < len) {\\n    resolver(iterable[i]);\\n  }\\n  return promise;\\n  function resolver(value) {\\n    self.resolve(value).then(function (response) {\\n      if (!called) {\\n        called = true;\\n        handlers.resolve(promise, response);\\n      }\\n    }, function (error) {\\n      if (!called) {\\n        called = true;\\n        handlers.reject(promise, error);\\n      }\\n    });\\n  }\\n}\\n\\n},{\\\"1\\\":1}],3:[function(_dereq_,module,exports){\\n(function (global){\\n'use strict';\\nif (typeof global.Promise !== 'function') {\\n  global.Promise = _dereq_(2);\\n}\\n\\n}).call(this,typeof __webpack_require__.g !== \\\"undefined\\\" ? __webpack_require__.g : typeof self !== \\\"undefined\\\" ? self : typeof window !== \\\"undefined\\\" ? window : {})\\n},{\\\"2\\\":2}],4:[function(_dereq_,module,exports){\\n'use strict';\\n\\nvar _typeof = typeof Symbol === \\\"function\\\" && typeof Symbol.iterator === \\\"symbol\\\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \\\"function\\\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \\\"symbol\\\" : typeof obj; };\\n\\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\\"Cannot call a class as a function\\\"); } }\\n\\nfunction getIDB() {\\n    /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\\n    try {\\n        if (typeof indexedDB !== 'undefined') {\\n            return indexedDB;\\n        }\\n        if (typeof webkitIndexedDB !== 'undefined') {\\n            return webkitIndexedDB;\\n        }\\n        if (typeof mozIndexedDB !== 'undefined') {\\n            return mozIndexedDB;\\n        }\\n        if (typeof OIndexedDB !== 'undefined') {\\n            return OIndexedDB;\\n        }\\n        if (typeof msIndexedDB !== 'undefined') {\\n            return msIndexedDB;\\n        }\\n    } catch (e) {\\n        return;\\n    }\\n}\\n\\nvar idb = getIDB();\\n\\nfunction isIndexedDBValid() {\\n    try {\\n        // Initialize IndexedDB; fall back to vendor-prefixed versions\\n        // if needed.\\n        if (!idb || !idb.open) {\\n            return false;\\n        }\\n        // We mimic PouchDB here;\\n        //\\n        // We test for openDatabase because IE Mobile identifies itself\\n        // as Safari. Oh the lulz...\\n        var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\\n\\n        var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\\n\\n        // Safari <10.1 does not meet our requirements for IDB support\\n        // (see: https://github.com/pouchdb/pouchdb/issues/5572).\\n        // Safari 10.1 shipped with fetch, we can use that to detect it.\\n        // Note: this creates issues with `window.fetch` polyfills and\\n        // overrides; see:\\n        // https://github.com/localForage/localForage/issues/856\\n        return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\\n        // some outdated implementations of IDB that appear on Samsung\\n        // and HTC Android devices <4.4 are missing IDBKeyRange\\n        // See: https://github.com/mozilla/localForage/issues/128\\n        // See: https://github.com/mozilla/localForage/issues/272\\n        typeof IDBKeyRange !== 'undefined';\\n    } catch (e) {\\n        return false;\\n    }\\n}\\n\\n// Abstracts constructing a Blob object, so it also works in older\\n// browsers that don't support the native Blob constructor. (i.e.\\n// old QtWebKit versions, at least).\\n// Abstracts constructing a Blob object, so it also works in older\\n// browsers that don't support the native Blob constructor. (i.e.\\n// old QtWebKit versions, at least).\\nfunction createBlob(parts, properties) {\\n    /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\\n    parts = parts || [];\\n    properties = properties || {};\\n    try {\\n        return new Blob(parts, properties);\\n    } catch (e) {\\n        if (e.name !== 'TypeError') {\\n            throw e;\\n        }\\n        var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\\n        var builder = new Builder();\\n        for (var i = 0; i < parts.length; i += 1) {\\n            builder.append(parts[i]);\\n        }\\n        return builder.getBlob(properties.type);\\n    }\\n}\\n\\n// This is CommonJS because lie is an external dependency, so Rollup\\n// can just ignore it.\\nif (typeof Promise === 'undefined') {\\n    // In the \\\"nopromises\\\" build this will just throw if you don't have\\n    // a global promise object, but it would throw anyway later.\\n    _dereq_(3);\\n}\\nvar Promise$1 = Promise;\\n\\nfunction executeCallback(promise, callback) {\\n    if (callback) {\\n        promise.then(function (result) {\\n            callback(null, result);\\n        }, function (error) {\\n            callback(error);\\n        });\\n    }\\n}\\n\\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\\n    if (typeof callback === 'function') {\\n        promise.then(callback);\\n    }\\n\\n    if (typeof errorCallback === 'function') {\\n        promise[\\\"catch\\\"](errorCallback);\\n    }\\n}\\n\\nfunction normalizeKey(key) {\\n    // Cast the key to a string, as that's all we can set as a key.\\n    if (typeof key !== 'string') {\\n        console.warn(key + ' used as a key, but it is not a string.');\\n        key = String(key);\\n    }\\n\\n    return key;\\n}\\n\\nfunction getCallback() {\\n    if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\\n        return arguments[arguments.length - 1];\\n    }\\n}\\n\\n// Some code originally from async_storage.js in\\n// [Gaia](https://github.com/mozilla-b2g/gaia).\\n\\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\\nvar supportsBlobs = void 0;\\nvar dbContexts = {};\\nvar toString = Object.prototype.toString;\\n\\n// Transaction Modes\\nvar READ_ONLY = 'readonly';\\nvar READ_WRITE = 'readwrite';\\n\\n// Transform a binary string to an array buffer, because otherwise\\n// weird stuff happens when you try to work with the binary string directly.\\n// It is known.\\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\\nfunction _binStringToArrayBuffer(bin) {\\n    var length = bin.length;\\n    var buf = new ArrayBuffer(length);\\n    var arr = new Uint8Array(buf);\\n    for (var i = 0; i < length; i++) {\\n        arr[i] = bin.charCodeAt(i);\\n    }\\n    return buf;\\n}\\n\\n//\\n// Blobs are not supported in all versions of IndexedDB, notably\\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\\n//\\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\\n// Detecting them is expensive and confusing to users, and Chrome 37-42\\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\\n//\\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\\n//\\n// Code borrowed from PouchDB. See:\\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\\n//\\nfunction _checkBlobSupportWithoutCaching(idb) {\\n    return new Promise$1(function (resolve) {\\n        var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\\n        var blob = createBlob(['']);\\n        txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\\n\\n        txn.onabort = function (e) {\\n            // If the transaction aborts now its due to not being able to\\n            // write to the database, likely due to the disk being full\\n            e.preventDefault();\\n            e.stopPropagation();\\n            resolve(false);\\n        };\\n\\n        txn.oncomplete = function () {\\n            var matchedChrome = navigator.userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n            var matchedEdge = navigator.userAgent.match(/Edge\\\\//);\\n            // MS Edge pretends to be Chrome 42:\\n            // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\\n            resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\\n        };\\n    })[\\\"catch\\\"](function () {\\n        return false; // error, so assume unsupported\\n    });\\n}\\n\\nfunction _checkBlobSupport(idb) {\\n    if (typeof supportsBlobs === 'boolean') {\\n        return Promise$1.resolve(supportsBlobs);\\n    }\\n    return _checkBlobSupportWithoutCaching(idb).then(function (value) {\\n        supportsBlobs = value;\\n        return supportsBlobs;\\n    });\\n}\\n\\nfunction _deferReadiness(dbInfo) {\\n    var dbContext = dbContexts[dbInfo.name];\\n\\n    // Create a deferred object representing the current database operation.\\n    var deferredOperation = {};\\n\\n    deferredOperation.promise = new Promise$1(function (resolve, reject) {\\n        deferredOperation.resolve = resolve;\\n        deferredOperation.reject = reject;\\n    });\\n\\n    // Enqueue the deferred operation.\\n    dbContext.deferredOperations.push(deferredOperation);\\n\\n    // Chain its promise to the database readiness.\\n    if (!dbContext.dbReady) {\\n        dbContext.dbReady = deferredOperation.promise;\\n    } else {\\n        dbContext.dbReady = dbContext.dbReady.then(function () {\\n            return deferredOperation.promise;\\n        });\\n    }\\n}\\n\\nfunction _advanceReadiness(dbInfo) {\\n    var dbContext = dbContexts[dbInfo.name];\\n\\n    // Dequeue a deferred operation.\\n    var deferredOperation = dbContext.deferredOperations.pop();\\n\\n    // Resolve its promise (which is part of the database readiness\\n    // chain of promises).\\n    if (deferredOperation) {\\n        deferredOperation.resolve();\\n        return deferredOperation.promise;\\n    }\\n}\\n\\nfunction _rejectReadiness(dbInfo, err) {\\n    var dbContext = dbContexts[dbInfo.name];\\n\\n    // Dequeue a deferred operation.\\n    var deferredOperation = dbContext.deferredOperations.pop();\\n\\n    // Reject its promise (which is part of the database readiness\\n    // chain of promises).\\n    if (deferredOperation) {\\n        deferredOperation.reject(err);\\n        return deferredOperation.promise;\\n    }\\n}\\n\\nfunction _getConnection(dbInfo, upgradeNeeded) {\\n    return new Promise$1(function (resolve, reject) {\\n        dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\\n\\n        if (dbInfo.db) {\\n            if (upgradeNeeded) {\\n                _deferReadiness(dbInfo);\\n                dbInfo.db.close();\\n            } else {\\n                return resolve(dbInfo.db);\\n            }\\n        }\\n\\n        var dbArgs = [dbInfo.name];\\n\\n        if (upgradeNeeded) {\\n            dbArgs.push(dbInfo.version);\\n        }\\n\\n        var openreq = idb.open.apply(idb, dbArgs);\\n\\n        if (upgradeNeeded) {\\n            openreq.onupgradeneeded = function (e) {\\n                var db = openreq.result;\\n                try {\\n                    db.createObjectStore(dbInfo.storeName);\\n                    if (e.oldVersion <= 1) {\\n                        // Added when support for blob shims was added\\n                        db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\\n                    }\\n                } catch (ex) {\\n                    if (ex.name === 'ConstraintError') {\\n                        console.warn('The database \\\"' + dbInfo.name + '\\\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \\\"' + dbInfo.storeName + '\\\" already exists.');\\n                    } else {\\n                        throw ex;\\n                    }\\n                }\\n            };\\n        }\\n\\n        openreq.onerror = function (e) {\\n            e.preventDefault();\\n            reject(openreq.error);\\n        };\\n\\n        openreq.onsuccess = function () {\\n            var db = openreq.result;\\n            db.onversionchange = function (e) {\\n                // Triggered when the database is modified (e.g. adding an objectStore) or\\n                // deleted (even when initiated by other sessions in different tabs).\\n                // Closing the connection here prevents those operations from being blocked.\\n                // If the database is accessed again later by this instance, the connection\\n                // will be reopened or the database recreated as needed.\\n                e.target.close();\\n            };\\n            resolve(db);\\n            _advanceReadiness(dbInfo);\\n        };\\n    });\\n}\\n\\nfunction _getOriginalConnection(dbInfo) {\\n    return _getConnection(dbInfo, false);\\n}\\n\\nfunction _getUpgradedConnection(dbInfo) {\\n    return _getConnection(dbInfo, true);\\n}\\n\\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\\n    if (!dbInfo.db) {\\n        return true;\\n    }\\n\\n    var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\\n    var isDowngrade = dbInfo.version < dbInfo.db.version;\\n    var isUpgrade = dbInfo.version > dbInfo.db.version;\\n\\n    if (isDowngrade) {\\n        // If the version is not the default one\\n        // then warn for impossible downgrade.\\n        if (dbInfo.version !== defaultVersion) {\\n            console.warn('The database \\\"' + dbInfo.name + '\\\"' + \\\" can't be downgraded from version \\\" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\\n        }\\n        // Align the versions to prevent errors.\\n        dbInfo.version = dbInfo.db.version;\\n    }\\n\\n    if (isUpgrade || isNewStore) {\\n        // If the store is new then increment the version (if needed).\\n        // This will trigger an \\\"upgradeneeded\\\" event which is required\\n        // for creating a store.\\n        if (isNewStore) {\\n            var incVersion = dbInfo.db.version + 1;\\n            if (incVersion > dbInfo.version) {\\n                dbInfo.version = incVersion;\\n            }\\n        }\\n\\n        return true;\\n    }\\n\\n    return false;\\n}\\n\\n// encode a blob for indexeddb engines that don't support blobs\\nfunction _encodeBlob(blob) {\\n    return new Promise$1(function (resolve, reject) {\\n        var reader = new FileReader();\\n        reader.onerror = reject;\\n        reader.onloadend = function (e) {\\n            var base64 = btoa(e.target.result || '');\\n            resolve({\\n                __local_forage_encoded_blob: true,\\n                data: base64,\\n                type: blob.type\\n            });\\n        };\\n        reader.readAsBinaryString(blob);\\n    });\\n}\\n\\n// decode an encoded blob\\nfunction _decodeBlob(encodedBlob) {\\n    var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\\n    return createBlob([arrayBuff], { type: encodedBlob.type });\\n}\\n\\n// is this one of our fancy encoded blobs?\\nfunction _isEncodedBlob(value) {\\n    return value && value.__local_forage_encoded_blob;\\n}\\n\\n// Specialize the default `ready()` function by making it dependent\\n// on the current database operations. Thus, the driver will be actually\\n// ready when it's been initialized (default) *and* there are no pending\\n// operations on the database (initiated by some other instances).\\nfunction _fullyReady(callback) {\\n    var self = this;\\n\\n    var promise = self._initReady().then(function () {\\n        var dbContext = dbContexts[self._dbInfo.name];\\n\\n        if (dbContext && dbContext.dbReady) {\\n            return dbContext.dbReady;\\n        }\\n    });\\n\\n    executeTwoCallbacks(promise, callback, callback);\\n    return promise;\\n}\\n\\n// Try to establish a new db connection to replace the\\n// current one which is broken (i.e. experiencing\\n// InvalidStateError while creating a transaction).\\nfunction _tryReconnect(dbInfo) {\\n    _deferReadiness(dbInfo);\\n\\n    var dbContext = dbContexts[dbInfo.name];\\n    var forages = dbContext.forages;\\n\\n    for (var i = 0; i < forages.length; i++) {\\n        var forage = forages[i];\\n        if (forage._dbInfo.db) {\\n            forage._dbInfo.db.close();\\n            forage._dbInfo.db = null;\\n        }\\n    }\\n    dbInfo.db = null;\\n\\n    return _getOriginalConnection(dbInfo).then(function (db) {\\n        dbInfo.db = db;\\n        if (_isUpgradeNeeded(dbInfo)) {\\n            // Reopen the database for upgrading.\\n            return _getUpgradedConnection(dbInfo);\\n        }\\n        return db;\\n    }).then(function (db) {\\n        // store the latest db reference\\n        // in case the db was upgraded\\n        dbInfo.db = dbContext.db = db;\\n        for (var i = 0; i < forages.length; i++) {\\n            forages[i]._dbInfo.db = db;\\n        }\\n    })[\\\"catch\\\"](function (err) {\\n        _rejectReadiness(dbInfo, err);\\n        throw err;\\n    });\\n}\\n\\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\\n// so we have to do it with callbacks\\nfunction createTransaction(dbInfo, mode, callback, retries) {\\n    if (retries === undefined) {\\n        retries = 1;\\n    }\\n\\n    try {\\n        var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\\n        callback(null, tx);\\n    } catch (err) {\\n        if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\\n            return Promise$1.resolve().then(function () {\\n                if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\\n                    // increase the db version, to create the new ObjectStore\\n                    if (dbInfo.db) {\\n                        dbInfo.version = dbInfo.db.version + 1;\\n                    }\\n                    // Reopen the database for upgrading.\\n                    return _getUpgradedConnection(dbInfo);\\n                }\\n            }).then(function () {\\n                return _tryReconnect(dbInfo).then(function () {\\n                    createTransaction(dbInfo, mode, callback, retries - 1);\\n                });\\n            })[\\\"catch\\\"](callback);\\n        }\\n\\n        callback(err);\\n    }\\n}\\n\\nfunction createDbContext() {\\n    return {\\n        // Running localForages sharing a database.\\n        forages: [],\\n        // Shared database.\\n        db: null,\\n        // Database readiness (promise).\\n        dbReady: null,\\n        // Deferred operations on the database.\\n        deferredOperations: []\\n    };\\n}\\n\\n// Open the IndexedDB database (automatically creates one if one didn't\\n// previously exist), using any options set in the config.\\nfunction _initStorage(options) {\\n    var self = this;\\n    var dbInfo = {\\n        db: null\\n    };\\n\\n    if (options) {\\n        for (var i in options) {\\n            dbInfo[i] = options[i];\\n        }\\n    }\\n\\n    // Get the current context of the database;\\n    var dbContext = dbContexts[dbInfo.name];\\n\\n    // ...or create a new context.\\n    if (!dbContext) {\\n        dbContext = createDbContext();\\n        // Register the new context in the global container.\\n        dbContexts[dbInfo.name] = dbContext;\\n    }\\n\\n    // Register itself as a running localForage in the current context.\\n    dbContext.forages.push(self);\\n\\n    // Replace the default `ready()` function with the specialized one.\\n    if (!self._initReady) {\\n        self._initReady = self.ready;\\n        self.ready = _fullyReady;\\n    }\\n\\n    // Create an array of initialization states of the related localForages.\\n    var initPromises = [];\\n\\n    function ignoreErrors() {\\n        // Don't handle errors here,\\n        // just makes sure related localForages aren't pending.\\n        return Promise$1.resolve();\\n    }\\n\\n    for (var j = 0; j < dbContext.forages.length; j++) {\\n        var forage = dbContext.forages[j];\\n        if (forage !== self) {\\n            // Don't wait for itself...\\n            initPromises.push(forage._initReady()[\\\"catch\\\"](ignoreErrors));\\n        }\\n    }\\n\\n    // Take a snapshot of the related localForages.\\n    var forages = dbContext.forages.slice(0);\\n\\n    // Initialize the connection process only when\\n    // all the related localForages aren't pending.\\n    return Promise$1.all(initPromises).then(function () {\\n        dbInfo.db = dbContext.db;\\n        // Get the connection or open a new one without upgrade.\\n        return _getOriginalConnection(dbInfo);\\n    }).then(function (db) {\\n        dbInfo.db = db;\\n        if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\\n            // Reopen the database for upgrading.\\n            return _getUpgradedConnection(dbInfo);\\n        }\\n        return db;\\n    }).then(function (db) {\\n        dbInfo.db = dbContext.db = db;\\n        self._dbInfo = dbInfo;\\n        // Share the final connection amongst related localForages.\\n        for (var k = 0; k < forages.length; k++) {\\n            var forage = forages[k];\\n            if (forage !== self) {\\n                // Self is already up-to-date.\\n                forage._dbInfo.db = dbInfo.db;\\n                forage._dbInfo.version = dbInfo.version;\\n            }\\n        }\\n    });\\n}\\n\\nfunction getItem(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var req = store.get(key);\\n\\n                    req.onsuccess = function () {\\n                        var value = req.result;\\n                        if (value === undefined) {\\n                            value = null;\\n                        }\\n                        if (_isEncodedBlob(value)) {\\n                            value = _decodeBlob(value);\\n                        }\\n                        resolve(value);\\n                    };\\n\\n                    req.onerror = function () {\\n                        reject(req.error);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Iterate over all items stored in database.\\nfunction iterate(iterator, callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var req = store.openCursor();\\n                    var iterationNumber = 1;\\n\\n                    req.onsuccess = function () {\\n                        var cursor = req.result;\\n\\n                        if (cursor) {\\n                            var value = cursor.value;\\n                            if (_isEncodedBlob(value)) {\\n                                value = _decodeBlob(value);\\n                            }\\n                            var result = iterator(value, cursor.key, iterationNumber++);\\n\\n                            // when the iterator callback returns any\\n                            // (non-`undefined`) value, then we stop\\n                            // the iteration immediately\\n                            if (result !== void 0) {\\n                                resolve(result);\\n                            } else {\\n                                cursor[\\\"continue\\\"]();\\n                            }\\n                        } else {\\n                            resolve();\\n                        }\\n                    };\\n\\n                    req.onerror = function () {\\n                        reject(req.error);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n\\n    return promise;\\n}\\n\\nfunction setItem(key, value, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        var dbInfo;\\n        self.ready().then(function () {\\n            dbInfo = self._dbInfo;\\n            if (toString.call(value) === '[object Blob]') {\\n                return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\\n                    if (blobSupport) {\\n                        return value;\\n                    }\\n                    return _encodeBlob(value);\\n                });\\n            }\\n            return value;\\n        }).then(function (value) {\\n            createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n\\n                    // The reason we don't _save_ null is because IE 10 does\\n                    // not support saving the `null` type in IndexedDB. How\\n                    // ironic, given the bug below!\\n                    // See: https://github.com/mozilla/localForage/issues/161\\n                    if (value === null) {\\n                        value = undefined;\\n                    }\\n\\n                    var req = store.put(value, key);\\n\\n                    transaction.oncomplete = function () {\\n                        // Cast to undefined so the value passed to\\n                        // callback/promise is the same as what one would get out\\n                        // of `getItem()` later. This leads to some weirdness\\n                        // (setItem('foo', undefined) will return `null`), but\\n                        // it's not my fault localStorage is our baseline and that\\n                        // it's weird.\\n                        if (value === undefined) {\\n                            value = null;\\n                        }\\n\\n                        resolve(value);\\n                    };\\n                    transaction.onabort = transaction.onerror = function () {\\n                        var err = req.error ? req.error : req.transaction.error;\\n                        reject(err);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction removeItem(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    // We use a Grunt task to make this safe for IE and some\\n                    // versions of Android (including those used by Cordova).\\n                    // Normally IE won't like `.delete()` and will insist on\\n                    // using `['delete']()`, but we have a build step that\\n                    // fixes this for us now.\\n                    var req = store[\\\"delete\\\"](key);\\n                    transaction.oncomplete = function () {\\n                        resolve();\\n                    };\\n\\n                    transaction.onerror = function () {\\n                        reject(req.error);\\n                    };\\n\\n                    // The request will be also be aborted if we've exceeded our storage\\n                    // space.\\n                    transaction.onabort = function () {\\n                        var err = req.error ? req.error : req.transaction.error;\\n                        reject(err);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction clear(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var req = store.clear();\\n\\n                    transaction.oncomplete = function () {\\n                        resolve();\\n                    };\\n\\n                    transaction.onabort = transaction.onerror = function () {\\n                        var err = req.error ? req.error : req.transaction.error;\\n                        reject(err);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction length(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var req = store.count();\\n\\n                    req.onsuccess = function () {\\n                        resolve(req.result);\\n                    };\\n\\n                    req.onerror = function () {\\n                        reject(req.error);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction key(n, callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        if (n < 0) {\\n            resolve(null);\\n\\n            return;\\n        }\\n\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var advanced = false;\\n                    var req = store.openKeyCursor();\\n\\n                    req.onsuccess = function () {\\n                        var cursor = req.result;\\n                        if (!cursor) {\\n                            // this means there weren't enough keys\\n                            resolve(null);\\n\\n                            return;\\n                        }\\n\\n                        if (n === 0) {\\n                            // We have the first key, return it if that's what they\\n                            // wanted.\\n                            resolve(cursor.key);\\n                        } else {\\n                            if (!advanced) {\\n                                // Otherwise, ask the cursor to skip ahead n\\n                                // records.\\n                                advanced = true;\\n                                cursor.advance(n);\\n                            } else {\\n                                // When we get here, we've got the nth key.\\n                                resolve(cursor.key);\\n                            }\\n                        }\\n                    };\\n\\n                    req.onerror = function () {\\n                        reject(req.error);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction keys(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\\n                if (err) {\\n                    return reject(err);\\n                }\\n\\n                try {\\n                    var store = transaction.objectStore(self._dbInfo.storeName);\\n                    var req = store.openKeyCursor();\\n                    var keys = [];\\n\\n                    req.onsuccess = function () {\\n                        var cursor = req.result;\\n\\n                        if (!cursor) {\\n                            resolve(keys);\\n                            return;\\n                        }\\n\\n                        keys.push(cursor.key);\\n                        cursor[\\\"continue\\\"]();\\n                    };\\n\\n                    req.onerror = function () {\\n                        reject(req.error);\\n                    };\\n                } catch (e) {\\n                    reject(e);\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction dropInstance(options, callback) {\\n    callback = getCallback.apply(this, arguments);\\n\\n    var currentConfig = this.config();\\n    options = typeof options !== 'function' && options || {};\\n    if (!options.name) {\\n        options.name = options.name || currentConfig.name;\\n        options.storeName = options.storeName || currentConfig.storeName;\\n    }\\n\\n    var self = this;\\n    var promise;\\n    if (!options.name) {\\n        promise = Promise$1.reject('Invalid arguments');\\n    } else {\\n        var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\\n\\n        var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\\n            var dbContext = dbContexts[options.name];\\n            var forages = dbContext.forages;\\n            dbContext.db = db;\\n            for (var i = 0; i < forages.length; i++) {\\n                forages[i]._dbInfo.db = db;\\n            }\\n            return db;\\n        });\\n\\n        if (!options.storeName) {\\n            promise = dbPromise.then(function (db) {\\n                _deferReadiness(options);\\n\\n                var dbContext = dbContexts[options.name];\\n                var forages = dbContext.forages;\\n\\n                db.close();\\n                for (var i = 0; i < forages.length; i++) {\\n                    var forage = forages[i];\\n                    forage._dbInfo.db = null;\\n                }\\n\\n                var dropDBPromise = new Promise$1(function (resolve, reject) {\\n                    var req = idb.deleteDatabase(options.name);\\n\\n                    req.onerror = function () {\\n                        var db = req.result;\\n                        if (db) {\\n                            db.close();\\n                        }\\n                        reject(req.error);\\n                    };\\n\\n                    req.onblocked = function () {\\n                        // Closing all open connections in onversionchange handler should prevent this situation, but if\\n                        // we do get here, it just means the request remains pending - eventually it will succeed or error\\n                        console.warn('dropInstance blocked for database \\\"' + options.name + '\\\" until all open connections are closed');\\n                    };\\n\\n                    req.onsuccess = function () {\\n                        var db = req.result;\\n                        if (db) {\\n                            db.close();\\n                        }\\n                        resolve(db);\\n                    };\\n                });\\n\\n                return dropDBPromise.then(function (db) {\\n                    dbContext.db = db;\\n                    for (var i = 0; i < forages.length; i++) {\\n                        var _forage = forages[i];\\n                        _advanceReadiness(_forage._dbInfo);\\n                    }\\n                })[\\\"catch\\\"](function (err) {\\n                    (_rejectReadiness(options, err) || Promise$1.resolve())[\\\"catch\\\"](function () {});\\n                    throw err;\\n                });\\n            });\\n        } else {\\n            promise = dbPromise.then(function (db) {\\n                if (!db.objectStoreNames.contains(options.storeName)) {\\n                    return;\\n                }\\n\\n                var newVersion = db.version + 1;\\n\\n                _deferReadiness(options);\\n\\n                var dbContext = dbContexts[options.name];\\n                var forages = dbContext.forages;\\n\\n                db.close();\\n                for (var i = 0; i < forages.length; i++) {\\n                    var forage = forages[i];\\n                    forage._dbInfo.db = null;\\n                    forage._dbInfo.version = newVersion;\\n                }\\n\\n                var dropObjectPromise = new Promise$1(function (resolve, reject) {\\n                    var req = idb.open(options.name, newVersion);\\n\\n                    req.onerror = function (err) {\\n                        var db = req.result;\\n                        db.close();\\n                        reject(err);\\n                    };\\n\\n                    req.onupgradeneeded = function () {\\n                        var db = req.result;\\n                        db.deleteObjectStore(options.storeName);\\n                    };\\n\\n                    req.onsuccess = function () {\\n                        var db = req.result;\\n                        db.close();\\n                        resolve(db);\\n                    };\\n                });\\n\\n                return dropObjectPromise.then(function (db) {\\n                    dbContext.db = db;\\n                    for (var j = 0; j < forages.length; j++) {\\n                        var _forage2 = forages[j];\\n                        _forage2._dbInfo.db = db;\\n                        _advanceReadiness(_forage2._dbInfo);\\n                    }\\n                })[\\\"catch\\\"](function (err) {\\n                    (_rejectReadiness(options, err) || Promise$1.resolve())[\\\"catch\\\"](function () {});\\n                    throw err;\\n                });\\n            });\\n        }\\n    }\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nvar asyncStorage = {\\n    _driver: 'asyncStorage',\\n    _initStorage: _initStorage,\\n    _support: isIndexedDBValid(),\\n    iterate: iterate,\\n    getItem: getItem,\\n    setItem: setItem,\\n    removeItem: removeItem,\\n    clear: clear,\\n    length: length,\\n    key: key,\\n    keys: keys,\\n    dropInstance: dropInstance\\n};\\n\\nfunction isWebSQLValid() {\\n    return typeof openDatabase === 'function';\\n}\\n\\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\\n// it to Base64, so this is how we store it to prevent very strange errors with less\\n// verbose ways of binary <-> string data storage.\\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\\n\\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\\n\\nvar SERIALIZED_MARKER = '__lfsc__:';\\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\\n\\n// OMG the serializations!\\nvar TYPE_ARRAYBUFFER = 'arbf';\\nvar TYPE_BLOB = 'blob';\\nvar TYPE_INT8ARRAY = 'si08';\\nvar TYPE_UINT8ARRAY = 'ui08';\\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\\nvar TYPE_INT16ARRAY = 'si16';\\nvar TYPE_INT32ARRAY = 'si32';\\nvar TYPE_UINT16ARRAY = 'ur16';\\nvar TYPE_UINT32ARRAY = 'ui32';\\nvar TYPE_FLOAT32ARRAY = 'fl32';\\nvar TYPE_FLOAT64ARRAY = 'fl64';\\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\\n\\nvar toString$1 = Object.prototype.toString;\\n\\nfunction stringToBuffer(serializedString) {\\n    // Fill the string into a ArrayBuffer.\\n    var bufferLength = serializedString.length * 0.75;\\n    var len = serializedString.length;\\n    var i;\\n    var p = 0;\\n    var encoded1, encoded2, encoded3, encoded4;\\n\\n    if (serializedString[serializedString.length - 1] === '=') {\\n        bufferLength--;\\n        if (serializedString[serializedString.length - 2] === '=') {\\n            bufferLength--;\\n        }\\n    }\\n\\n    var buffer = new ArrayBuffer(bufferLength);\\n    var bytes = new Uint8Array(buffer);\\n\\n    for (i = 0; i < len; i += 4) {\\n        encoded1 = BASE_CHARS.indexOf(serializedString[i]);\\n        encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\\n        encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\\n        encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\\n\\n        /*jslint bitwise: true */\\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 buffer;\\n}\\n\\n// Converts a buffer to a string to store, serialized, in the backend\\n// storage library.\\nfunction bufferToString(buffer) {\\n    // base64-arraybuffer\\n    var bytes = new Uint8Array(buffer);\\n    var base64String = '';\\n    var i;\\n\\n    for (i = 0; i < bytes.length; i += 3) {\\n        /*jslint bitwise: true */\\n        base64String += BASE_CHARS[bytes[i] >> 2];\\n        base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\\n        base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\\n        base64String += BASE_CHARS[bytes[i + 2] & 63];\\n    }\\n\\n    if (bytes.length % 3 === 2) {\\n        base64String = base64String.substring(0, base64String.length - 1) + '=';\\n    } else if (bytes.length % 3 === 1) {\\n        base64String = base64String.substring(0, base64String.length - 2) + '==';\\n    }\\n\\n    return base64String;\\n}\\n\\n// Serialize a value, afterwards executing a callback (which usually\\n// instructs the `setItem()` callback/promise to be executed). This is how\\n// we store binary data with localStorage.\\nfunction serialize(value, callback) {\\n    var valueType = '';\\n    if (value) {\\n        valueType = toString$1.call(value);\\n    }\\n\\n    // Cannot use `value instanceof ArrayBuffer` or such here, as these\\n    // checks fail when running the tests using casper.js...\\n    //\\n    // TODO: See why those tests fail and use a better solution.\\n    if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\\n        // Convert binary arrays to a string and prefix the string with\\n        // a special marker.\\n        var buffer;\\n        var marker = SERIALIZED_MARKER;\\n\\n        if (value instanceof ArrayBuffer) {\\n            buffer = value;\\n            marker += TYPE_ARRAYBUFFER;\\n        } else {\\n            buffer = value.buffer;\\n\\n            if (valueType === '[object Int8Array]') {\\n                marker += TYPE_INT8ARRAY;\\n            } else if (valueType === '[object Uint8Array]') {\\n                marker += TYPE_UINT8ARRAY;\\n            } else if (valueType === '[object Uint8ClampedArray]') {\\n                marker += TYPE_UINT8CLAMPEDARRAY;\\n            } else if (valueType === '[object Int16Array]') {\\n                marker += TYPE_INT16ARRAY;\\n            } else if (valueType === '[object Uint16Array]') {\\n                marker += TYPE_UINT16ARRAY;\\n            } else if (valueType === '[object Int32Array]') {\\n                marker += TYPE_INT32ARRAY;\\n            } else if (valueType === '[object Uint32Array]') {\\n                marker += TYPE_UINT32ARRAY;\\n            } else if (valueType === '[object Float32Array]') {\\n                marker += TYPE_FLOAT32ARRAY;\\n            } else if (valueType === '[object Float64Array]') {\\n                marker += TYPE_FLOAT64ARRAY;\\n            } else {\\n                callback(new Error('Failed to get type for BinaryArray'));\\n            }\\n        }\\n\\n        callback(marker + bufferToString(buffer));\\n    } else if (valueType === '[object Blob]') {\\n        // Conver the blob to a binaryArray and then to a string.\\n        var fileReader = new FileReader();\\n\\n        fileReader.onload = function () {\\n            // Backwards-compatible prefix for the blob type.\\n            var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\\n\\n            callback(SERIALIZED_MARKER + TYPE_BLOB + str);\\n        };\\n\\n        fileReader.readAsArrayBuffer(value);\\n    } else {\\n        try {\\n            callback(JSON.stringify(value));\\n        } catch (e) {\\n            console.error(\\\"Couldn't convert value into a JSON string: \\\", value);\\n\\n            callback(null, e);\\n        }\\n    }\\n}\\n\\n// Deserialize data we've inserted into a value column/field. We place\\n// special markers into our strings to mark them as encoded; this isn't\\n// as nice as a meta field, but it's the only sane thing we can do whilst\\n// keeping localStorage support intact.\\n//\\n// Oftentimes this will just deserialize JSON content, but if we have a\\n// special marker (SERIALIZED_MARKER, defined above), we will extract\\n// some kind of arraybuffer/binary data/typed array out of the string.\\nfunction deserialize(value) {\\n    // If we haven't marked this string as being specially serialized (i.e.\\n    // something other than serialized JSON), we can just return it and be\\n    // done with it.\\n    if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\\n        return JSON.parse(value);\\n    }\\n\\n    // The following code deals with deserializing some kind of Blob or\\n    // TypedArray. First we separate out the type of data we're dealing\\n    // with from the data itself.\\n    var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\\n    var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\\n\\n    var blobType;\\n    // Backwards-compatible blob type serialization strategy.\\n    // DBs created with older versions of localForage will simply not have the blob type.\\n    if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\\n        var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\\n        blobType = matcher[1];\\n        serializedString = serializedString.substring(matcher[0].length);\\n    }\\n    var buffer = stringToBuffer(serializedString);\\n\\n    // Return the right type based on the code/type set during\\n    // serialization.\\n    switch (type) {\\n        case TYPE_ARRAYBUFFER:\\n            return buffer;\\n        case TYPE_BLOB:\\n            return createBlob([buffer], { type: blobType });\\n        case TYPE_INT8ARRAY:\\n            return new Int8Array(buffer);\\n        case TYPE_UINT8ARRAY:\\n            return new Uint8Array(buffer);\\n        case TYPE_UINT8CLAMPEDARRAY:\\n            return new Uint8ClampedArray(buffer);\\n        case TYPE_INT16ARRAY:\\n            return new Int16Array(buffer);\\n        case TYPE_UINT16ARRAY:\\n            return new Uint16Array(buffer);\\n        case TYPE_INT32ARRAY:\\n            return new Int32Array(buffer);\\n        case TYPE_UINT32ARRAY:\\n            return new Uint32Array(buffer);\\n        case TYPE_FLOAT32ARRAY:\\n            return new Float32Array(buffer);\\n        case TYPE_FLOAT64ARRAY:\\n            return new Float64Array(buffer);\\n        default:\\n            throw new Error('Unkown type: ' + type);\\n    }\\n}\\n\\nvar localforageSerializer = {\\n    serialize: serialize,\\n    deserialize: deserialize,\\n    stringToBuffer: stringToBuffer,\\n    bufferToString: bufferToString\\n};\\n\\n/*\\n * Includes code from:\\n *\\n * base64-arraybuffer\\n * https://github.com/niklasvh/base64-arraybuffer\\n *\\n * Copyright (c) 2012 Niklas von Hertzen\\n * Licensed under the MIT license.\\n */\\n\\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\\n    t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\\n}\\n\\n// Open the WebSQL database (automatically creates one if one didn't\\n// previously exist), using any options set in the config.\\nfunction _initStorage$1(options) {\\n    var self = this;\\n    var dbInfo = {\\n        db: null\\n    };\\n\\n    if (options) {\\n        for (var i in options) {\\n            dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\\n        }\\n    }\\n\\n    var dbInfoPromise = new Promise$1(function (resolve, reject) {\\n        // Open the database; the openDatabase API will automatically\\n        // create it for us if it doesn't exist.\\n        try {\\n            dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\\n        } catch (e) {\\n            return reject(e);\\n        }\\n\\n        // Create our key/value table if it doesn't exist.\\n        dbInfo.db.transaction(function (t) {\\n            createDbTable(t, dbInfo, function () {\\n                self._dbInfo = dbInfo;\\n                resolve();\\n            }, function (t, error) {\\n                reject(error);\\n            });\\n        }, reject);\\n    });\\n\\n    dbInfo.serializer = localforageSerializer;\\n    return dbInfoPromise;\\n}\\n\\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\\n    t.executeSql(sqlStatement, args, callback, function (t, error) {\\n        if (error.code === error.SYNTAX_ERR) {\\n            t.executeSql('SELECT name FROM sqlite_master ' + \\\"WHERE type='table' AND name = ?\\\", [dbInfo.storeName], function (t, results) {\\n                if (!results.rows.length) {\\n                    // if the table is missing (was deleted)\\n                    // re-create it table and retry\\n                    createDbTable(t, dbInfo, function () {\\n                        t.executeSql(sqlStatement, args, callback, errorCallback);\\n                    }, errorCallback);\\n                } else {\\n                    errorCallback(t, error);\\n                }\\n            }, errorCallback);\\n        } else {\\n            errorCallback(t, error);\\n        }\\n    }, errorCallback);\\n}\\n\\nfunction getItem$1(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\\n                    var result = results.rows.length ? results.rows.item(0).value : null;\\n\\n                    // Check to see if this is serialized content we need to\\n                    // unpack.\\n                    if (result) {\\n                        result = dbInfo.serializer.deserialize(result);\\n                    }\\n\\n                    resolve(result);\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction iterate$1(iterator, callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\\n                    var rows = results.rows;\\n                    var length = rows.length;\\n\\n                    for (var i = 0; i < length; i++) {\\n                        var item = rows.item(i);\\n                        var result = item.value;\\n\\n                        // Check to see if this is serialized content\\n                        // we need to unpack.\\n                        if (result) {\\n                            result = dbInfo.serializer.deserialize(result);\\n                        }\\n\\n                        result = iterator(result, item.key, i + 1);\\n\\n                        // void(0) prevents problems with redefinition\\n                        // of `undefined`.\\n                        if (result !== void 0) {\\n                            resolve(result);\\n                            return;\\n                        }\\n                    }\\n\\n                    resolve();\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction _setItem(key, value, callback, retriesLeft) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            // The localStorage API doesn't return undefined values in an\\n            // \\\"expected\\\" way, so undefined is always cast to null in all\\n            // drivers. See: https://github.com/mozilla/localForage/pull/42\\n            if (value === undefined) {\\n                value = null;\\n            }\\n\\n            // Save the original value to pass to the callback.\\n            var originalValue = value;\\n\\n            var dbInfo = self._dbInfo;\\n            dbInfo.serializer.serialize(value, function (value, error) {\\n                if (error) {\\n                    reject(error);\\n                } else {\\n                    dbInfo.db.transaction(function (t) {\\n                        tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\\n                            resolve(originalValue);\\n                        }, function (t, error) {\\n                            reject(error);\\n                        });\\n                    }, function (sqlError) {\\n                        // The transaction failed; check\\n                        // to see if it's a quota error.\\n                        if (sqlError.code === sqlError.QUOTA_ERR) {\\n                            // We reject the callback outright for now, but\\n                            // it's worth trying to re-run the transaction.\\n                            // Even if the user accepts the prompt to use\\n                            // more storage on Safari, this error will\\n                            // be called.\\n                            //\\n                            // Try to re-run the transaction.\\n                            if (retriesLeft > 0) {\\n                                resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\\n                                return;\\n                            }\\n                            reject(sqlError);\\n                        }\\n                    });\\n                }\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction setItem$1(key, value, callback) {\\n    return _setItem.apply(this, [key, value, callback, 1]);\\n}\\n\\nfunction removeItem$1(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\\n                    resolve();\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Deletes every item in the table.\\n// TODO: Find out if this resets the AUTO_INCREMENT number.\\nfunction clear$1(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\\n                    resolve();\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Does a simple `COUNT(key)` to get the number of items stored in\\n// localForage.\\nfunction length$1(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                // Ahhh, SQL makes this one soooooo easy.\\n                tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\\n                    var result = results.rows.item(0).c;\\n                    resolve(result);\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Return the key located at key index X; essentially gets the key from a\\n// `WHERE id = ?`. This is the most efficient way I can think to implement\\n// this rarely-used (in my experience) part of the API, but it can seem\\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\\n// the ID of each key will change every time it's updated. Perhaps a stored\\n// procedure for the `setItem()` SQL would solve this problem?\\n// TODO: Don't change ID on `setItem()`.\\nfunction key$1(n, callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\\n                    var result = results.rows.length ? results.rows.item(0).key : null;\\n                    resolve(result);\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction keys$1(callback) {\\n    var self = this;\\n\\n    var promise = new Promise$1(function (resolve, reject) {\\n        self.ready().then(function () {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.db.transaction(function (t) {\\n                tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\\n                    var keys = [];\\n\\n                    for (var i = 0; i < results.rows.length; i++) {\\n                        keys.push(results.rows.item(i).key);\\n                    }\\n\\n                    resolve(keys);\\n                }, function (t, error) {\\n                    reject(error);\\n                });\\n            });\\n        })[\\\"catch\\\"](reject);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// https://www.w3.org/TR/webdatabase/#databases\\n// > There is no way to enumerate or delete the databases available for an origin from this API.\\nfunction getAllStoreNames(db) {\\n    return new Promise$1(function (resolve, reject) {\\n        db.transaction(function (t) {\\n            t.executeSql('SELECT name FROM sqlite_master ' + \\\"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\\\", [], function (t, results) {\\n                var storeNames = [];\\n\\n                for (var i = 0; i < results.rows.length; i++) {\\n                    storeNames.push(results.rows.item(i).name);\\n                }\\n\\n                resolve({\\n                    db: db,\\n                    storeNames: storeNames\\n                });\\n            }, function (t, error) {\\n                reject(error);\\n            });\\n        }, function (sqlError) {\\n            reject(sqlError);\\n        });\\n    });\\n}\\n\\nfunction dropInstance$1(options, callback) {\\n    callback = getCallback.apply(this, arguments);\\n\\n    var currentConfig = this.config();\\n    options = typeof options !== 'function' && options || {};\\n    if (!options.name) {\\n        options.name = options.name || currentConfig.name;\\n        options.storeName = options.storeName || currentConfig.storeName;\\n    }\\n\\n    var self = this;\\n    var promise;\\n    if (!options.name) {\\n        promise = Promise$1.reject('Invalid arguments');\\n    } else {\\n        promise = new Promise$1(function (resolve) {\\n            var db;\\n            if (options.name === currentConfig.name) {\\n                // use the db reference of the current instance\\n                db = self._dbInfo.db;\\n            } else {\\n                db = openDatabase(options.name, '', '', 0);\\n            }\\n\\n            if (!options.storeName) {\\n                // drop all database tables\\n                resolve(getAllStoreNames(db));\\n            } else {\\n                resolve({\\n                    db: db,\\n                    storeNames: [options.storeName]\\n                });\\n            }\\n        }).then(function (operationInfo) {\\n            return new Promise$1(function (resolve, reject) {\\n                operationInfo.db.transaction(function (t) {\\n                    function dropTable(storeName) {\\n                        return new Promise$1(function (resolve, reject) {\\n                            t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\\n                                resolve();\\n                            }, function (t, error) {\\n                                reject(error);\\n                            });\\n                        });\\n                    }\\n\\n                    var operations = [];\\n                    for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\\n                        operations.push(dropTable(operationInfo.storeNames[i]));\\n                    }\\n\\n                    Promise$1.all(operations).then(function () {\\n                        resolve();\\n                    })[\\\"catch\\\"](function (e) {\\n                        reject(e);\\n                    });\\n                }, function (sqlError) {\\n                    reject(sqlError);\\n                });\\n            });\\n        });\\n    }\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nvar webSQLStorage = {\\n    _driver: 'webSQLStorage',\\n    _initStorage: _initStorage$1,\\n    _support: isWebSQLValid(),\\n    iterate: iterate$1,\\n    getItem: getItem$1,\\n    setItem: setItem$1,\\n    removeItem: removeItem$1,\\n    clear: clear$1,\\n    length: length$1,\\n    key: key$1,\\n    keys: keys$1,\\n    dropInstance: dropInstance$1\\n};\\n\\nfunction isLocalStorageValid() {\\n    try {\\n        return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\\n        // in IE8 typeof localStorage.setItem === 'object'\\n        !!localStorage.setItem;\\n    } catch (e) {\\n        return false;\\n    }\\n}\\n\\nfunction _getKeyPrefix(options, defaultConfig) {\\n    var keyPrefix = options.name + '/';\\n\\n    if (options.storeName !== defaultConfig.storeName) {\\n        keyPrefix += options.storeName + '/';\\n    }\\n    return keyPrefix;\\n}\\n\\n// Check if localStorage throws when saving an item\\nfunction checkIfLocalStorageThrows() {\\n    var localStorageTestKey = '_localforage_support_test';\\n\\n    try {\\n        localStorage.setItem(localStorageTestKey, true);\\n        localStorage.removeItem(localStorageTestKey);\\n\\n        return false;\\n    } catch (e) {\\n        return true;\\n    }\\n}\\n\\n// Check if localStorage is usable and allows to save an item\\n// This method checks if localStorage is usable in Safari Private Browsing\\n// mode, or in any other case where the available quota for localStorage\\n// is 0 and there wasn't any saved items yet.\\nfunction _isLocalStorageUsable() {\\n    return !checkIfLocalStorageThrows() || localStorage.length > 0;\\n}\\n\\n// Config the localStorage backend, using options set in the config.\\nfunction _initStorage$2(options) {\\n    var self = this;\\n    var dbInfo = {};\\n    if (options) {\\n        for (var i in options) {\\n            dbInfo[i] = options[i];\\n        }\\n    }\\n\\n    dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\\n\\n    if (!_isLocalStorageUsable()) {\\n        return Promise$1.reject();\\n    }\\n\\n    self._dbInfo = dbInfo;\\n    dbInfo.serializer = localforageSerializer;\\n\\n    return Promise$1.resolve();\\n}\\n\\n// Remove all keys from the datastore, effectively destroying all data in\\n// the app's key/value store!\\nfunction clear$2(callback) {\\n    var self = this;\\n    var promise = self.ready().then(function () {\\n        var keyPrefix = self._dbInfo.keyPrefix;\\n\\n        for (var i = localStorage.length - 1; i >= 0; i--) {\\n            var key = localStorage.key(i);\\n\\n            if (key.indexOf(keyPrefix) === 0) {\\n                localStorage.removeItem(key);\\n            }\\n        }\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Retrieve an item from the store. Unlike the original async_storage\\n// library in Gaia, we don't modify return values at all. If a key's value\\n// is `undefined`, we pass that value to the callback function.\\nfunction getItem$2(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = self.ready().then(function () {\\n        var dbInfo = self._dbInfo;\\n        var result = localStorage.getItem(dbInfo.keyPrefix + key);\\n\\n        // If a result was found, parse it from the serialized\\n        // string into a JS object. If result isn't truthy, the key\\n        // is likely undefined and we'll pass it straight to the\\n        // callback.\\n        if (result) {\\n            result = dbInfo.serializer.deserialize(result);\\n        }\\n\\n        return result;\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Iterate over all items in the store.\\nfunction iterate$2(iterator, callback) {\\n    var self = this;\\n\\n    var promise = self.ready().then(function () {\\n        var dbInfo = self._dbInfo;\\n        var keyPrefix = dbInfo.keyPrefix;\\n        var keyPrefixLength = keyPrefix.length;\\n        var length = localStorage.length;\\n\\n        // We use a dedicated iterator instead of the `i` variable below\\n        // so other keys we fetch in localStorage aren't counted in\\n        // the `iterationNumber` argument passed to the `iterate()`\\n        // callback.\\n        //\\n        // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\\n        var iterationNumber = 1;\\n\\n        for (var i = 0; i < length; i++) {\\n            var key = localStorage.key(i);\\n            if (key.indexOf(keyPrefix) !== 0) {\\n                continue;\\n            }\\n            var value = localStorage.getItem(key);\\n\\n            // If a result was found, parse it from the serialized\\n            // string into a JS object. If result isn't truthy, the\\n            // key is likely undefined and we'll pass it straight\\n            // to the iterator.\\n            if (value) {\\n                value = dbInfo.serializer.deserialize(value);\\n            }\\n\\n            value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\\n\\n            if (value !== void 0) {\\n                return value;\\n            }\\n        }\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Same as localStorage's key() method, except takes a callback.\\nfunction key$2(n, callback) {\\n    var self = this;\\n    var promise = self.ready().then(function () {\\n        var dbInfo = self._dbInfo;\\n        var result;\\n        try {\\n            result = localStorage.key(n);\\n        } catch (error) {\\n            result = null;\\n        }\\n\\n        // Remove the prefix from the key, if a key is found.\\n        if (result) {\\n            result = result.substring(dbInfo.keyPrefix.length);\\n        }\\n\\n        return result;\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction keys$2(callback) {\\n    var self = this;\\n    var promise = self.ready().then(function () {\\n        var dbInfo = self._dbInfo;\\n        var length = localStorage.length;\\n        var keys = [];\\n\\n        for (var i = 0; i < length; i++) {\\n            var itemKey = localStorage.key(i);\\n            if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\\n                keys.push(itemKey.substring(dbInfo.keyPrefix.length));\\n            }\\n        }\\n\\n        return keys;\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Supply the number of keys in the datastore to the callback function.\\nfunction length$2(callback) {\\n    var self = this;\\n    var promise = self.keys().then(function (keys) {\\n        return keys.length;\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Remove an item from the store, nice and simple.\\nfunction removeItem$2(key, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = self.ready().then(function () {\\n        var dbInfo = self._dbInfo;\\n        localStorage.removeItem(dbInfo.keyPrefix + key);\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\n// Set a key's value and run an optional callback once the value is set.\\n// Unlike Gaia's implementation, the callback function is passed the value,\\n// in case you want to operate on that value only after you're sure it\\n// saved, or something like that.\\nfunction setItem$2(key, value, callback) {\\n    var self = this;\\n\\n    key = normalizeKey(key);\\n\\n    var promise = self.ready().then(function () {\\n        // Convert undefined values to null.\\n        // https://github.com/mozilla/localForage/pull/42\\n        if (value === undefined) {\\n            value = null;\\n        }\\n\\n        // Save the original value to pass to the callback.\\n        var originalValue = value;\\n\\n        return new Promise$1(function (resolve, reject) {\\n            var dbInfo = self._dbInfo;\\n            dbInfo.serializer.serialize(value, function (value, error) {\\n                if (error) {\\n                    reject(error);\\n                } else {\\n                    try {\\n                        localStorage.setItem(dbInfo.keyPrefix + key, value);\\n                        resolve(originalValue);\\n                    } catch (e) {\\n                        // localStorage capacity exceeded.\\n                        // TODO: Make this a specific error/event.\\n                        if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\\n                            reject(e);\\n                        }\\n                        reject(e);\\n                    }\\n                }\\n            });\\n        });\\n    });\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nfunction dropInstance$2(options, callback) {\\n    callback = getCallback.apply(this, arguments);\\n\\n    options = typeof options !== 'function' && options || {};\\n    if (!options.name) {\\n        var currentConfig = this.config();\\n        options.name = options.name || currentConfig.name;\\n        options.storeName = options.storeName || currentConfig.storeName;\\n    }\\n\\n    var self = this;\\n    var promise;\\n    if (!options.name) {\\n        promise = Promise$1.reject('Invalid arguments');\\n    } else {\\n        promise = new Promise$1(function (resolve) {\\n            if (!options.storeName) {\\n                resolve(options.name + '/');\\n            } else {\\n                resolve(_getKeyPrefix(options, self._defaultConfig));\\n            }\\n        }).then(function (keyPrefix) {\\n            for (var i = localStorage.length - 1; i >= 0; i--) {\\n                var key = localStorage.key(i);\\n\\n                if (key.indexOf(keyPrefix) === 0) {\\n                    localStorage.removeItem(key);\\n                }\\n            }\\n        });\\n    }\\n\\n    executeCallback(promise, callback);\\n    return promise;\\n}\\n\\nvar localStorageWrapper = {\\n    _driver: 'localStorageWrapper',\\n    _initStorage: _initStorage$2,\\n    _support: isLocalStorageValid(),\\n    iterate: iterate$2,\\n    getItem: getItem$2,\\n    setItem: setItem$2,\\n    removeItem: removeItem$2,\\n    clear: clear$2,\\n    length: length$2,\\n    key: key$2,\\n    keys: keys$2,\\n    dropInstance: dropInstance$2\\n};\\n\\nvar sameValue = function sameValue(x, y) {\\n    return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\\n};\\n\\nvar includes = function includes(array, searchElement) {\\n    var len = array.length;\\n    var i = 0;\\n    while (i < len) {\\n        if (sameValue(array[i], searchElement)) {\\n            return true;\\n        }\\n        i++;\\n    }\\n\\n    return false;\\n};\\n\\nvar isArray = Array.isArray || function (arg) {\\n    return Object.prototype.toString.call(arg) === '[object Array]';\\n};\\n\\n// Drivers are stored here when `defineDriver()` is called.\\n// They are shared across all instances of localForage.\\nvar DefinedDrivers = {};\\n\\nvar DriverSupport = {};\\n\\nvar DefaultDrivers = {\\n    INDEXEDDB: asyncStorage,\\n    WEBSQL: webSQLStorage,\\n    LOCALSTORAGE: localStorageWrapper\\n};\\n\\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\\n\\nvar OptionalDriverMethods = ['dropInstance'];\\n\\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\\n\\nvar DefaultConfig = {\\n    description: '',\\n    driver: DefaultDriverOrder.slice(),\\n    name: 'localforage',\\n    // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\\n    // we can use without a prompt.\\n    size: 4980736,\\n    storeName: 'keyvaluepairs',\\n    version: 1.0\\n};\\n\\nfunction callWhenReady(localForageInstance, libraryMethod) {\\n    localForageInstance[libraryMethod] = function () {\\n        var _args = arguments;\\n        return localForageInstance.ready().then(function () {\\n            return localForageInstance[libraryMethod].apply(localForageInstance, _args);\\n        });\\n    };\\n}\\n\\nfunction extend() {\\n    for (var i = 1; i < arguments.length; i++) {\\n        var arg = arguments[i];\\n\\n        if (arg) {\\n            for (var _key in arg) {\\n                if (arg.hasOwnProperty(_key)) {\\n                    if (isArray(arg[_key])) {\\n                        arguments[0][_key] = arg[_key].slice();\\n                    } else {\\n                        arguments[0][_key] = arg[_key];\\n                    }\\n                }\\n            }\\n        }\\n    }\\n\\n    return arguments[0];\\n}\\n\\nvar LocalForage = function () {\\n    function LocalForage(options) {\\n        _classCallCheck(this, LocalForage);\\n\\n        for (var driverTypeKey in DefaultDrivers) {\\n            if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\\n                var driver = DefaultDrivers[driverTypeKey];\\n                var driverName = driver._driver;\\n                this[driverTypeKey] = driverName;\\n\\n                if (!DefinedDrivers[driverName]) {\\n                    // we don't need to wait for the promise,\\n                    // since the default drivers can be defined\\n                    // in a blocking manner\\n                    this.defineDriver(driver);\\n                }\\n            }\\n        }\\n\\n        this._defaultConfig = extend({}, DefaultConfig);\\n        this._config = extend({}, this._defaultConfig, options);\\n        this._driverSet = null;\\n        this._initDriver = null;\\n        this._ready = false;\\n        this._dbInfo = null;\\n\\n        this._wrapLibraryMethodsWithReady();\\n        this.setDriver(this._config.driver)[\\\"catch\\\"](function () {});\\n    }\\n\\n    // Set any config values for localForage; can be called anytime before\\n    // the first API call (e.g. `getItem`, `setItem`).\\n    // We loop through options so we don't overwrite existing config\\n    // values.\\n\\n\\n    LocalForage.prototype.config = function config(options) {\\n        // If the options argument is an object, we use it to set values.\\n        // Otherwise, we return either a specified config value or all\\n        // config values.\\n        if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\\n            // If localforage is ready and fully initialized, we can't set\\n            // any new configuration values. Instead, we return an error.\\n            if (this._ready) {\\n                return new Error(\\\"Can't call config() after localforage \\\" + 'has been used.');\\n            }\\n\\n            for (var i in options) {\\n                if (i === 'storeName') {\\n                    options[i] = options[i].replace(/\\\\W/g, '_');\\n                }\\n\\n                if (i === 'version' && typeof options[i] !== 'number') {\\n                    return new Error('Database version must be a number.');\\n                }\\n\\n                this._config[i] = options[i];\\n            }\\n\\n            // after all config options are set and\\n            // the driver option is used, try setting it\\n            if ('driver' in options && options.driver) {\\n                return this.setDriver(this._config.driver);\\n            }\\n\\n            return true;\\n        } else if (typeof options === 'string') {\\n            return this._config[options];\\n        } else {\\n            return this._config;\\n        }\\n    };\\n\\n    // Used to define a custom driver, shared across all instances of\\n    // localForage.\\n\\n\\n    LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\\n        var promise = new Promise$1(function (resolve, reject) {\\n            try {\\n                var driverName = driverObject._driver;\\n                var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\\n\\n                // A driver name should be defined and not overlap with the\\n                // library-defined, default drivers.\\n                if (!driverObject._driver) {\\n                    reject(complianceError);\\n                    return;\\n                }\\n\\n                var driverMethods = LibraryMethods.concat('_initStorage');\\n                for (var i = 0, len = driverMethods.length; i < len; i++) {\\n                    var driverMethodName = driverMethods[i];\\n\\n                    // when the property is there,\\n                    // it should be a method even when optional\\n                    var isRequired = !includes(OptionalDriverMethods, driverMethodName);\\n                    if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\\n                        reject(complianceError);\\n                        return;\\n                    }\\n                }\\n\\n                var configureMissingMethods = function configureMissingMethods() {\\n                    var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\\n                        return function () {\\n                            var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\\n                            var promise = Promise$1.reject(error);\\n                            executeCallback(promise, arguments[arguments.length - 1]);\\n                            return promise;\\n                        };\\n                    };\\n\\n                    for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\\n                        var optionalDriverMethod = OptionalDriverMethods[_i];\\n                        if (!driverObject[optionalDriverMethod]) {\\n                            driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\\n                        }\\n                    }\\n                };\\n\\n                configureMissingMethods();\\n\\n                var setDriverSupport = function setDriverSupport(support) {\\n                    if (DefinedDrivers[driverName]) {\\n                        console.info('Redefining LocalForage driver: ' + driverName);\\n                    }\\n                    DefinedDrivers[driverName] = driverObject;\\n                    DriverSupport[driverName] = support;\\n                    // don't use a then, so that we can define\\n                    // drivers that have simple _support methods\\n                    // in a blocking manner\\n                    resolve();\\n                };\\n\\n                if ('_support' in driverObject) {\\n                    if (driverObject._support && typeof driverObject._support === 'function') {\\n                        driverObject._support().then(setDriverSupport, reject);\\n                    } else {\\n                        setDriverSupport(!!driverObject._support);\\n                    }\\n                } else {\\n                    setDriverSupport(true);\\n                }\\n            } catch (e) {\\n                reject(e);\\n            }\\n        });\\n\\n        executeTwoCallbacks(promise, callback, errorCallback);\\n        return promise;\\n    };\\n\\n    LocalForage.prototype.driver = function driver() {\\n        return this._driver || null;\\n    };\\n\\n    LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\\n        var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\\n\\n        executeTwoCallbacks(getDriverPromise, callback, errorCallback);\\n        return getDriverPromise;\\n    };\\n\\n    LocalForage.prototype.getSerializer = function getSerializer(callback) {\\n        var serializerPromise = Promise$1.resolve(localforageSerializer);\\n        executeTwoCallbacks(serializerPromise, callback);\\n        return serializerPromise;\\n    };\\n\\n    LocalForage.prototype.ready = function ready(callback) {\\n        var self = this;\\n\\n        var promise = self._driverSet.then(function () {\\n            if (self._ready === null) {\\n                self._ready = self._initDriver();\\n            }\\n\\n            return self._ready;\\n        });\\n\\n        executeTwoCallbacks(promise, callback, callback);\\n        return promise;\\n    };\\n\\n    LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\\n        var self = this;\\n\\n        if (!isArray(drivers)) {\\n            drivers = [drivers];\\n        }\\n\\n        var supportedDrivers = this._getSupportedDrivers(drivers);\\n\\n        function setDriverToConfig() {\\n            self._config.driver = self.driver();\\n        }\\n\\n        function extendSelfWithDriver(driver) {\\n            self._extend(driver);\\n            setDriverToConfig();\\n\\n            self._ready = self._initStorage(self._config);\\n            return self._ready;\\n        }\\n\\n        function initDriver(supportedDrivers) {\\n            return function () {\\n                var currentDriverIndex = 0;\\n\\n                function driverPromiseLoop() {\\n                    while (currentDriverIndex < supportedDrivers.length) {\\n                        var driverName = supportedDrivers[currentDriverIndex];\\n                        currentDriverIndex++;\\n\\n                        self._dbInfo = null;\\n                        self._ready = null;\\n\\n                        return self.getDriver(driverName).then(extendSelfWithDriver)[\\\"catch\\\"](driverPromiseLoop);\\n                    }\\n\\n                    setDriverToConfig();\\n                    var error = new Error('No available storage method found.');\\n                    self._driverSet = Promise$1.reject(error);\\n                    return self._driverSet;\\n                }\\n\\n                return driverPromiseLoop();\\n            };\\n        }\\n\\n        // There might be a driver initialization in progress\\n        // so wait for it to finish in order to avoid a possible\\n        // race condition to set _dbInfo\\n        var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\\\"catch\\\"](function () {\\n            return Promise$1.resolve();\\n        }) : Promise$1.resolve();\\n\\n        this._driverSet = oldDriverSetDone.then(function () {\\n            var driverName = supportedDrivers[0];\\n            self._dbInfo = null;\\n            self._ready = null;\\n\\n            return self.getDriver(driverName).then(function (driver) {\\n                self._driver = driver._driver;\\n                setDriverToConfig();\\n                self._wrapLibraryMethodsWithReady();\\n                self._initDriver = initDriver(supportedDrivers);\\n            });\\n        })[\\\"catch\\\"](function () {\\n            setDriverToConfig();\\n            var error = new Error('No available storage method found.');\\n            self._driverSet = Promise$1.reject(error);\\n            return self._driverSet;\\n        });\\n\\n        executeTwoCallbacks(this._driverSet, callback, errorCallback);\\n        return this._driverSet;\\n    };\\n\\n    LocalForage.prototype.supports = function supports(driverName) {\\n        return !!DriverSupport[driverName];\\n    };\\n\\n    LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\\n        extend(this, libraryMethodsAndProperties);\\n    };\\n\\n    LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\\n        var supportedDrivers = [];\\n        for (var i = 0, len = drivers.length; i < len; i++) {\\n            var driverName = drivers[i];\\n            if (this.supports(driverName)) {\\n                supportedDrivers.push(driverName);\\n            }\\n        }\\n        return supportedDrivers;\\n    };\\n\\n    LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\\n        // Add a stub for each driver API method that delays the call to the\\n        // corresponding driver method until localForage is ready. These stubs\\n        // will be replaced by the driver methods as soon as the driver is\\n        // loaded, so there is no performance impact.\\n        for (var i = 0, len = LibraryMethods.length; i < len; i++) {\\n            callWhenReady(this, LibraryMethods[i]);\\n        }\\n    };\\n\\n    LocalForage.prototype.createInstance = function createInstance(options) {\\n        return new LocalForage(options);\\n    };\\n\\n    return LocalForage;\\n}();\\n\\n// The actual localForage object that we expose as a module or via a\\n// global. It's extended by pulling in one of our other libraries.\\n\\n\\nvar localforage_js = new LocalForage();\\n\\nmodule.exports = localforage_js;\\n\\n},{\\\"3\\\":3}]},{},[4])(4)\\n});\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/localforage/dist/localforage.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/dist/microphone-stream.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/microphone-stream/dist/microphone-stream.js ***!\n  \\******************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\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        extendStatics(d, b);\\n        function __() { this.constructor = d; }\\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\n    };\\n})();\\nvar __importDefault = (this && this.__importDefault) || function (mod) {\\n    return (mod && mod.__esModule) ? mod : { \\\"default\\\": mod };\\n};\\nObject.defineProperty(exports, \\\"__esModule\\\", ({ value: true }));\\nvar readable_stream_1 = __webpack_require__(/*! readable-stream */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/readable-browser.js\\\");\\n// some versions of the buffer browser lib don't support Buffer.from (such as the one included by the\\n// current version of express-browserify)\\nvar buffer_from_1 = __importDefault(__webpack_require__(/*! buffer-from */ \\\"./node_modules/buffer-from/index.js\\\"));\\n/**\\n * Turns a MediaStream object (from getUserMedia) into a Node.js Readable stream\\n * and optionally converts the audio to Buffers\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia\\n */\\nvar MicrophoneStream = /** @class */ (function (_super) {\\n    __extends(MicrophoneStream, _super);\\n    /**\\n     * Turns a MediaStream object (from getUserMedia) into a Node.js Readable stream\\n     * and optionally converts the audio to Buffers\\n     *\\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia\\n     *\\n     * @param {Object} [opts] options\\n     * @param {MediaStream} [opts.stream] https://developer.mozilla.org/en-US/docs/Web/API/MediaStream - for iOS compatibility, it is recommended that you create the MicrophoneStream instance in response to the tap - before you have a MediaStream, and then later call setStream() with the MediaStream.\\n     * @param {Boolean} [opts.objectMode=false] Puts the stream into ObjectMode where it emits AudioBuffers instead of Buffers - see https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer\\n     * @param {Number|null} [opts.bufferSize=null] https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createScriptProcessor\\n     * @param {AudioContext} [opts.context] - AudioContext - will be automatically created if not passed in\\n     * @constructor\\n     */\\n    function MicrophoneStream(opts) {\\n        if (opts === void 0) { opts = { objectMode: false }; }\\n        var _this = _super.call(this, { objectMode: opts.objectMode }) || this;\\n        _this.audioInput = null;\\n        _this.recording = true;\\n        var stream = opts.stream, objectMode = opts.objectMode, bufferSize = opts.bufferSize, context = opts.context;\\n        _this.objectMode = objectMode;\\n        // \\\"It is recommended for authors to not specify this buffer size and allow the implementation\\n        // to pick a good buffer size to balance between latency and audio quality.\\\"\\n        // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createScriptProcessor\\n        // however, webkitAudioContext (safari) requires it to be set'\\n        // Possible values: null, 256, 512, 1024, 2048, 4096, 8192, 16384\\n        _this.bufferSize =\\n            bufferSize || typeof window.AudioContext === \\\"undefined\\\" ? 4096 : null;\\n        // @ts-expect-error Property 'webkitAudioContext' does not exist on type 'Window & typeof globalThis'\\n        var AudioContext = window.AudioContext || window.webkitAudioContext;\\n        _this.context = context || new AudioContext();\\n        // We can only emit one channel's worth of audio, so only one input.\\n        // (Who has multiple microphones anyways?)\\n        var inputChannels = 1;\\n        // We shouldn't need any output channels (going back to the browser),\\n        // but chrome is buggy and won't give us any audio without one.\\n        var outputChannels = 1;\\n        _this.recorder = _this.context.createScriptProcessor(bufferSize, inputChannels, outputChannels);\\n        // Other half of workaround for chrome bugs.\\n        _this.recorder.connect(_this.context.destination);\\n        if (stream) {\\n            _this.setStream(stream);\\n        }\\n        setTimeout(function () {\\n            _this.emit(\\\"format\\\", {\\n                channels: 1,\\n                bitDepth: 32,\\n                sampleRate: _this.context.sampleRate,\\n                signed: true,\\n                float: true,\\n            });\\n        }, 0);\\n        return _this;\\n    }\\n    /**\\n     * Sets the MediaStream.\\n     *\\n     * This was separated from the constructor to enable better compatibility with Safari on iOS 11.\\n     *\\n     * Typically the stream is only available asynchronously, but the context must be created or\\n     * resumed directly in response to a user's tap on iOS.\\n     *\\n     * @param {MediaStream} stream https://developer.mozilla.org/en-US/docs/Web/API/MediaStream\\n     * @type {function(MediaStream): void}\\n     */\\n    MicrophoneStream.prototype.setStream = function (stream) {\\n        var _this = this;\\n        this.stream = stream;\\n        this.audioInput = this.context.createMediaStreamSource(stream);\\n        this.audioInput.connect(this.recorder);\\n        /**\\n         * Convert and emit the raw audio data\\n         * @see https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode/onaudioprocess\\n         * @param {AudioProcessingEvent} e https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent\\n         */\\n        var recorderProcess = function (e) {\\n            // onaudioprocess can be called at least once after we've stopped\\n            if (_this.recording) {\\n                _this.push(_this.objectMode\\n                    ? e.inputBuffer\\n                    : buffer_from_1.default(e.inputBuffer.getChannelData(0).buffer));\\n            }\\n        };\\n        this.recorder.onaudioprocess = recorderProcess;\\n    };\\n    /**\\n     * Temporarily stop emitting new data. Audio data recieved from the microphone\\n     * after this will be dropped.\\n     *\\n     * Note: the underlying Stream interface has a .pause() API that causes new data\\n     * to bebuffered rather than dropped.\\n     */\\n    MicrophoneStream.prototype.pauseRecording = function () {\\n        this.recording = false;\\n    };\\n    /**\\n     * Resume emitting new audio data after pauseRecording() was called.\\n     */\\n    MicrophoneStream.prototype.playRecording = function () {\\n        this.recording = true;\\n    };\\n    /**\\n     * Stops the recording.\\n     *\\n     * Note: Some versions of Firefox leave the recording icon in place after recording has stopped.\\n     */\\n    MicrophoneStream.prototype.stop = function () {\\n        if (this.context.state === \\\"closed\\\") {\\n            return;\\n        }\\n        try {\\n            this.stream.getTracks()[0].stop();\\n        }\\n        catch (ex) {\\n            // This fails in some older versions of chrome. Nothing we can do about it.\\n        }\\n        this.recorder.disconnect();\\n        if (this.audioInput) {\\n            this.audioInput.disconnect();\\n        }\\n        try {\\n            this.context.close(); // returns a promise;\\n        }\\n        catch (ex) {\\n            // this can also fail in older versions of chrome\\n        }\\n        this.recording = false;\\n        this.push(null);\\n        this.emit(\\\"close\\\");\\n    };\\n    /**\\n     * no-op, (flow-control doesn't really work on live audio)\\n     */\\n    MicrophoneStream.prototype._read = function ( /* bytes */) {\\n        // no-op, (flow-control doesn't really work on live audio)\\n    };\\n    /**\\n     * Converts a Buffer back into the raw Float32Array format that browsers use.\\n     * Note: this is just a new DataView for the same underlying buffer -\\n     * the actual audio data is not copied or changed here.\\n     *\\n     * @memberof MicrophoneStream\\n     * @param {Buffer} chunk node-style buffer of audio data from a 'data' event or read() call\\n     * @return {Float32Array} raw 32-bit float data view of audio data\\n     */\\n    MicrophoneStream.toRaw = function (chunk) {\\n        return new Float32Array(chunk.buffer);\\n    };\\n    return MicrophoneStream;\\n}(readable_stream_1.Readable));\\nexports[\\\"default\\\"] = MicrophoneStream;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/dist/microphone-stream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/errors-browser.js\":\n/*!***************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/errors-browser.js ***!\n  \\***************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\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://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/errors-browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\":\n/*!*******************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js ***!\n  \\*******************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./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// 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/*<replacement>*/\\n\\nvar objectKeys = Object.keys || function (obj) {\\n  var keys = [];\\n\\n  for (var key in obj) {\\n    keys.push(key);\\n  }\\n\\n  return keys;\\n};\\n/*</replacement>*/\\n\\n\\nmodule.exports = Duplex;\\n\\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_readable.js\\\");\\n\\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_writable.js\\\");\\n\\n__webpack_require__(/*! inherits */ \\\"./node_modules/inherits/inherits_browser.js\\\")(Duplex, Readable);\\n\\n{\\n  // Allow the keys array to be GC'ed.\\n  var keys = objectKeys(Writable.prototype);\\n\\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  Readable.call(this, options);\\n  Writable.call(this, options);\\n  this.allowHalfOpen = true;\\n\\n  if (options) {\\n    if (options.readable === false) this.readable = false;\\n    if (options.writable === false) this.writable = false;\\n\\n    if (options.allowHalfOpen === false) {\\n      this.allowHalfOpen = false;\\n      this.once('end', onend);\\n    }\\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}); // the no-half-open enforcer\\n\\nfunction onend() {\\n  // If the writable side ended, then we're ok.\\n  if (this._writableState.ended) return; // no more data can be written.\\n  // But allow more writes to happen in this tick.\\n\\n  process.nextTick(onEndNT, this);\\n}\\n\\nfunction onEndNT(self) {\\n  self.end();\\n}\\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\\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    } // backward compatibility, the user is explicitly\\n    // managing destroyed\\n\\n\\n    this._readableState.destroyed = value;\\n    this._writableState.destroyed = value;\\n  }\\n});\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_passthrough.js\":\n/*!************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_passthrough.js ***!\n  \\************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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// a passthrough stream.\\n// basically just the most minimal sort of Transform stream.\\n// Every written chunk gets output as-is.\\n\\n\\nmodule.exports = PassThrough;\\n\\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_transform.js\\\");\\n\\n__webpack_require__(/*! inherits */ \\\"./node_modules/inherits/inherits_browser.js\\\")(PassThrough, Transform);\\n\\nfunction PassThrough(options) {\\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\\n  Transform.call(this, options);\\n}\\n\\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\\n  cb(null, chunk);\\n};\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_passthrough.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_readable.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_readable.js ***!\n  \\*********************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./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\\nmodule.exports = Readable;\\n/*<replacement>*/\\n\\nvar Duplex;\\n/*</replacement>*/\\n\\nReadable.ReadableState = ReadableState;\\n/*<replacement>*/\\n\\nvar EE = (__webpack_require__(/*! events */ \\\"./node_modules/events/events.js\\\").EventEmitter);\\n\\nvar EElistenerCount = function EElistenerCount(emitter, type) {\\n  return emitter.listeners(type).length;\\n};\\n/*</replacement>*/\\n\\n/*<replacement>*/\\n\\n\\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js\\\");\\n/*</replacement>*/\\n\\n\\nvar Buffer = (__webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\").Buffer);\\n\\nvar OurUint8Array = __webpack_require__.g.Uint8Array || function () {};\\n\\nfunction _uint8ArrayToBuffer(chunk) {\\n  return Buffer.from(chunk);\\n}\\n\\nfunction _isUint8Array(obj) {\\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\\n}\\n/*<replacement>*/\\n\\n\\nvar debugUtil = __webpack_require__(/*! util */ \\\"?e07d\\\");\\n\\nvar debug;\\n\\nif (debugUtil && debugUtil.debuglog) {\\n  debug = debugUtil.debuglog('stream');\\n} else {\\n  debug = function debug() {};\\n}\\n/*</replacement>*/\\n\\n\\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js\\\");\\n\\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/destroy.js\\\");\\n\\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/state.js\\\"),\\n    getHighWaterMark = _require.getHighWaterMark;\\n\\nvar _require$codes = (__webpack_require__(/*! ../errors */ \\\"./node_modules/microphone-stream/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; // Lazy loaded to improve the startup performance.\\n\\n\\nvar StringDecoder;\\nvar createReadableStreamAsyncIterator;\\nvar from;\\n\\n__webpack_require__(/*! inherits */ \\\"./node_modules/inherits/inherits_browser.js\\\")(Readable, Stream);\\n\\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\\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); // 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\\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}\\n\\nfunction ReadableState(options, stream, isDuplex) {\\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\");\\n  options = options || {}; // 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\\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\\n  // make all the buffer merging and length checks go away\\n\\n  this.objectMode = !!options.objectMode;\\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // 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\\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // 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\\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; // 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\\n  this.sync = true; // whenever we return null, then we set a flag to say\\n  // that we're awaiting a 'readable' event emission.\\n\\n  this.needReadable = false;\\n  this.emittedReadable = false;\\n  this.readableListening = false;\\n  this.resumeScheduled = false;\\n  this.paused = true; // Should close be emitted on destroy. Defaults to true.\\n\\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\\n\\n  this.autoDestroy = !!options.autoDestroy; // has it been destroyed\\n\\n  this.destroyed = false; // 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\\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\\n\\n  this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\\n\\n  this.readingMore = false;\\n  this.decoder = null;\\n  this.encoding = null;\\n\\n  if (options.encoding) {\\n    if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \\\"./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/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\");\\n  if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\\n  // the ReadableState constructor, at least with V8 6.5\\n\\n  var isDuplex = this instanceof Duplex;\\n  this._readableState = new ReadableState(options, this, isDuplex); // legacy\\n\\n  this.readable = true;\\n\\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\\n  Stream.call(this);\\n}\\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\\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    } // backward compatibility, the user is explicitly\\n    // managing destroyed\\n\\n\\n    this._readableState.destroyed = value;\\n  }\\n});\\nReadable.prototype.destroy = destroyImpl.destroy;\\nReadable.prototype._undestroy = destroyImpl.undestroy;\\n\\nReadable.prototype._destroy = function (err, cb) {\\n  cb(err);\\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.\\n\\n\\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\\n      if (encoding !== state.encoding) {\\n        chunk = Buffer.from(chunk, encoding);\\n        encoding = '';\\n      }\\n\\n      skipChunkCheck = true;\\n    }\\n  } else {\\n    skipChunkCheck = true;\\n  }\\n\\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\\n}; // Unshift should *always* be something directly out of read()\\n\\n\\nReadable.prototype.unshift = function (chunk) {\\n  return readableAddChunk(this, chunk, null, true, false);\\n};\\n\\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\\n  debug('readableAddChunk', chunk);\\n  var state = stream._readableState;\\n\\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\\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\\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\\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  } // 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\\n\\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\\n}\\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\\n  maybeReadMore(stream, state);\\n}\\n\\nfunction chunkInvalid(state, chunk) {\\n  var er;\\n\\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\\n  return er;\\n}\\n\\nReadable.prototype.isPaused = function () {\\n  return this._readableState.flowing === false;\\n}; // backwards compatibility.\\n\\n\\nReadable.prototype.setEncoding = function (enc) {\\n  if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \\\"./node_modules/string_decoder/lib/string_decoder.js\\\").StringDecoder);\\n  var decoder = new StringDecoder(enc);\\n  this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\\n\\n  this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\\n\\n  var p = this._readableState.buffer.head;\\n  var content = '';\\n\\n  while (p !== null) {\\n    content += decoder.write(p.data);\\n    p = p.next;\\n  }\\n\\n  this._readableState.buffer.clear();\\n\\n  if (content !== '') this._readableState.buffer.push(content);\\n  this._readableState.length = content.length;\\n  return this;\\n}; // Don't raise the hwm > 1GB\\n\\n\\nvar MAX_HWM = 0x40000000;\\n\\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\\n  return n;\\n} // This function is designed to be inlinable, so please take care when making\\n// changes to the function body.\\n\\n\\nfunction howMuchToRead(n, state) {\\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\\n  if (state.objectMode) return 1;\\n\\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  } // If we're asking for more than the current hwm, then raise the hwm.\\n\\n\\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\\n  if (n <= state.length) return n; // Don't have enough\\n\\n  if (!state.ended) {\\n    state.needReadable = true;\\n    return 0;\\n  }\\n\\n  return state.length;\\n} // you can override either this method, or the async _read(n) below.\\n\\n\\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; // 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\\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  n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\\n\\n  if (n === 0 && state.ended) {\\n    if (state.length === 0) endReadable(this);\\n    return null;\\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  // if we need a readable event, then we need to do some reading.\\n\\n\\n  var doRead = state.needReadable;\\n  debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\\n\\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\\n    doRead = true;\\n    debug('length less than watermark', doRead);\\n  } // however, if we've ended, then there's no point, and if we're already\\n  // reading, then it's unnecessary.\\n\\n\\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; // if the length is currently zero, then we *need* a readable event.\\n\\n    if (state.length === 0) state.needReadable = true; // call internal read method\\n\\n    this._read(state.highWaterMark);\\n\\n    state.sync = false; // 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\\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 = state.length <= state.highWaterMark;\\n    n = 0;\\n  } else {\\n    state.length -= n;\\n    state.awaitDrain = 0;\\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; // If we tried to read() past the EOF, then emit end on the next tick.\\n\\n    if (nOrig !== n && state.ended) endReadable(this);\\n  }\\n\\n  if (ret !== null) this.emit('data', ret);\\n  return ret;\\n};\\n\\nfunction onEofChunk(stream, state) {\\n  debug('onEofChunk');\\n  if (state.ended) return;\\n\\n  if (state.decoder) {\\n    var chunk = state.decoder.end();\\n\\n    if (chunk && chunk.length) {\\n      state.buffer.push(chunk);\\n      state.length += state.objectMode ? 1 : chunk.length;\\n    }\\n  }\\n\\n  state.ended = true;\\n\\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\\n    if (!state.emittedReadable) {\\n      state.emittedReadable = true;\\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.\\n\\n\\nfunction emitReadable(stream) {\\n  var state = stream._readableState;\\n  debug('emitReadable', state.needReadable, state.emittedReadable);\\n  state.needReadable = false;\\n\\n  if (!state.emittedReadable) {\\n    debug('emitReadable', state.flowing);\\n    state.emittedReadable = true;\\n    process.nextTick(emitReadable_, stream);\\n  }\\n}\\n\\nfunction emitReadable_(stream) {\\n  var state = stream._readableState;\\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\\n\\n  if (!state.destroyed && (state.length || state.ended)) {\\n    stream.emit('readable');\\n    state.emittedReadable = false;\\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\\n\\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\\n  flow(stream);\\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.\\n\\n\\nfunction maybeReadMore(stream, state) {\\n  if (!state.readingMore) {\\n    state.readingMore = true;\\n    process.nextTick(maybeReadMore_, stream, state);\\n  }\\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) // didn't get any data, stop spinning.\\n      break;\\n  }\\n\\n  state.readingMore = false;\\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.\\n\\n\\nReadable.prototype._read = function (n) {\\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\\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\\n    case 1:\\n      state.pipes = [state.pipes, dest];\\n      break;\\n\\n    default:\\n      state.pipes.push(dest);\\n      break;\\n  }\\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\\n  function onunpipe(readable, unpipeInfo) {\\n    debug('onunpipe');\\n\\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  } // 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\\n\\n  var ondrain = pipeOnDrain(src);\\n  dest.on('drain', ondrain);\\n  var cleanedUp = false;\\n\\n  function cleanup() {\\n    debug('cleanup'); // cleanup event handlers once the pipe is broken\\n\\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; // 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\\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\\n  }\\n\\n  src.on('data', ondata);\\n\\n  function ondata(chunk) {\\n    debug('ondata');\\n    var ret = dest.write(chunk);\\n    debug('dest.write', ret);\\n\\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\\n      src.pause();\\n    }\\n  } // if the dest has an error, then stop piping into it.\\n  // however, don't suppress the throwing behavior for this.\\n\\n\\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  } // Make sure our error handler is attached before userland ones.\\n\\n\\n  prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\\n\\n  function onclose() {\\n    dest.removeListener('finish', onfinish);\\n    unpipe();\\n  }\\n\\n  dest.once('close', onclose);\\n\\n  function onfinish() {\\n    debug('onfinish');\\n    dest.removeListener('close', onclose);\\n    unpipe();\\n  }\\n\\n  dest.once('finish', onfinish);\\n\\n  function unpipe() {\\n    debug('unpipe');\\n    src.unpipe(dest);\\n  } // tell the dest that it's being piped to\\n\\n\\n  dest.emit('pipe', src); // start the flow if it hasn't been started already.\\n\\n  if (!state.flowing) {\\n    debug('pipe resume');\\n    src.resume();\\n  }\\n\\n  return dest;\\n};\\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\\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 = {\\n    hasUnpiped: false\\n  }; // if we're not piping anywhere, then do nothing.\\n\\n  if (state.pipesCount === 0) return this; // just one destination.  most common case.\\n\\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; // got a match.\\n\\n    state.pipes = null;\\n    state.pipesCount = 0;\\n    state.flowing = false;\\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\\n    return this;\\n  } // slow case. multiple pipe destinations.\\n\\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, {\\n        hasUnpiped: false\\n      });\\n    }\\n\\n    return this;\\n  } // try to find the right one.\\n\\n\\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}; // set up data events if they are asked for\\n// Ensure readable listeners eventually get something\\n\\n\\nReadable.prototype.on = function (ev, fn) {\\n  var res = Stream.prototype.on.call(this, ev, fn);\\n  var state = this._readableState;\\n\\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; // Try start flowing on next tick if stream isn't explicitly paused\\n\\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\\n      if (state.length) {\\n        emitReadable(this);\\n      } else if (!state.reading) {\\n        process.nextTick(nReadingNextTick, this);\\n      }\\n    }\\n  }\\n\\n  return res;\\n};\\n\\nReadable.prototype.addListener = Readable.prototype.on;\\n\\nReadable.prototype.removeListener = function (ev, fn) {\\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\\n\\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\\n  return res;\\n};\\n\\nReadable.prototype.removeAllListeners = function (ev) {\\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\\n\\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\\n  return res;\\n};\\n\\nfunction updateReadableListening(self) {\\n  var state = self._readableState;\\n  state.readableListening = self.listenerCount('readable') > 0;\\n\\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; // crude way to check if we should resume\\n  } else if (self.listenerCount('data') > 0) {\\n    self.resume();\\n  }\\n}\\n\\nfunction nReadingNextTick(self) {\\n  debug('readable nexttick read 0');\\n  self.read(0);\\n} // pause() and resume() are remnants of the legacy readable stream API\\n// If the user uses them, then switch into old mode.\\n\\n\\nReadable.prototype.resume = function () {\\n  var state = this._readableState;\\n\\n  if (!state.flowing) {\\n    debug('resume'); // we flow only if there is no one listening\\n    // for readable, but we still have to call\\n    // resume()\\n\\n    state.flowing = !state.readableListening;\\n    resume(this, state);\\n  }\\n\\n  state.paused = false;\\n  return this;\\n};\\n\\nfunction resume(stream, state) {\\n  if (!state.resumeScheduled) {\\n    state.resumeScheduled = true;\\n    process.nextTick(resume_, stream, state);\\n  }\\n}\\n\\nfunction resume_(stream, state) {\\n  debug('resume', state.reading);\\n\\n  if (!state.reading) {\\n    stream.read(0);\\n  }\\n\\n  state.resumeScheduled = false;\\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\\n  if (this._readableState.flowing !== false) {\\n    debug('pause');\\n    this._readableState.flowing = false;\\n    this.emit('pause');\\n  }\\n\\n  this._readableState.paused = true;\\n  return this;\\n};\\n\\nfunction flow(stream) {\\n  var state = stream._readableState;\\n  debug('flow', state.flowing);\\n\\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.\\n\\n\\nReadable.prototype.wrap = function (stream) {\\n  var _this = this;\\n\\n  var state = this._readableState;\\n  var paused = false;\\n  stream.on('end', function () {\\n    debug('wrapped end');\\n\\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  stream.on('data', function (chunk) {\\n    debug('wrapped data');\\n    if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\\n\\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\\n    if (!ret) {\\n      paused = true;\\n      stream.pause();\\n    }\\n  }); // proxy all the other methods.\\n  // important when wrapping filters and duplexes.\\n\\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  } // proxy certain important events.\\n\\n\\n  for (var n = 0; n < kProxyEvents.length; n++) {\\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\\n  } // when we try to consume some more bytes, simply unpause the\\n  // underlying stream.\\n\\n\\n  this._read = function (n) {\\n    debug('wrapped _read', n);\\n\\n    if (paused) {\\n      paused = false;\\n      stream.resume();\\n    }\\n  };\\n\\n  return this;\\n};\\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/microphone-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js\\\");\\n    }\\n\\n    return createReadableStreamAsyncIterator(this);\\n  };\\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}); // exposed for testing purposes only.\\n\\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}); // 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.\\n\\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}\\n\\nfunction endReadable(stream) {\\n  var state = stream._readableState;\\n  debug('endReadable', state.endEmitted);\\n\\n  if (!state.endEmitted) {\\n    state.ended = true;\\n    process.nextTick(endReadableNT, state, stream);\\n  }\\n}\\n\\nfunction endReadableNT(state, stream) {\\n  debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\\n\\n  if (!state.endEmitted && state.length === 0) {\\n    state.endEmitted = true;\\n    stream.readable = false;\\n    stream.emit('end');\\n\\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\\n      if (!wState || wState.autoDestroy && wState.finished) {\\n        stream.destroy();\\n      }\\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/microphone-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js\\\");\\n    }\\n\\n    return from(Readable, iterable, opts);\\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\\n  return -1;\\n}\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_readable.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_transform.js\":\n/*!**********************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_transform.js ***!\n  \\**********************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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// 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\\nmodule.exports = Transform;\\n\\nvar _require$codes = (__webpack_require__(/*! ../errors */ \\\"./node_modules/microphone-stream/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;\\n\\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\");\\n\\n__webpack_require__(/*! inherits */ \\\"./node_modules/inherits/inherits_browser.js\\\")(Transform, Duplex);\\n\\nfunction afterTransform(er, data) {\\n  var ts = this._transformState;\\n  ts.transforming = false;\\n  var cb = ts.writecb;\\n\\n  if (cb === null) {\\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\\n  }\\n\\n  ts.writechunk = null;\\n  ts.writecb = null;\\n  if (data != null) // 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\\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  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  }; // start out asking for a readable event once data is transformed.\\n\\n  this._readableState.needReadable = true; // 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\\n  this._readableState.sync = false;\\n\\n  if (options) {\\n    if (typeof options.transform === 'function') this._transform = options.transform;\\n    if (typeof options.flush === 'function') this._flush = options.flush;\\n  } // When the writable side finishes, then flush out anything remaining.\\n\\n\\n  this.on('prefinish', prefinish);\\n}\\n\\nfunction prefinish() {\\n  var _this = this;\\n\\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}\\n\\nTransform.prototype.push = function (chunk, encoding) {\\n  this._transformState.needTransform = false;\\n  return Duplex.prototype.push.call(this, chunk, encoding);\\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.\\n\\n\\nTransform.prototype._transform = function (chunk, encoding, cb) {\\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\\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\\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}; // 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.\\n\\n\\nTransform.prototype._read = function (n) {\\n  var ts = this._transformState;\\n\\n  if (ts.writechunk !== null && !ts.transforming) {\\n    ts.transforming = true;\\n\\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  Duplex.prototype._destroy.call(this, err, function (err2) {\\n    cb(err2);\\n  });\\n};\\n\\nfunction done(stream, er, data) {\\n  if (er) return stream.emit('error', er);\\n  if (data != null) // single equals check for both `null` and `undefined`\\n    stream.push(data); // 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\\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://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_transform.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_writable.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_writable.js ***!\n  \\*********************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./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// 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\\nmodule.exports = Writable;\\n/* <replacement> */\\n\\nfunction WriteReq(chunk, encoding, cb) {\\n  this.chunk = chunk;\\n  this.encoding = encoding;\\n  this.callback = cb;\\n  this.next = null;\\n} // It seems a linked list but it is not\\n// there will be only 2 of these for each stream\\n\\n\\nfunction CorkedRequest(state) {\\n  var _this = this;\\n\\n  this.next = null;\\n  this.entry = null;\\n\\n  this.finish = function () {\\n    onCorkedFinish(_this, state);\\n  };\\n}\\n/* </replacement> */\\n\\n/*<replacement>*/\\n\\n\\nvar Duplex;\\n/*</replacement>*/\\n\\nWritable.WritableState = WritableState;\\n/*<replacement>*/\\n\\nvar internalUtil = {\\n  deprecate: __webpack_require__(/*! util-deprecate */ \\\"./node_modules/util-deprecate/browser.js\\\")\\n};\\n/*</replacement>*/\\n\\n/*<replacement>*/\\n\\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js\\\");\\n/*</replacement>*/\\n\\n\\nvar Buffer = (__webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\").Buffer);\\n\\nvar OurUint8Array = __webpack_require__.g.Uint8Array || function () {};\\n\\nfunction _uint8ArrayToBuffer(chunk) {\\n  return Buffer.from(chunk);\\n}\\n\\nfunction _isUint8Array(obj) {\\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\\n}\\n\\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/destroy.js\\\");\\n\\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/state.js\\\"),\\n    getHighWaterMark = _require.getHighWaterMark;\\n\\nvar _require$codes = (__webpack_require__(/*! ../errors */ \\\"./node_modules/microphone-stream/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;\\n\\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\\n\\n__webpack_require__(/*! inherits */ \\\"./node_modules/inherits/inherits_browser.js\\\")(Writable, Stream);\\n\\nfunction nop() {}\\n\\nfunction WritableState(options, stream, isDuplex) {\\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\");\\n  options = options || {}; // 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\\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\\n  // contains buffers or objects.\\n\\n  this.objectMode = !!options.objectMode;\\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // 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\\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\\n\\n  this.finalCalled = false; // drain event flag.\\n\\n  this.needDrain = false; // at the start of calling end()\\n\\n  this.ending = false; // when end() has been called, and returned\\n\\n  this.ended = false; // when 'finish' is emitted\\n\\n  this.finished = false; // has it been destroyed\\n\\n  this.destroyed = false; // 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\\n  var noDecode = options.decodeStrings === false;\\n  this.decodeStrings = !noDecode; // 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\\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // 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\\n  this.length = 0; // a flag to see when we're in the middle of a write.\\n\\n  this.writing = false; // when true all writes will be buffered until .uncork() call\\n\\n  this.corked = 0; // 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\\n  this.sync = true; // 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\\n  this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\\n\\n  this.onwrite = function (er) {\\n    onwrite(stream, er);\\n  }; // the callback that the user supplies to write(chunk,encoding,cb)\\n\\n\\n  this.writecb = null; // the amount that is being written when _write is called.\\n\\n  this.writelen = 0;\\n  this.bufferedRequest = null;\\n  this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\\n  // this must be 0 before 'finish' can be emitted\\n\\n  this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\\n  // This is relevant for synchronous Transform streams\\n\\n  this.prefinished = false; // True if the error was already emitted and should not be thrown again\\n\\n  this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\\n\\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\\n\\n  this.autoDestroy = !!options.autoDestroy; // count buffered requests\\n\\n  this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\\n  // one allocated and free to use, and we maintain at most two\\n\\n  this.corkedRequestsFree = new CorkedRequest(this);\\n}\\n\\nWritableState.prototype.getBuffer = function getBuffer() {\\n  var current = this.bufferedRequest;\\n  var out = [];\\n\\n  while (current) {\\n    out.push(current);\\n    current = current.next;\\n  }\\n\\n  return out;\\n};\\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})(); // Test _writableState for inheritance to account for Duplex streams,\\n// whose prototype chain only points to Readable.\\n\\n\\nvar realHasInstance;\\n\\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}\\n\\nfunction Writable(options) {\\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\"); // 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  // 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  // Checking for a Stream.Duplex instance is faster here instead of inside\\n  // the WritableState constructor, at least with V8 6.5\\n\\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); // legacy.\\n\\n  this.writable = true;\\n\\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\\n  Stream.call(this);\\n} // Otherwise people can pipe Writable streams, which is just wrong.\\n\\n\\nWritable.prototype.pipe = function () {\\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\\n};\\n\\nfunction writeAfterEnd(stream, cb) {\\n  var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\\n\\n  errorOrDestroy(stream, er);\\n  process.nextTick(cb, er);\\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.\\n\\n\\nfunction validChunk(stream, state, chunk, cb) {\\n  var er;\\n\\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\\n  if (er) {\\n    errorOrDestroy(stream, er);\\n    process.nextTick(cb, er);\\n    return false;\\n  }\\n\\n  return true;\\n}\\n\\nWritable.prototype.write = function (chunk, encoding, cb) {\\n  var state = this._writableState;\\n  var ret = false;\\n\\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  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};\\n\\nWritable.prototype.cork = function () {\\n  this._writableState.corked++;\\n};\\n\\nWritable.prototype.uncork = function () {\\n  var state = this._writableState;\\n\\n  if (state.corked) {\\n    state.corked--;\\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 ERR_UNKNOWN_ENCODING(encoding);\\n  this._writableState.defaultEncoding = encoding;\\n  return this;\\n};\\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});\\n\\nfunction decodeChunk(state, chunk, encoding) {\\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\\n    chunk = Buffer.from(chunk, encoding);\\n  }\\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 get() {\\n    return this._writableState.highWaterMark;\\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.\\n\\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\\n  if (!isBuf) {\\n    var newChunk = decodeChunk(state, chunk, encoding);\\n\\n    if (chunk !== newChunk) {\\n      isBuf = true;\\n      encoding = 'buffer';\\n      chunk = newChunk;\\n    }\\n  }\\n\\n  var len = state.objectMode ? 1 : chunk.length;\\n  state.length += len;\\n  var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\\n\\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\\n    if (last) {\\n      last.next = state.lastBufferedRequest;\\n    } else {\\n      state.bufferedRequest = state.lastBufferedRequest;\\n    }\\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 (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}\\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    process.nextTick(cb, er); // this can emit finish, and it will always happen\\n    // after error\\n\\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); // this can emit finish, but finish must\\n    // always follow error\\n\\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  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\\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\\n      clearBuffer(stream, state);\\n    }\\n\\n    if (sync) {\\n      process.nextTick(afterWrite, stream, state, finished, cb);\\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} // 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.\\n\\n\\nfunction onwriteDrain(stream, state) {\\n  if (state.length === 0 && state.needDrain) {\\n    state.needDrain = false;\\n    stream.emit('drain');\\n  }\\n} // if there's something in the buffer waiting, then process it\\n\\n\\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    var count = 0;\\n    var allBuffers = true;\\n\\n    while (entry) {\\n      buffer[count] = entry;\\n      if (!entry.isBuf) allBuffers = false;\\n      entry = entry.next;\\n      count += 1;\\n    }\\n\\n    buffer.allBuffers = allBuffers;\\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\\n    // as the hot path ends with doWrite\\n\\n    state.pendingcb++;\\n    state.lastBufferedRequest = null;\\n\\n    if (holder.next) {\\n      state.corkedRequestsFree = holder.next;\\n      holder.next = null;\\n    } else {\\n      state.corkedRequestsFree = new CorkedRequest(state);\\n    }\\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--; // 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\\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 ERR_METHOD_NOT_IMPLEMENTED('_write()'));\\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); // .end() fully uncorks\\n\\n  if (state.corked) {\\n    state.corked = 1;\\n    this.uncork();\\n  } // ignore unnecessary end() calls.\\n\\n\\n  if (!state.ending) endWritable(this, state, cb);\\n  return this;\\n};\\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});\\n\\nfunction needFinish(state) {\\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\\n}\\n\\nfunction callFinal(stream, state) {\\n  stream._final(function (err) {\\n    state.pendingcb--;\\n\\n    if (err) {\\n      errorOrDestroy(stream, err);\\n    }\\n\\n    state.prefinished = true;\\n    stream.emit('prefinish');\\n    finishMaybe(stream, state);\\n  });\\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}\\n\\nfunction finishMaybe(stream, state) {\\n  var need = needFinish(state);\\n\\n  if (need) {\\n    prefinish(stream, state);\\n\\n    if (state.pendingcb === 0) {\\n      state.finished = true;\\n      stream.emit('finish');\\n\\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\\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\\n          stream.destroy();\\n        }\\n      }\\n    }\\n  }\\n\\n  return need;\\n}\\n\\nfunction endWritable(stream, state, cb) {\\n  state.ending = true;\\n  finishMaybe(stream, state);\\n\\n  if (cb) {\\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\\n  }\\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\\n  while (entry) {\\n    var cb = entry.callback;\\n    state.pendingcb--;\\n    cb(err);\\n    entry = entry.next;\\n  } // reuse the free corkReq.\\n\\n\\n  state.corkedRequestsFree.next = corkReq;\\n}\\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\\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    } // backward compatibility, the user is explicitly\\n    // managing destroyed\\n\\n\\n    this._writableState.destroyed = value;\\n  }\\n});\\nWritable.prototype.destroy = destroyImpl.destroy;\\nWritable.prototype._undestroy = destroyImpl.undestroy;\\n\\nWritable.prototype._destroy = function (err, cb) {\\n  cb(err);\\n};\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_writable.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js\":\n/*!************************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!\n  \\************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./node_modules/process/browser.js\\\");\\n\\n\\nvar _Object$setPrototypeO;\\n\\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\\n\\nvar finished = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\");\\n\\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');\\n\\nfunction createIterResult(value, done) {\\n  return {\\n    value: value,\\n    done: done\\n  };\\n}\\n\\nfunction readAndResolve(iter) {\\n  var resolve = iter[kLastResolve];\\n\\n  if (resolve !== null) {\\n    var data = iter[kStream].read(); // we defer if data is null\\n    // we can be expecting either 'end' or\\n    // 'error'\\n\\n    if (data !== null) {\\n      iter[kLastPromise] = null;\\n      iter[kLastResolve] = null;\\n      iter[kLastReject] = null;\\n      resolve(createIterResult(data, false));\\n    }\\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}\\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\\n      iter[kHandlePromise](resolve, reject);\\n    }, reject);\\n  };\\n}\\n\\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\\n  get stream() {\\n    return this[kStream];\\n  },\\n\\n  next: function next() {\\n    var _this = this;\\n\\n    // if we have detected an error in the meanwhile\\n    // reject straight away\\n    var error = this[kError];\\n\\n    if (error !== null) {\\n      return Promise.reject(error);\\n    }\\n\\n    if (this[kEnded]) {\\n      return Promise.resolve(createIterResult(undefined, true));\\n    }\\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    } // 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\\n\\n    var lastPromise = this[kLastPromise];\\n    var promise;\\n\\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\\n      if (data !== null) {\\n        return Promise.resolve(createIterResult(data, false));\\n      }\\n\\n      promise = new Promise(this[kHandlePromise]);\\n    }\\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\\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\\n      resolve(createIterResult(undefined, true));\\n    });\\n  });\\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\\n\\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\\n  var _Object$create;\\n\\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\\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]; // reject if we are waiting for data in the Promise\\n      // returned by next() and store the error\\n\\n      if (reject !== null) {\\n        iterator[kLastPromise] = null;\\n        iterator[kLastResolve] = null;\\n        iterator[kLastReject] = null;\\n        reject(err);\\n      }\\n\\n      iterator[kError] = err;\\n      return;\\n    }\\n\\n    var resolve = iterator[kLastResolve];\\n\\n    if (resolve !== null) {\\n      iterator[kLastPromise] = null;\\n      iterator[kLastResolve] = null;\\n      iterator[kLastReject] = null;\\n      resolve(createIterResult(undefined, true));\\n    }\\n\\n    iterator[kEnded] = true;\\n  });\\n  stream.on('readable', onReadable.bind(null, iterator));\\n  return iterator;\\n};\\n\\nmodule.exports = createReadableStreamAsyncIterator;\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js\":\n/*!*********************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!\n  \\*********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\\n\\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\\n\\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\\n\\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\\\"Cannot call a class as a function\\\"); } }\\n\\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, descriptor.key, descriptor); } }\\n\\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\\n\\nvar _require = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\"),\\n    Buffer = _require.Buffer;\\n\\nvar _require2 = __webpack_require__(/*! util */ \\\"?2cbf\\\"),\\n    inspect = _require2.inspect;\\n\\nvar custom = inspect && inspect.custom || 'inspect';\\n\\nfunction copyBuffer(src, target, offset) {\\n  Buffer.prototype.copy.call(src, target, offset);\\n}\\n\\nmodule.exports =\\n/*#__PURE__*/\\nfunction () {\\n  function BufferList() {\\n    _classCallCheck(this, BufferList);\\n\\n    this.head = null;\\n    this.tail = null;\\n    this.length = 0;\\n  }\\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\\n      while (p = p.next) {\\n        ret += s + p.data;\\n      }\\n\\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\\n      while (p) {\\n        copyBuffer(p.data, ret, i);\\n        i += p.data.length;\\n        p = p.next;\\n      }\\n\\n      return ret;\\n    } // Consumes a specified amount of bytes or characters from the buffered data.\\n\\n  }, {\\n    key: \\\"consume\\\",\\n    value: function consume(n, hasStrings) {\\n      var ret;\\n\\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\\n      return ret;\\n    }\\n  }, {\\n    key: \\\"first\\\",\\n    value: function first() {\\n      return this.head.data;\\n    } // Consumes a specified amount of characters from the buffered data.\\n\\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\\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\\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\\n          break;\\n        }\\n\\n        ++c;\\n      }\\n\\n      this.length -= c;\\n      return ret;\\n    } // Consumes a specified amount of bytes from the buffered data.\\n\\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\\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\\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\\n          break;\\n        }\\n\\n        ++c;\\n      }\\n\\n      this.length -= c;\\n      return ret;\\n    } // Make sure the linked list only shows the minimal necessary information.\\n\\n  }, {\\n    key: custom,\\n    value: function value(_, options) {\\n      return inspect(this, _objectSpread({}, options, {\\n        // Only inspect one level.\\n        depth: 0,\\n        // It should not recurse.\\n        customInspect: false\\n      }));\\n    }\\n  }]);\\n\\n  return BufferList;\\n}();\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/destroy.js\":\n/*!*****************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/destroy.js ***!\n  \\*****************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \\\"./node_modules/process/browser.js\\\");\\n // undocumented cb() API, needed for core, not for public API\\n\\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        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\\n    return this;\\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\\n  if (this._readableState) {\\n    this._readableState.destroyed = true;\\n  } // if this is a duplex stream mark the writable part as destroyed as well\\n\\n\\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        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\\n  return this;\\n}\\n\\nfunction emitErrorAndCloseNT(self, err) {\\n  emitErrorNT(self, err);\\n  emitCloseNT(self);\\n}\\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}\\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\\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  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}\\n\\nmodule.exports = {\\n  destroy: destroy,\\n  undestroy: undestroy,\\n  errorOrDestroy: errorOrDestroy\\n};\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/destroy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\":\n/*!***********************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!\n  \\***********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// Ported from https://github.com/mafintosh/end-of-stream with\\n// permission from the author, Mathias Buus (@mafintosh).\\n\\n\\nvar ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/errors-browser.js\\\").codes.ERR_STREAM_PREMATURE_CLOSE);\\n\\nfunction once(callback) {\\n  var called = false;\\n  return function () {\\n    if (called) return;\\n    called = true;\\n\\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\\n      args[_key] = arguments[_key];\\n    }\\n\\n    callback.apply(this, args);\\n  };\\n}\\n\\nfunction noop() {}\\n\\nfunction isRequest(stream) {\\n  return stream.setHeader && typeof stream.abort === 'function';\\n}\\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\\n  var onlegacyfinish = function onlegacyfinish() {\\n    if (!stream.writable) onfinish();\\n  };\\n\\n  var writableEnded = stream._writableState && stream._writableState.finished;\\n\\n  var onfinish = function onfinish() {\\n    writable = false;\\n    writableEnded = true;\\n    if (!readable) callback.call(stream);\\n  };\\n\\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\\n\\n  var onend = function onend() {\\n    readable = false;\\n    readableEnded = true;\\n    if (!writable) callback.call(stream);\\n  };\\n\\n  var onerror = function onerror(err) {\\n    callback.call(stream, err);\\n  };\\n\\n  var onclose = function onclose() {\\n    var err;\\n\\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\\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\\n  var onrequest = function onrequest() {\\n    stream.req.on('finish', onfinish);\\n  };\\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\\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}\\n\\nmodule.exports = eos;\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js\":\n/*!**********************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js ***!\n  \\**********************************************************************************************************/\n/***/ ((module) => {\n\neval(\"module.exports = function () {\\n  throw new Error('Readable.from is not available in the browser')\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js\":\n/*!******************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js ***!\n  \\******************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// Ported from https://github.com/mafintosh/pump with\\n// permission from the author, Mathias Buus (@mafintosh).\\n\\n\\nvar eos;\\n\\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}\\n\\nvar _require$codes = (__webpack_require__(/*! ../../../errors */ \\\"./node_modules/microphone-stream/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;\\n\\nfunction noop(err) {\\n  // Rethrow the error if it exists to avoid swallowing it\\n  if (err) throw err;\\n}\\n\\nfunction isRequest(stream) {\\n  return stream.setHeader && typeof stream.abort === 'function';\\n}\\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/microphone-stream/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; // request.destroy just do .end - .abort is what we want\\n\\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}\\n\\nfunction call(fn) {\\n  fn();\\n}\\n\\nfunction pipe(from, to) {\\n  return from.pipe(to);\\n}\\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}\\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\\n  var callback = popCallback(streams);\\n  if (Array.isArray(streams[0])) streams = streams[0];\\n\\n  if (streams.length < 2) {\\n    throw new ERR_MISSING_ARGS('streams');\\n  }\\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}\\n\\nmodule.exports = pipeline;\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/state.js\":\n/*!***************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/state.js ***!\n  \\***************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nvar ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/errors-browser.js\\\").codes.ERR_INVALID_OPT_VALUE);\\n\\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\\n}\\n\\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\\n\\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\\n    return Math.floor(hwm);\\n  } // Default value\\n\\n\\n  return state.objectMode ? 16 : 16 * 1024;\\n}\\n\\nmodule.exports = {\\n  getHighWaterMark: getHighWaterMark\\n};\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/state.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js\":\n/*!************************************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!\n  \\************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"module.exports = __webpack_require__(/*! events */ \\\"./node_modules/events/events.js\\\").EventEmitter;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/microphone-stream/node_modules/readable-stream/readable-browser.js\":\n/*!*****************************************************************************************!*\\\n  !*** ./node_modules/microphone-stream/node_modules/readable-stream/readable-browser.js ***!\n  \\*****************************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\neval(\"exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_readable.js\\\");\\nexports.Stream = exports;\\nexports.Readable = exports;\\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_writable.js\\\");\\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_duplex.js\\\");\\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_transform.js\\\");\\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/_stream_passthrough.js\\\");\\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\");\\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \\\"./node_modules/microphone-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/microphone-stream/node_modules/readable-stream/readable-browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/index.js\":\n/*!************************************!*\\\n  !*** ./node_modules/pako/index.js ***!\n  \\************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// Top level file is just a mixin of submodules & constants\\n\\n\\nconst { Deflate, deflate, deflateRaw, gzip } = __webpack_require__(/*! ./lib/deflate */ \\\"./node_modules/pako/lib/deflate.js\\\");\\n\\nconst { Inflate, inflate, inflateRaw, ungzip } = __webpack_require__(/*! ./lib/inflate */ \\\"./node_modules/pako/lib/inflate.js\\\");\\n\\nconst constants = __webpack_require__(/*! ./lib/zlib/constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\nmodule.exports.Deflate = Deflate;\\nmodule.exports.deflate = deflate;\\nmodule.exports.deflateRaw = deflateRaw;\\nmodule.exports.gzip = gzip;\\nmodule.exports.Inflate = Inflate;\\nmodule.exports.inflate = inflate;\\nmodule.exports.inflateRaw = inflateRaw;\\nmodule.exports.ungzip = ungzip;\\nmodule.exports.constants = constants;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/deflate.js\":\n/*!******************************************!*\\\n  !*** ./node_modules/pako/lib/deflate.js ***!\n  \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n\\nconst zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ \\\"./node_modules/pako/lib/zlib/deflate.js\\\");\\nconst utils        = __webpack_require__(/*! ./utils/common */ \\\"./node_modules/pako/lib/utils/common.js\\\");\\nconst strings      = __webpack_require__(/*! ./utils/strings */ \\\"./node_modules/pako/lib/utils/strings.js\\\");\\nconst msg          = __webpack_require__(/*! ./zlib/messages */ \\\"./node_modules/pako/lib/zlib/messages.js\\\");\\nconst ZStream      = __webpack_require__(/*! ./zlib/zstream */ \\\"./node_modules/pako/lib/zlib/zstream.js\\\");\\n\\nconst toString = Object.prototype.toString;\\n\\n/* Public constants ==========================================================*/\\n/* ===========================================================================*/\\n\\nconst {\\n  Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH,\\n  Z_OK, Z_STREAM_END,\\n  Z_DEFAULT_COMPRESSION,\\n  Z_DEFAULT_STRATEGY,\\n  Z_DEFLATED\\n} = __webpack_require__(/*! ./zlib/constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n/* ===========================================================================*/\\n\\n\\n/**\\n * class Deflate\\n *\\n * Generic JS-style wrapper for zlib calls. If you don't need\\n * streaming behaviour - use more simple functions: [[deflate]],\\n * [[deflateRaw]] and [[gzip]].\\n **/\\n\\n/* internal\\n * Deflate.chunks -> Array\\n *\\n * Chunks of output data, if [[Deflate#onData]] not overridden.\\n **/\\n\\n/**\\n * Deflate.result -> Uint8Array\\n *\\n * Compressed result, generated by default [[Deflate#onData]]\\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\\n **/\\n\\n/**\\n * Deflate.err -> Number\\n *\\n * Error code after deflate finished. 0 (Z_OK) on success.\\n * You will not need it in real life, because deflate errors\\n * are possible only on wrong options or bad `onData` / `onEnd`\\n * custom handlers.\\n **/\\n\\n/**\\n * Deflate.msg -> String\\n *\\n * Error message, if [[Deflate.err]] != 0\\n **/\\n\\n\\n/**\\n * new Deflate(options)\\n * - options (Object): zlib deflate options.\\n *\\n * Creates new deflator instance with specified params. Throws exception\\n * on bad params. Supported options:\\n *\\n * - `level`\\n * - `windowBits`\\n * - `memLevel`\\n * - `strategy`\\n * - `dictionary`\\n *\\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\\n * for more information on these.\\n *\\n * Additional options, for internal needs:\\n *\\n * - `chunkSize` - size of generated data chunks (16K by default)\\n * - `raw` (Boolean) - do raw deflate\\n * - `gzip` (Boolean) - create gzip wrapper\\n * - `header` (Object) - custom header for gzip\\n *   - `text` (Boolean) - true if compressed data believed to be text\\n *   - `time` (Number) - modification time, unix timestamp\\n *   - `os` (Number) - operation system code\\n *   - `extra` (Array) - array of bytes with extra data (max 65536)\\n *   - `name` (String) - file name (binary string)\\n *   - `comment` (String) - comment (binary string)\\n *   - `hcrc` (Boolean) - true if header crc should be added\\n *\\n * ##### Example:\\n *\\n * ```javascript\\n * const pako = require('pako')\\n *   , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\\n *   , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\\n *\\n * const deflate = new pako.Deflate({ level: 3});\\n *\\n * deflate.push(chunk1, false);\\n * deflate.push(chunk2, true);  // true -> last chunk\\n *\\n * if (deflate.err) { throw new Error(deflate.err); }\\n *\\n * console.log(deflate.result);\\n * ```\\n **/\\nfunction Deflate(options) {\\n  this.options = utils.assign({\\n    level: Z_DEFAULT_COMPRESSION,\\n    method: Z_DEFLATED,\\n    chunkSize: 16384,\\n    windowBits: 15,\\n    memLevel: 8,\\n    strategy: Z_DEFAULT_STRATEGY\\n  }, options || {});\\n\\n  let opt = this.options;\\n\\n  if (opt.raw && (opt.windowBits > 0)) {\\n    opt.windowBits = -opt.windowBits;\\n  }\\n\\n  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\\n    opt.windowBits += 16;\\n  }\\n\\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\\n  this.msg    = '';     // error message\\n  this.ended  = false;  // used to avoid multiple onEnd() calls\\n  this.chunks = [];     // chunks of compressed data\\n\\n  this.strm = new ZStream();\\n  this.strm.avail_out = 0;\\n\\n  let status = zlib_deflate.deflateInit2(\\n    this.strm,\\n    opt.level,\\n    opt.method,\\n    opt.windowBits,\\n    opt.memLevel,\\n    opt.strategy\\n  );\\n\\n  if (status !== Z_OK) {\\n    throw new Error(msg[status]);\\n  }\\n\\n  if (opt.header) {\\n    zlib_deflate.deflateSetHeader(this.strm, opt.header);\\n  }\\n\\n  if (opt.dictionary) {\\n    let dict;\\n    // Convert data if needed\\n    if (typeof opt.dictionary === 'string') {\\n      // If we need to compress text, change encoding to utf8.\\n      dict = strings.string2buf(opt.dictionary);\\n    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\\n      dict = new Uint8Array(opt.dictionary);\\n    } else {\\n      dict = opt.dictionary;\\n    }\\n\\n    status = zlib_deflate.deflateSetDictionary(this.strm, dict);\\n\\n    if (status !== Z_OK) {\\n      throw new Error(msg[status]);\\n    }\\n\\n    this._dict_set = true;\\n  }\\n}\\n\\n/**\\n * Deflate#push(data[, flush_mode]) -> Boolean\\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\\n *   converted to utf8 byte sequence.\\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\\n *\\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\\n * new compressed chunks. Returns `true` on success. The last data block must\\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\\n * buffers and call [[Deflate#onEnd]].\\n *\\n * On fail call [[Deflate#onEnd]] with error code and return false.\\n *\\n * ##### Example\\n *\\n * ```javascript\\n * push(chunk, false); // push one of data chunks\\n * ...\\n * push(chunk, true);  // push last chunk\\n * ```\\n **/\\nDeflate.prototype.push = function (data, flush_mode) {\\n  const strm = this.strm;\\n  const chunkSize = this.options.chunkSize;\\n  let status, _flush_mode;\\n\\n  if (this.ended) { return false; }\\n\\n  if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\\n  else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\\n\\n  // Convert data if needed\\n  if (typeof data === 'string') {\\n    // If we need to compress text, change encoding to utf8.\\n    strm.input = strings.string2buf(data);\\n  } else if (toString.call(data) === '[object ArrayBuffer]') {\\n    strm.input = new Uint8Array(data);\\n  } else {\\n    strm.input = data;\\n  }\\n\\n  strm.next_in = 0;\\n  strm.avail_in = strm.input.length;\\n\\n  for (;;) {\\n    if (strm.avail_out === 0) {\\n      strm.output = new Uint8Array(chunkSize);\\n      strm.next_out = 0;\\n      strm.avail_out = chunkSize;\\n    }\\n\\n    // Make sure avail_out > 6 to avoid repeating markers\\n    if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\\n      this.onData(strm.output.subarray(0, strm.next_out));\\n      strm.avail_out = 0;\\n      continue;\\n    }\\n\\n    status = zlib_deflate.deflate(strm, _flush_mode);\\n\\n    // Ended => flush and finish\\n    if (status === Z_STREAM_END) {\\n      if (strm.next_out > 0) {\\n        this.onData(strm.output.subarray(0, strm.next_out));\\n      }\\n      status = zlib_deflate.deflateEnd(this.strm);\\n      this.onEnd(status);\\n      this.ended = true;\\n      return status === Z_OK;\\n    }\\n\\n    // Flush if out buffer full\\n    if (strm.avail_out === 0) {\\n      this.onData(strm.output);\\n      continue;\\n    }\\n\\n    // Flush if requested and has data\\n    if (_flush_mode > 0 && strm.next_out > 0) {\\n      this.onData(strm.output.subarray(0, strm.next_out));\\n      strm.avail_out = 0;\\n      continue;\\n    }\\n\\n    if (strm.avail_in === 0) break;\\n  }\\n\\n  return true;\\n};\\n\\n\\n/**\\n * Deflate#onData(chunk) -> Void\\n * - chunk (Uint8Array): output data.\\n *\\n * By default, stores data blocks in `chunks[]` property and glue\\n * those in `onEnd`. Override this handler, if you need another behaviour.\\n **/\\nDeflate.prototype.onData = function (chunk) {\\n  this.chunks.push(chunk);\\n};\\n\\n\\n/**\\n * Deflate#onEnd(status) -> Void\\n * - status (Number): deflate status. 0 (Z_OK) on success,\\n *   other if not.\\n *\\n * Called once after you tell deflate that the input stream is\\n * complete (Z_FINISH). By default - join collected chunks,\\n * free memory and fill `results` / `err` properties.\\n **/\\nDeflate.prototype.onEnd = function (status) {\\n  // On success - join\\n  if (status === Z_OK) {\\n    this.result = utils.flattenChunks(this.chunks);\\n  }\\n  this.chunks = [];\\n  this.err = status;\\n  this.msg = this.strm.msg;\\n};\\n\\n\\n/**\\n * deflate(data[, options]) -> Uint8Array\\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\\n * - options (Object): zlib deflate options.\\n *\\n * Compress `data` with deflate algorithm and `options`.\\n *\\n * Supported options are:\\n *\\n * - level\\n * - windowBits\\n * - memLevel\\n * - strategy\\n * - dictionary\\n *\\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\\n * for more information on these.\\n *\\n * Sugar (options):\\n *\\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\\n *   negative windowBits implicitly.\\n *\\n * ##### Example:\\n *\\n * ```javascript\\n * const pako = require('pako')\\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\\n *\\n * console.log(pako.deflate(data));\\n * ```\\n **/\\nfunction deflate(input, options) {\\n  const deflator = new Deflate(options);\\n\\n  deflator.push(input, true);\\n\\n  // That will never happens, if you don't cheat with options :)\\n  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\\n\\n  return deflator.result;\\n}\\n\\n\\n/**\\n * deflateRaw(data[, options]) -> Uint8Array\\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\\n * - options (Object): zlib deflate options.\\n *\\n * The same as [[deflate]], but creates raw data, without wrapper\\n * (header and adler32 crc).\\n **/\\nfunction deflateRaw(input, options) {\\n  options = options || {};\\n  options.raw = true;\\n  return deflate(input, options);\\n}\\n\\n\\n/**\\n * gzip(data[, options]) -> Uint8Array\\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\\n * - options (Object): zlib deflate options.\\n *\\n * The same as [[deflate]], but create gzip wrapper instead of\\n * deflate one.\\n **/\\nfunction gzip(input, options) {\\n  options = options || {};\\n  options.gzip = true;\\n  return deflate(input, options);\\n}\\n\\n\\nmodule.exports.Deflate = Deflate;\\nmodule.exports.deflate = deflate;\\nmodule.exports.deflateRaw = deflateRaw;\\nmodule.exports.gzip = gzip;\\nmodule.exports.constants = __webpack_require__(/*! ./zlib/constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/deflate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/inflate.js\":\n/*!******************************************!*\\\n  !*** ./node_modules/pako/lib/inflate.js ***!\n  \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n\\nconst zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ \\\"./node_modules/pako/lib/zlib/inflate.js\\\");\\nconst utils        = __webpack_require__(/*! ./utils/common */ \\\"./node_modules/pako/lib/utils/common.js\\\");\\nconst strings      = __webpack_require__(/*! ./utils/strings */ \\\"./node_modules/pako/lib/utils/strings.js\\\");\\nconst msg          = __webpack_require__(/*! ./zlib/messages */ \\\"./node_modules/pako/lib/zlib/messages.js\\\");\\nconst ZStream      = __webpack_require__(/*! ./zlib/zstream */ \\\"./node_modules/pako/lib/zlib/zstream.js\\\");\\nconst GZheader     = __webpack_require__(/*! ./zlib/gzheader */ \\\"./node_modules/pako/lib/zlib/gzheader.js\\\");\\n\\nconst toString = Object.prototype.toString;\\n\\n/* Public constants ==========================================================*/\\n/* ===========================================================================*/\\n\\nconst {\\n  Z_NO_FLUSH, Z_FINISH,\\n  Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\\n} = __webpack_require__(/*! ./zlib/constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n/* ===========================================================================*/\\n\\n\\n/**\\n * class Inflate\\n *\\n * Generic JS-style wrapper for zlib calls. If you don't need\\n * streaming behaviour - use more simple functions: [[inflate]]\\n * and [[inflateRaw]].\\n **/\\n\\n/* internal\\n * inflate.chunks -> Array\\n *\\n * Chunks of output data, if [[Inflate#onData]] not overridden.\\n **/\\n\\n/**\\n * Inflate.result -> Uint8Array|String\\n *\\n * Uncompressed result, generated by default [[Inflate#onData]]\\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\\n **/\\n\\n/**\\n * Inflate.err -> Number\\n *\\n * Error code after inflate finished. 0 (Z_OK) on success.\\n * Should be checked if broken data possible.\\n **/\\n\\n/**\\n * Inflate.msg -> String\\n *\\n * Error message, if [[Inflate.err]] != 0\\n **/\\n\\n\\n/**\\n * new Inflate(options)\\n * - options (Object): zlib inflate options.\\n *\\n * Creates new inflator instance with specified params. Throws exception\\n * on bad params. Supported options:\\n *\\n * - `windowBits`\\n * - `dictionary`\\n *\\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\\n * for more information on these.\\n *\\n * Additional options, for internal needs:\\n *\\n * - `chunkSize` - size of generated data chunks (16K by default)\\n * - `raw` (Boolean) - do raw inflate\\n * - `to` (String) - if equal to 'string', then result will be converted\\n *   from utf8 to utf16 (javascript) string. When string output requested,\\n *   chunk length can differ from `chunkSize`, depending on content.\\n *\\n * By default, when no options set, autodetect deflate/gzip data format via\\n * wrapper header.\\n *\\n * ##### Example:\\n *\\n * ```javascript\\n * const pako = require('pako')\\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\\n *\\n * const inflate = new pako.Inflate({ level: 3});\\n *\\n * inflate.push(chunk1, false);\\n * inflate.push(chunk2, true);  // true -> last chunk\\n *\\n * if (inflate.err) { throw new Error(inflate.err); }\\n *\\n * console.log(inflate.result);\\n * ```\\n **/\\nfunction Inflate(options) {\\n  this.options = utils.assign({\\n    chunkSize: 1024 * 64,\\n    windowBits: 15,\\n    to: ''\\n  }, options || {});\\n\\n  const opt = this.options;\\n\\n  // Force window size for `raw` data, if not set directly,\\n  // because we have no header for autodetect.\\n  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\\n    opt.windowBits = -opt.windowBits;\\n    if (opt.windowBits === 0) { opt.windowBits = -15; }\\n  }\\n\\n  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\\n  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\\n      !(options && options.windowBits)) {\\n    opt.windowBits += 32;\\n  }\\n\\n  // Gzip header has no info about windows size, we can do autodetect only\\n  // for deflate. So, if window size not set, force it to max when gzip possible\\n  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\\n    // bit 3 (16) -> gzipped data\\n    // bit 4 (32) -> autodetect gzip/deflate\\n    if ((opt.windowBits & 15) === 0) {\\n      opt.windowBits |= 15;\\n    }\\n  }\\n\\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\\n  this.msg    = '';     // error message\\n  this.ended  = false;  // used to avoid multiple onEnd() calls\\n  this.chunks = [];     // chunks of compressed data\\n\\n  this.strm   = new ZStream();\\n  this.strm.avail_out = 0;\\n\\n  let status  = zlib_inflate.inflateInit2(\\n    this.strm,\\n    opt.windowBits\\n  );\\n\\n  if (status !== Z_OK) {\\n    throw new Error(msg[status]);\\n  }\\n\\n  this.header = new GZheader();\\n\\n  zlib_inflate.inflateGetHeader(this.strm, this.header);\\n\\n  // Setup dictionary\\n  if (opt.dictionary) {\\n    // Convert data if needed\\n    if (typeof opt.dictionary === 'string') {\\n      opt.dictionary = strings.string2buf(opt.dictionary);\\n    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\\n      opt.dictionary = new Uint8Array(opt.dictionary);\\n    }\\n    if (opt.raw) { //In raw mode we need to set the dictionary early\\n      status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\\n      if (status !== Z_OK) {\\n        throw new Error(msg[status]);\\n      }\\n    }\\n  }\\n}\\n\\n/**\\n * Inflate#push(data[, flush_mode]) -> Boolean\\n * - data (Uint8Array|ArrayBuffer): input data\\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\\n *   flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\\n *   `true` means Z_FINISH.\\n *\\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\\n * new output chunks. Returns `true` on success. If end of stream detected,\\n * [[Inflate#onEnd]] will be called.\\n *\\n * `flush_mode` is not needed for normal operation, because end of stream\\n * detected automatically. You may try to use it for advanced things, but\\n * this functionality was not tested.\\n *\\n * On fail call [[Inflate#onEnd]] with error code and return false.\\n *\\n * ##### Example\\n *\\n * ```javascript\\n * push(chunk, false); // push one of data chunks\\n * ...\\n * push(chunk, true);  // push last chunk\\n * ```\\n **/\\nInflate.prototype.push = function (data, flush_mode) {\\n  const strm = this.strm;\\n  const chunkSize = this.options.chunkSize;\\n  const dictionary = this.options.dictionary;\\n  let status, _flush_mode, last_avail_out;\\n\\n  if (this.ended) return false;\\n\\n  if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\\n  else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\\n\\n  // Convert data if needed\\n  if (toString.call(data) === '[object ArrayBuffer]') {\\n    strm.input = new Uint8Array(data);\\n  } else {\\n    strm.input = data;\\n  }\\n\\n  strm.next_in = 0;\\n  strm.avail_in = strm.input.length;\\n\\n  for (;;) {\\n    if (strm.avail_out === 0) {\\n      strm.output = new Uint8Array(chunkSize);\\n      strm.next_out = 0;\\n      strm.avail_out = chunkSize;\\n    }\\n\\n    status = zlib_inflate.inflate(strm, _flush_mode);\\n\\n    if (status === Z_NEED_DICT && dictionary) {\\n      status = zlib_inflate.inflateSetDictionary(strm, dictionary);\\n\\n      if (status === Z_OK) {\\n        status = zlib_inflate.inflate(strm, _flush_mode);\\n      } else if (status === Z_DATA_ERROR) {\\n        // Replace code with more verbose\\n        status = Z_NEED_DICT;\\n      }\\n    }\\n\\n    // Skip snyc markers if more data follows and not raw mode\\n    while (strm.avail_in > 0 &&\\n           status === Z_STREAM_END &&\\n           strm.state.wrap > 0 &&\\n           data[strm.next_in] !== 0)\\n    {\\n      zlib_inflate.inflateReset(strm);\\n      status = zlib_inflate.inflate(strm, _flush_mode);\\n    }\\n\\n    switch (status) {\\n      case Z_STREAM_ERROR:\\n      case Z_DATA_ERROR:\\n      case Z_NEED_DICT:\\n      case Z_MEM_ERROR:\\n        this.onEnd(status);\\n        this.ended = true;\\n        return false;\\n    }\\n\\n    // Remember real `avail_out` value, because we may patch out buffer content\\n    // to align utf8 strings boundaries.\\n    last_avail_out = strm.avail_out;\\n\\n    if (strm.next_out) {\\n      if (strm.avail_out === 0 || status === Z_STREAM_END) {\\n\\n        if (this.options.to === 'string') {\\n\\n          let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\\n\\n          let tail = strm.next_out - next_out_utf8;\\n          let utf8str = strings.buf2string(strm.output, next_out_utf8);\\n\\n          // move tail & realign counters\\n          strm.next_out = tail;\\n          strm.avail_out = chunkSize - tail;\\n          if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\\n\\n          this.onData(utf8str);\\n\\n        } else {\\n          this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\\n        }\\n      }\\n    }\\n\\n    // Must repeat iteration if out buffer is full\\n    if (status === Z_OK && last_avail_out === 0) continue;\\n\\n    // Finalize if end of stream reached.\\n    if (status === Z_STREAM_END) {\\n      status = zlib_inflate.inflateEnd(this.strm);\\n      this.onEnd(status);\\n      this.ended = true;\\n      return true;\\n    }\\n\\n    if (strm.avail_in === 0) break;\\n  }\\n\\n  return true;\\n};\\n\\n\\n/**\\n * Inflate#onData(chunk) -> Void\\n * - chunk (Uint8Array|String): output data. When string output requested,\\n *   each chunk will be string.\\n *\\n * By default, stores data blocks in `chunks[]` property and glue\\n * those in `onEnd`. Override this handler, if you need another behaviour.\\n **/\\nInflate.prototype.onData = function (chunk) {\\n  this.chunks.push(chunk);\\n};\\n\\n\\n/**\\n * Inflate#onEnd(status) -> Void\\n * - status (Number): inflate status. 0 (Z_OK) on success,\\n *   other if not.\\n *\\n * Called either after you tell inflate that the input stream is\\n * complete (Z_FINISH). By default - join collected chunks,\\n * free memory and fill `results` / `err` properties.\\n **/\\nInflate.prototype.onEnd = function (status) {\\n  // On success - join\\n  if (status === Z_OK) {\\n    if (this.options.to === 'string') {\\n      this.result = this.chunks.join('');\\n    } else {\\n      this.result = utils.flattenChunks(this.chunks);\\n    }\\n  }\\n  this.chunks = [];\\n  this.err = status;\\n  this.msg = this.strm.msg;\\n};\\n\\n\\n/**\\n * inflate(data[, options]) -> Uint8Array|String\\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\\n * - options (Object): zlib inflate options.\\n *\\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\\n * format via wrapper header by default. That's why we don't provide\\n * separate `ungzip` method.\\n *\\n * Supported options are:\\n *\\n * - windowBits\\n *\\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\\n * for more information.\\n *\\n * Sugar (options):\\n *\\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\\n *   negative windowBits implicitly.\\n * - `to` (String) - if equal to 'string', then result will be converted\\n *   from utf8 to utf16 (javascript) string. When string output requested,\\n *   chunk length can differ from `chunkSize`, depending on content.\\n *\\n *\\n * ##### Example:\\n *\\n * ```javascript\\n * const pako = require('pako');\\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\\n * let output;\\n *\\n * try {\\n *   output = pako.inflate(input);\\n * } catch (err) {\\n *   console.log(err);\\n * }\\n * ```\\n **/\\nfunction inflate(input, options) {\\n  const inflator = new Inflate(options);\\n\\n  inflator.push(input);\\n\\n  // That will never happens, if you don't cheat with options :)\\n  if (inflator.err) throw inflator.msg || msg[inflator.err];\\n\\n  return inflator.result;\\n}\\n\\n\\n/**\\n * inflateRaw(data[, options]) -> Uint8Array|String\\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\\n * - options (Object): zlib inflate options.\\n *\\n * The same as [[inflate]], but creates raw data, without wrapper\\n * (header and adler32 crc).\\n **/\\nfunction inflateRaw(input, options) {\\n  options = options || {};\\n  options.raw = true;\\n  return inflate(input, options);\\n}\\n\\n\\n/**\\n * ungzip(data[, options]) -> Uint8Array|String\\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\\n * - options (Object): zlib inflate options.\\n *\\n * Just shortcut to [[inflate]], because it autodetects format\\n * by header.content. Done for convenience.\\n **/\\n\\n\\nmodule.exports.Inflate = Inflate;\\nmodule.exports.inflate = inflate;\\nmodule.exports.inflateRaw = inflateRaw;\\nmodule.exports.ungzip = inflate;\\nmodule.exports.constants = __webpack_require__(/*! ./zlib/constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/inflate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/utils/common.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/utils/common.js ***!\n  \\***********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n\\nconst _has = (obj, key) => {\\n  return Object.prototype.hasOwnProperty.call(obj, key);\\n};\\n\\nmodule.exports.assign = function (obj /*from1, from2, from3, ...*/) {\\n  const sources = Array.prototype.slice.call(arguments, 1);\\n  while (sources.length) {\\n    const source = sources.shift();\\n    if (!source) { continue; }\\n\\n    if (typeof source !== 'object') {\\n      throw new TypeError(source + 'must be non-object');\\n    }\\n\\n    for (const p in source) {\\n      if (_has(source, p)) {\\n        obj[p] = source[p];\\n      }\\n    }\\n  }\\n\\n  return obj;\\n};\\n\\n\\n// Join array of chunks to single array.\\nmodule.exports.flattenChunks = (chunks) => {\\n  // calculate data length\\n  let len = 0;\\n\\n  for (let i = 0, l = chunks.length; i < l; i++) {\\n    len += chunks[i].length;\\n  }\\n\\n  // join chunks\\n  const result = new Uint8Array(len);\\n\\n  for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\\n    let chunk = chunks[i];\\n    result.set(chunk, pos);\\n    pos += chunk.length;\\n  }\\n\\n  return result;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/utils/common.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/utils/strings.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/pako/lib/utils/strings.js ***!\n  \\************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"// String encode/decode helpers\\n\\n\\n\\n// Quick check if we can use fast array to bin string conversion\\n//\\n// - apply(Array) can fail on Android 2.2\\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\\n//\\nlet STR_APPLY_UIA_OK = true;\\n\\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\\n\\n\\n// Table with utf8 lengths (calculated by first byte of sequence)\\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\\n// because max possible codepoint is 0x10ffff\\nconst _utf8len = new Uint8Array(256);\\nfor (let q = 0; q < 256; q++) {\\n  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\\n}\\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\\n\\n\\n// convert string to array (typed, when possible)\\nmodule.exports.string2buf = (str) => {\\n  if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\\n    return new TextEncoder().encode(str);\\n  }\\n\\n  let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\\n\\n  // count binary size\\n  for (m_pos = 0; m_pos < str_len; m_pos++) {\\n    c = str.charCodeAt(m_pos);\\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\\n      c2 = str.charCodeAt(m_pos + 1);\\n      if ((c2 & 0xfc00) === 0xdc00) {\\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\\n        m_pos++;\\n      }\\n    }\\n    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\\n  }\\n\\n  // allocate buffer\\n  buf = new Uint8Array(buf_len);\\n\\n  // convert\\n  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\\n    c = str.charCodeAt(m_pos);\\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\\n      c2 = str.charCodeAt(m_pos + 1);\\n      if ((c2 & 0xfc00) === 0xdc00) {\\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\\n        m_pos++;\\n      }\\n    }\\n    if (c < 0x80) {\\n      /* one byte */\\n      buf[i++] = c;\\n    } else if (c < 0x800) {\\n      /* two bytes */\\n      buf[i++] = 0xC0 | (c >>> 6);\\n      buf[i++] = 0x80 | (c & 0x3f);\\n    } else if (c < 0x10000) {\\n      /* three bytes */\\n      buf[i++] = 0xE0 | (c >>> 12);\\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\\n      buf[i++] = 0x80 | (c & 0x3f);\\n    } else {\\n      /* four bytes */\\n      buf[i++] = 0xf0 | (c >>> 18);\\n      buf[i++] = 0x80 | (c >>> 12 & 0x3f);\\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\\n      buf[i++] = 0x80 | (c & 0x3f);\\n    }\\n  }\\n\\n  return buf;\\n};\\n\\n// Helper\\nconst buf2binstring = (buf, len) => {\\n  // On Chrome, the arguments in a function call that are allowed is `65534`.\\n  // If the length of the buffer is smaller than that, we can use this optimization,\\n  // otherwise we will take a slower path.\\n  if (len < 65534) {\\n    if (buf.subarray && STR_APPLY_UIA_OK) {\\n      return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\\n    }\\n  }\\n\\n  let result = '';\\n  for (let i = 0; i < len; i++) {\\n    result += String.fromCharCode(buf[i]);\\n  }\\n  return result;\\n};\\n\\n\\n// convert array to string\\nmodule.exports.buf2string = (buf, max) => {\\n  const len = max || buf.length;\\n\\n  if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\\n    return new TextDecoder().decode(buf.subarray(0, max));\\n  }\\n\\n  let i, out;\\n\\n  // Reserve max possible length (2 words per char)\\n  // NB: by unknown reasons, Array is significantly faster for\\n  //     String.fromCharCode.apply than Uint16Array.\\n  const utf16buf = new Array(len * 2);\\n\\n  for (out = 0, i = 0; i < len;) {\\n    let c = buf[i++];\\n    // quick process ascii\\n    if (c < 0x80) { utf16buf[out++] = c; continue; }\\n\\n    let c_len = _utf8len[c];\\n    // skip 5 & 6 byte codes\\n    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\\n\\n    // apply mask on first byte\\n    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\\n    // join the rest\\n    while (c_len > 1 && i < len) {\\n      c = (c << 6) | (buf[i++] & 0x3f);\\n      c_len--;\\n    }\\n\\n    // terminated by end of string?\\n    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\\n\\n    if (c < 0x10000) {\\n      utf16buf[out++] = c;\\n    } else {\\n      c -= 0x10000;\\n      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\\n      utf16buf[out++] = 0xdc00 | (c & 0x3ff);\\n    }\\n  }\\n\\n  return buf2binstring(utf16buf, out);\\n};\\n\\n\\n// Calculate max possible position in utf8 buffer,\\n// that will not break sequence. If that's not possible\\n// - (very small limits) return max size as is.\\n//\\n// buf[] - utf8 bytes array\\n// max   - length limit (mandatory);\\nmodule.exports.utf8border = (buf, max) => {\\n\\n  max = max || buf.length;\\n  if (max > buf.length) { max = buf.length; }\\n\\n  // go back from last position, until start of sequence found\\n  let pos = max - 1;\\n  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\\n\\n  // Very small and broken sequence,\\n  // return max, because we should return something anyway.\\n  if (pos < 0) { return max; }\\n\\n  // If we came to start of buffer - that means buffer is too small,\\n  // return max too.\\n  if (pos === 0) { return max; }\\n\\n  return (pos + _utf8len[buf[pos]] > max) ? pos : max;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/utils/strings.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/adler32.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/adler32.js ***!\n  \\***********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\\n// It isn't worth it to make additional optimizations as in original.\\n// Small size is preferable.\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nconst adler32 = (adler, buf, len, pos) => {\\n  let s1 = (adler & 0xffff) |0,\\n      s2 = ((adler >>> 16) & 0xffff) |0,\\n      n = 0;\\n\\n  while (len !== 0) {\\n    // Set limit ~ twice less than 5552, to keep\\n    // s2 in 31-bits, because we force signed ints.\\n    // in other case %= will fail.\\n    n = len > 2000 ? 2000 : len;\\n    len -= n;\\n\\n    do {\\n      s1 = (s1 + buf[pos++]) |0;\\n      s2 = (s2 + s1) |0;\\n    } while (--n);\\n\\n    s1 %= 65521;\\n    s2 %= 65521;\\n  }\\n\\n  return (s1 | (s2 << 16)) |0;\\n};\\n\\n\\nmodule.exports = adler32;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/adler32.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/constants.js\":\n/*!*************************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/constants.js ***!\n  \\*************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nmodule.exports = {\\n\\n  /* Allowed flush values; see deflate() and inflate() below for details */\\n  Z_NO_FLUSH:         0,\\n  Z_PARTIAL_FLUSH:    1,\\n  Z_SYNC_FLUSH:       2,\\n  Z_FULL_FLUSH:       3,\\n  Z_FINISH:           4,\\n  Z_BLOCK:            5,\\n  Z_TREES:            6,\\n\\n  /* Return codes for the compression/decompression functions. Negative values\\n  * are errors, positive values are used for special but normal events.\\n  */\\n  Z_OK:               0,\\n  Z_STREAM_END:       1,\\n  Z_NEED_DICT:        2,\\n  Z_ERRNO:           -1,\\n  Z_STREAM_ERROR:    -2,\\n  Z_DATA_ERROR:      -3,\\n  Z_MEM_ERROR:       -4,\\n  Z_BUF_ERROR:       -5,\\n  //Z_VERSION_ERROR: -6,\\n\\n  /* compression levels */\\n  Z_NO_COMPRESSION:         0,\\n  Z_BEST_SPEED:             1,\\n  Z_BEST_COMPRESSION:       9,\\n  Z_DEFAULT_COMPRESSION:   -1,\\n\\n\\n  Z_FILTERED:               1,\\n  Z_HUFFMAN_ONLY:           2,\\n  Z_RLE:                    3,\\n  Z_FIXED:                  4,\\n  Z_DEFAULT_STRATEGY:       0,\\n\\n  /* Possible values of the data_type field (though see inflate()) */\\n  Z_BINARY:                 0,\\n  Z_TEXT:                   1,\\n  //Z_ASCII:                1, // = Z_TEXT (deprecated)\\n  Z_UNKNOWN:                2,\\n\\n  /* The deflate compression method */\\n  Z_DEFLATED:               8\\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/constants.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/crc32.js\":\n/*!*********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/crc32.js ***!\n  \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// Note: we can't get significant speed boost here.\\n// So write code to minimize size - no pregenerated tables\\n// and array tools dependencies.\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\n// Use ordinary array, since untyped makes no boost here\\nconst makeTable = () => {\\n  let c, table = [];\\n\\n  for (var n = 0; n < 256; n++) {\\n    c = n;\\n    for (var k = 0; k < 8; k++) {\\n      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\\n    }\\n    table[n] = c;\\n  }\\n\\n  return table;\\n};\\n\\n// Create table on load. Just 255 signed longs. Not a problem.\\nconst crcTable = new Uint32Array(makeTable());\\n\\n\\nconst crc32 = (crc, buf, len, pos) => {\\n  const t = crcTable;\\n  const end = pos + len;\\n\\n  crc ^= -1;\\n\\n  for (let i = pos; i < end; i++) {\\n    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\\n  }\\n\\n  return (crc ^ (-1)); // >>> 0;\\n};\\n\\n\\nmodule.exports = crc32;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/crc32.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/deflate.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/deflate.js ***!\n  \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = __webpack_require__(/*! ./trees */ \\\"./node_modules/pako/lib/zlib/trees.js\\\");\\nconst adler32 = __webpack_require__(/*! ./adler32 */ \\\"./node_modules/pako/lib/zlib/adler32.js\\\");\\nconst crc32   = __webpack_require__(/*! ./crc32 */ \\\"./node_modules/pako/lib/zlib/crc32.js\\\");\\nconst msg     = __webpack_require__(/*! ./messages */ \\\"./node_modules/pako/lib/zlib/messages.js\\\");\\n\\n/* Public constants ==========================================================*/\\n/* ===========================================================================*/\\n\\nconst {\\n  Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\\n  Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\\n  Z_DEFAULT_COMPRESSION,\\n  Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY,\\n  Z_UNKNOWN,\\n  Z_DEFLATED\\n} = __webpack_require__(/*! ./constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n/*============================================================================*/\\n\\n\\nconst MAX_MEM_LEVEL = 9;\\n/* Maximum value for memLevel in deflateInit2 */\\nconst MAX_WBITS = 15;\\n/* 32K LZ77 window */\\nconst DEF_MEM_LEVEL = 8;\\n\\n\\nconst LENGTH_CODES  = 29;\\n/* number of length codes, not counting the special END_BLOCK code */\\nconst LITERALS      = 256;\\n/* number of literal bytes 0..255 */\\nconst L_CODES       = LITERALS + 1 + LENGTH_CODES;\\n/* number of Literal or Length codes, including the END_BLOCK code */\\nconst D_CODES       = 30;\\n/* number of distance codes */\\nconst BL_CODES      = 19;\\n/* number of codes used to transfer the bit lengths */\\nconst HEAP_SIZE     = 2 * L_CODES + 1;\\n/* maximum heap size */\\nconst MAX_BITS  = 15;\\n/* All codes must not exceed MAX_BITS bits */\\n\\nconst MIN_MATCH = 3;\\nconst MAX_MATCH = 258;\\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\\n\\nconst PRESET_DICT = 0x20;\\n\\nconst INIT_STATE    =  42;    /* zlib header -> BUSY_STATE */\\n//#ifdef GZIP\\nconst GZIP_STATE    =  57;    /* gzip header -> BUSY_STATE | EXTRA_STATE */\\n//#endif\\nconst EXTRA_STATE   =  69;    /* gzip extra block -> NAME_STATE */\\nconst NAME_STATE    =  73;    /* gzip file name -> COMMENT_STATE */\\nconst COMMENT_STATE =  91;    /* gzip comment -> HCRC_STATE */\\nconst HCRC_STATE    = 103;    /* gzip header CRC -> BUSY_STATE */\\nconst BUSY_STATE    = 113;    /* deflate -> FINISH_STATE */\\nconst FINISH_STATE  = 666;    /* stream complete */\\n\\nconst BS_NEED_MORE      = 1; /* block not completed, need more input or more output */\\nconst BS_BLOCK_DONE     = 2; /* block flush performed */\\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\\nconst BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */\\n\\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\\n\\nconst err = (strm, errorCode) => {\\n  strm.msg = msg[errorCode];\\n  return errorCode;\\n};\\n\\nconst rank = (f) => {\\n  return ((f) * 2) - ((f) > 4 ? 9 : 0);\\n};\\n\\nconst zero = (buf) => {\\n  let len = buf.length; while (--len >= 0) { buf[len] = 0; }\\n};\\n\\n/* ===========================================================================\\n * Slide the hash table when sliding the window down (could be avoided with 32\\n * bit values at the expense of memory usage). We slide even when level == 0 to\\n * keep the hash table consistent if we switch back to level > 0 later.\\n */\\nconst slide_hash = (s) => {\\n  let n, m;\\n  let p;\\n  let wsize = s.w_size;\\n\\n  n = s.hash_size;\\n  p = n;\\n  do {\\n    m = s.head[--p];\\n    s.head[p] = (m >= wsize ? m - wsize : 0);\\n  } while (--n);\\n  n = wsize;\\n//#ifndef FASTEST\\n  p = n;\\n  do {\\n    m = s.prev[--p];\\n    s.prev[p] = (m >= wsize ? m - wsize : 0);\\n    /* If n is not on any hash chain, prev[n] is garbage but\\n     * its value will never be used.\\n     */\\n  } while (--n);\\n//#endif\\n};\\n\\n/* eslint-disable new-cap */\\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\\n// But breaks binary compatibility\\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\\nlet HASH = HASH_ZLIB;\\n\\n\\n/* =========================================================================\\n * Flush as much pending output as possible. All deflate() output, except for\\n * some deflate_stored() output, goes through this function so some\\n * applications may wish to modify it to avoid allocating a large\\n * strm->next_out buffer and copying into it. (See also read_buf()).\\n */\\nconst flush_pending = (strm) => {\\n  const s = strm.state;\\n\\n  //_tr_flush_bits(s);\\n  let len = s.pending;\\n  if (len > strm.avail_out) {\\n    len = strm.avail_out;\\n  }\\n  if (len === 0) { return; }\\n\\n  strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\\n  strm.next_out  += len;\\n  s.pending_out  += len;\\n  strm.total_out += len;\\n  strm.avail_out -= len;\\n  s.pending      -= len;\\n  if (s.pending === 0) {\\n    s.pending_out = 0;\\n  }\\n};\\n\\n\\nconst flush_block_only = (s, last) => {\\n  _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\\n  s.block_start = s.strstart;\\n  flush_pending(s.strm);\\n};\\n\\n\\nconst put_byte = (s, b) => {\\n  s.pending_buf[s.pending++] = b;\\n};\\n\\n\\n/* =========================================================================\\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\\n * IN assertion: the stream state is correct and there is enough room in\\n * pending_buf.\\n */\\nconst putShortMSB = (s, b) => {\\n\\n  //  put_byte(s, (Byte)(b >> 8));\\n//  put_byte(s, (Byte)(b & 0xff));\\n  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\\n  s.pending_buf[s.pending++] = b & 0xff;\\n};\\n\\n\\n/* ===========================================================================\\n * Read a new buffer from the current input stream, update the adler32\\n * and total number of bytes read.  All deflate() input goes through\\n * this function so some applications may wish to modify it to avoid\\n * allocating a large strm->input buffer and copying from it.\\n * (See also flush_pending()).\\n */\\nconst read_buf = (strm, buf, start, size) => {\\n\\n  let len = strm.avail_in;\\n\\n  if (len > size) { len = size; }\\n  if (len === 0) { return 0; }\\n\\n  strm.avail_in -= len;\\n\\n  // zmemcpy(buf, strm->next_in, len);\\n  buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\\n  if (strm.state.wrap === 1) {\\n    strm.adler = adler32(strm.adler, buf, len, start);\\n  }\\n\\n  else if (strm.state.wrap === 2) {\\n    strm.adler = crc32(strm.adler, buf, len, start);\\n  }\\n\\n  strm.next_in += len;\\n  strm.total_in += len;\\n\\n  return len;\\n};\\n\\n\\n/* ===========================================================================\\n * Set match_start to the longest match starting at the given string and\\n * return its length. Matches shorter or equal to prev_length are discarded,\\n * in which case the result is equal to prev_length and match_start is\\n * garbage.\\n * IN assertions: cur_match is the head of the hash chain for the current\\n *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\\n * OUT assertion: the match length is not greater than s->lookahead.\\n */\\nconst longest_match = (s, cur_match) => {\\n\\n  let chain_length = s.max_chain_length;      /* max hash chain length */\\n  let scan = s.strstart; /* current string */\\n  let match;                       /* matched string */\\n  let len;                           /* length of current match */\\n  let best_len = s.prev_length;              /* best match length so far */\\n  let nice_match = s.nice_match;             /* stop if match long enough */\\n  const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\\n      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\\n\\n  const _win = s.window; // shortcut\\n\\n  const wmask = s.w_mask;\\n  const prev  = s.prev;\\n\\n  /* Stop when cur_match becomes <= limit. To simplify the code,\\n   * we prevent matches with the string of window index 0.\\n   */\\n\\n  const strend = s.strstart + MAX_MATCH;\\n  let scan_end1  = _win[scan + best_len - 1];\\n  let scan_end   = _win[scan + best_len];\\n\\n  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\\n   * It is easy to get rid of this optimization if necessary.\\n   */\\n  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \\\"Code too clever\\\");\\n\\n  /* Do not waste too much time if we already have a good match: */\\n  if (s.prev_length >= s.good_match) {\\n    chain_length >>= 2;\\n  }\\n  /* Do not look for matches beyond the end of the input. This is necessary\\n   * to make deflate deterministic.\\n   */\\n  if (nice_match > s.lookahead) { nice_match = s.lookahead; }\\n\\n  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \\\"need lookahead\\\");\\n\\n  do {\\n    // Assert(cur_match < s->strstart, \\\"no future\\\");\\n    match = cur_match;\\n\\n    /* Skip to next match if the match length cannot increase\\n     * or if the match length is less than 2.  Note that the checks below\\n     * for insufficient lookahead only occur occasionally for performance\\n     * reasons.  Therefore uninitialized memory will be accessed, and\\n     * conditional jumps will be made that depend on those values.\\n     * However the length of the match is limited to the lookahead, so\\n     * the output of deflate is not affected by the uninitialized values.\\n     */\\n\\n    if (_win[match + best_len]     !== scan_end  ||\\n        _win[match + best_len - 1] !== scan_end1 ||\\n        _win[match]                !== _win[scan] ||\\n        _win[++match]              !== _win[scan + 1]) {\\n      continue;\\n    }\\n\\n    /* The check at best_len-1 can be removed because it will be made\\n     * again later. (This heuristic is not always a win.)\\n     * It is not necessary to compare scan[2] and match[2] since they\\n     * are always equal when the other bytes match, given that\\n     * the hash keys are equal and that HASH_BITS >= 8.\\n     */\\n    scan += 2;\\n    match++;\\n    // Assert(*scan == *match, \\\"match[2]?\\\");\\n\\n    /* We check for insufficient lookahead only every 8th comparison;\\n     * the 256th check will be made at strstart+258.\\n     */\\n    do {\\n      /*jshint noempty:false*/\\n    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\\n             scan < strend);\\n\\n    // Assert(scan <= s->window+(unsigned)(s->window_size-1), \\\"wild scan\\\");\\n\\n    len = MAX_MATCH - (strend - scan);\\n    scan = strend - MAX_MATCH;\\n\\n    if (len > best_len) {\\n      s.match_start = cur_match;\\n      best_len = len;\\n      if (len >= nice_match) {\\n        break;\\n      }\\n      scan_end1  = _win[scan + best_len - 1];\\n      scan_end   = _win[scan + best_len];\\n    }\\n  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\\n\\n  if (best_len <= s.lookahead) {\\n    return best_len;\\n  }\\n  return s.lookahead;\\n};\\n\\n\\n/* ===========================================================================\\n * Fill the window when the lookahead becomes insufficient.\\n * Updates strstart and lookahead.\\n *\\n * IN assertion: lookahead < MIN_LOOKAHEAD\\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\\n *    At least one byte has been read, or avail_in == 0; reads are\\n *    performed for at least two bytes (required for the zip translate_eol\\n *    option -- not supported here).\\n */\\nconst fill_window = (s) => {\\n\\n  const _w_size = s.w_size;\\n  let n, more, str;\\n\\n  //Assert(s->lookahead < MIN_LOOKAHEAD, \\\"already enough lookahead\\\");\\n\\n  do {\\n    more = s.window_size - s.lookahead - s.strstart;\\n\\n    // JS ints have 32 bit, block below not needed\\n    /* Deal with !@#$% 64K limit: */\\n    //if (sizeof(int) <= 2) {\\n    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\\n    //        more = wsize;\\n    //\\n    //  } else if (more == (unsigned)(-1)) {\\n    //        /* Very unlikely, but possible on 16 bit machine if\\n    //         * strstart == 0 && lookahead == 1 (input done a byte at time)\\n    //         */\\n    //        more--;\\n    //    }\\n    //}\\n\\n\\n    /* If the window is almost full and there is insufficient lookahead,\\n     * move the upper half to the lower one to make room in the upper half.\\n     */\\n    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\\n\\n      s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\\n      s.match_start -= _w_size;\\n      s.strstart -= _w_size;\\n      /* we now have strstart >= MAX_DIST */\\n      s.block_start -= _w_size;\\n      if (s.insert > s.strstart) {\\n        s.insert = s.strstart;\\n      }\\n      slide_hash(s);\\n      more += _w_size;\\n    }\\n    if (s.strm.avail_in === 0) {\\n      break;\\n    }\\n\\n    /* If there was no sliding:\\n     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\\n     *    more == window_size - lookahead - strstart\\n     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\\n     * => more >= window_size - 2*WSIZE + 2\\n     * In the BIG_MEM or MMAP case (not yet supported),\\n     *   window_size == input_size + MIN_LOOKAHEAD  &&\\n     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\\n     * Otherwise, window_size == 2*WSIZE so more >= 2.\\n     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\\n     */\\n    //Assert(more >= 2, \\\"more < 2\\\");\\n    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\\n    s.lookahead += n;\\n\\n    /* Initialize the hash value now that we have some input: */\\n    if (s.lookahead + s.insert >= MIN_MATCH) {\\n      str = s.strstart - s.insert;\\n      s.ins_h = s.window[str];\\n\\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\\n      s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\\n//#if MIN_MATCH != 3\\n//        Call update_hash() MIN_MATCH-3 more times\\n//#endif\\n      while (s.insert) {\\n        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\\n        s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\\n\\n        s.prev[str & s.w_mask] = s.head[s.ins_h];\\n        s.head[s.ins_h] = str;\\n        str++;\\n        s.insert--;\\n        if (s.lookahead + s.insert < MIN_MATCH) {\\n          break;\\n        }\\n      }\\n    }\\n    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\\n     * but this is not important since only literal bytes will be emitted.\\n     */\\n\\n  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\\n\\n  /* If the WIN_INIT bytes after the end of the current data have never been\\n   * written, then zero those bytes in order to avoid memory check reports of\\n   * the use of uninitialized (or uninitialised as Julian writes) bytes by\\n   * the longest match routines.  Update the high water mark for the next\\n   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match\\n   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\\n   */\\n//  if (s.high_water < s.window_size) {\\n//    const curr = s.strstart + s.lookahead;\\n//    let init = 0;\\n//\\n//    if (s.high_water < curr) {\\n//      /* Previous high water mark below current data -- zero WIN_INIT\\n//       * bytes or up to end of window, whichever is less.\\n//       */\\n//      init = s.window_size - curr;\\n//      if (init > WIN_INIT)\\n//        init = WIN_INIT;\\n//      zmemzero(s->window + curr, (unsigned)init);\\n//      s->high_water = curr + init;\\n//    }\\n//    else if (s->high_water < (ulg)curr + WIN_INIT) {\\n//      /* High water mark at or above current data, but below current data\\n//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\\n//       * to end of window, whichever is less.\\n//       */\\n//      init = (ulg)curr + WIN_INIT - s->high_water;\\n//      if (init > s->window_size - s->high_water)\\n//        init = s->window_size - s->high_water;\\n//      zmemzero(s->window + s->high_water, (unsigned)init);\\n//      s->high_water += init;\\n//    }\\n//  }\\n//\\n//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\\n//    \\\"not enough room for search\\\");\\n};\\n\\n/* ===========================================================================\\n * Copy without compression as much as possible from the input stream, return\\n * the current block state.\\n *\\n * In case deflateParams() is used to later switch to a non-zero compression\\n * level, s->matches (otherwise unused when storing) keeps track of the number\\n * of hash table slides to perform. If s->matches is 1, then one hash table\\n * slide will be done when switching. If s->matches is 2, the maximum value\\n * allowed here, then the hash table will be cleared, since two or more slides\\n * is the same as a clear.\\n *\\n * deflate_stored() is written to minimize the number of times an input byte is\\n * copied. It is most efficient with large input and output buffers, which\\n * maximizes the opportunites to have a single copy from next_in to next_out.\\n */\\nconst deflate_stored = (s, flush) => {\\n\\n  /* Smallest worthy block size when not flushing or finishing. By default\\n   * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\\n   * large input and output buffers, the stored block size will be larger.\\n   */\\n  let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\\n\\n  /* Copy as many min_block or larger stored blocks directly to next_out as\\n   * possible. If flushing, copy the remaining available input to next_out as\\n   * stored blocks, if there is enough space.\\n   */\\n  let len, left, have, last = 0;\\n  let used = s.strm.avail_in;\\n  do {\\n    /* Set len to the maximum size block that we can copy directly with the\\n     * available input data and output space. Set left to how much of that\\n     * would be copied from what's left in the window.\\n     */\\n    len = 65535/* MAX_STORED */;     /* maximum deflate stored block length */\\n    have = (s.bi_valid + 42) >> 3;     /* number of header bytes */\\n    if (s.strm.avail_out < have) {         /* need room for header */\\n      break;\\n    }\\n      /* maximum stored block length that will fit in avail_out: */\\n    have = s.strm.avail_out - have;\\n    left = s.strstart - s.block_start;  /* bytes left in window */\\n    if (len > left + s.strm.avail_in) {\\n      len = left + s.strm.avail_in;   /* limit len to the input */\\n    }\\n    if (len > have) {\\n      len = have;             /* limit len to the output */\\n    }\\n\\n    /* If the stored block would be less than min_block in length, or if\\n     * unable to copy all of the available input when flushing, then try\\n     * copying to the window and the pending buffer instead. Also don't\\n     * write an empty block when flushing -- deflate() does that.\\n     */\\n    if (len < min_block && ((len === 0 && flush !== Z_FINISH) ||\\n                        flush === Z_NO_FLUSH ||\\n                        len !== left + s.strm.avail_in)) {\\n      break;\\n    }\\n\\n    /* Make a dummy stored block in pending to get the header bytes,\\n     * including any pending bits. This also updates the debugging counts.\\n     */\\n    last = flush === Z_FINISH && len === left + s.strm.avail_in ? 1 : 0;\\n    _tr_stored_block(s, 0, 0, last);\\n\\n    /* Replace the lengths in the dummy stored block with len. */\\n    s.pending_buf[s.pending - 4] = len;\\n    s.pending_buf[s.pending - 3] = len >> 8;\\n    s.pending_buf[s.pending - 2] = ~len;\\n    s.pending_buf[s.pending - 1] = ~len >> 8;\\n\\n    /* Write the stored block header bytes. */\\n    flush_pending(s.strm);\\n\\n//#ifdef ZLIB_DEBUG\\n//    /* Update debugging counts for the data about to be copied. */\\n//    s->compressed_len += len << 3;\\n//    s->bits_sent += len << 3;\\n//#endif\\n\\n    /* Copy uncompressed bytes from the window to next_out. */\\n    if (left) {\\n      if (left > len) {\\n        left = len;\\n      }\\n      //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\\n      s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\\n      s.strm.next_out += left;\\n      s.strm.avail_out -= left;\\n      s.strm.total_out += left;\\n      s.block_start += left;\\n      len -= left;\\n    }\\n\\n    /* Copy uncompressed bytes directly from next_in to next_out, updating\\n     * the check value.\\n     */\\n    if (len) {\\n      read_buf(s.strm, s.strm.output, s.strm.next_out, len);\\n      s.strm.next_out += len;\\n      s.strm.avail_out -= len;\\n      s.strm.total_out += len;\\n    }\\n  } while (last === 0);\\n\\n  /* Update the sliding window with the last s->w_size bytes of the copied\\n   * data, or append all of the copied data to the existing window if less\\n   * than s->w_size bytes were copied. Also update the number of bytes to\\n   * insert in the hash tables, in the event that deflateParams() switches to\\n   * a non-zero compression level.\\n   */\\n  used -= s.strm.avail_in;    /* number of input bytes directly copied */\\n  if (used) {\\n    /* If any input was used, then no unused input remains in the window,\\n     * therefore s->block_start == s->strstart.\\n     */\\n    if (used >= s.w_size) {  /* supplant the previous history */\\n      s.matches = 2;     /* clear hash */\\n      //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\\n      s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\\n      s.strstart = s.w_size;\\n      s.insert = s.strstart;\\n    }\\n    else {\\n      if (s.window_size - s.strstart <= used) {\\n        /* Slide the window down. */\\n        s.strstart -= s.w_size;\\n        //zmemcpy(s->window, s->window + s->w_size, s->strstart);\\n        s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\\n        if (s.matches < 2) {\\n          s.matches++;   /* add a pending slide_hash() */\\n        }\\n        if (s.insert > s.strstart) {\\n          s.insert = s.strstart;\\n        }\\n      }\\n      //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\\n      s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\\n      s.strstart += used;\\n      s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\\n    }\\n    s.block_start = s.strstart;\\n  }\\n  if (s.high_water < s.strstart) {\\n    s.high_water = s.strstart;\\n  }\\n\\n  /* If the last block was written to next_out, then done. */\\n  if (last) {\\n    return BS_FINISH_DONE;\\n  }\\n\\n  /* If flushing and all input has been consumed, then done. */\\n  if (flush !== Z_NO_FLUSH && flush !== Z_FINISH &&\\n    s.strm.avail_in === 0 && s.strstart === s.block_start) {\\n    return BS_BLOCK_DONE;\\n  }\\n\\n  /* Fill the window with any remaining input. */\\n  have = s.window_size - s.strstart;\\n  if (s.strm.avail_in > have && s.block_start >= s.w_size) {\\n    /* Slide the window down. */\\n    s.block_start -= s.w_size;\\n    s.strstart -= s.w_size;\\n    //zmemcpy(s->window, s->window + s->w_size, s->strstart);\\n    s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\\n    if (s.matches < 2) {\\n      s.matches++;       /* add a pending slide_hash() */\\n    }\\n    have += s.w_size;      /* more space now */\\n    if (s.insert > s.strstart) {\\n      s.insert = s.strstart;\\n    }\\n  }\\n  if (have > s.strm.avail_in) {\\n    have = s.strm.avail_in;\\n  }\\n  if (have) {\\n    read_buf(s.strm, s.window, s.strstart, have);\\n    s.strstart += have;\\n    s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\\n  }\\n  if (s.high_water < s.strstart) {\\n    s.high_water = s.strstart;\\n  }\\n\\n  /* There was not enough avail_out to write a complete worthy or flushed\\n   * stored block to next_out. Write a stored block to pending instead, if we\\n   * have enough input for a worthy block, or if flushing and there is enough\\n   * room for the remaining input as a stored block in the pending buffer.\\n   */\\n  have = (s.bi_valid + 42) >> 3;     /* number of header bytes */\\n    /* maximum stored block length that will fit in pending: */\\n  have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\\n  min_block = have > s.w_size ? s.w_size : have;\\n  left = s.strstart - s.block_start;\\n  if (left >= min_block ||\\n     ((left || flush === Z_FINISH) && flush !== Z_NO_FLUSH &&\\n     s.strm.avail_in === 0 && left <= have)) {\\n    len = left > have ? have : left;\\n    last = flush === Z_FINISH && s.strm.avail_in === 0 &&\\n         len === left ? 1 : 0;\\n    _tr_stored_block(s, s.block_start, len, last);\\n    s.block_start += len;\\n    flush_pending(s.strm);\\n  }\\n\\n  /* We've done all we can with the available input and output. */\\n  return last ? BS_FINISH_STARTED : BS_NEED_MORE;\\n};\\n\\n\\n/* ===========================================================================\\n * Compress as much as possible from the input stream, return the current\\n * block state.\\n * This function does not perform lazy evaluation of matches and inserts\\n * new strings in the dictionary only for unmatched strings or for short\\n * matches. It is used only for the fast compression options.\\n */\\nconst deflate_fast = (s, flush) => {\\n\\n  let hash_head;        /* head of the hash chain */\\n  let bflush;           /* set if current block must be flushed */\\n\\n  for (;;) {\\n    /* Make sure that we always have enough lookahead, except\\n     * at the end of the input file. We need MAX_MATCH bytes\\n     * for the next match, plus MIN_MATCH bytes to insert the\\n     * string following the next match.\\n     */\\n    if (s.lookahead < MIN_LOOKAHEAD) {\\n      fill_window(s);\\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\\n        return BS_NEED_MORE;\\n      }\\n      if (s.lookahead === 0) {\\n        break; /* flush the current block */\\n      }\\n    }\\n\\n    /* Insert the string window[strstart .. strstart+2] in the\\n     * dictionary, and set hash_head to the head of the hash chain:\\n     */\\n    hash_head = 0/*NIL*/;\\n    if (s.lookahead >= MIN_MATCH) {\\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\\n      s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\\n      s.head[s.ins_h] = s.strstart;\\n      /***/\\n    }\\n\\n    /* Find the longest match, discarding those <= prev_length.\\n     * At this point we have always match_length < MIN_MATCH\\n     */\\n    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\\n      /* To simplify the code, we prevent matches with the string\\n       * of window index 0 (in particular we have to avoid a match\\n       * of the string with itself at the start of the input file).\\n       */\\n      s.match_length = longest_match(s, hash_head);\\n      /* longest_match() sets match_start */\\n    }\\n    if (s.match_length >= MIN_MATCH) {\\n      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\\n\\n      /*** _tr_tally_dist(s, s.strstart - s.match_start,\\n                     s.match_length - MIN_MATCH, bflush); ***/\\n      bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\\n\\n      s.lookahead -= s.match_length;\\n\\n      /* Insert new strings in the hash table only if the match length\\n       * is not too large. This saves time but degrades compression.\\n       */\\n      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\\n        s.match_length--; /* string at strstart already in table */\\n        do {\\n          s.strstart++;\\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\\n          s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\\n          s.head[s.ins_h] = s.strstart;\\n          /***/\\n          /* strstart never exceeds WSIZE-MAX_MATCH, so there are\\n           * always MIN_MATCH bytes ahead.\\n           */\\n        } while (--s.match_length !== 0);\\n        s.strstart++;\\n      } else\\n      {\\n        s.strstart += s.match_length;\\n        s.match_length = 0;\\n        s.ins_h = s.window[s.strstart];\\n        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\\n        s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\\n\\n//#if MIN_MATCH != 3\\n//                Call UPDATE_HASH() MIN_MATCH-3 more times\\n//#endif\\n        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\\n         * matter since it will be recomputed at next deflate call.\\n         */\\n      }\\n    } else {\\n      /* No match, output a literal byte */\\n      //Tracevv((stderr,\\\"%c\\\", s.window[s.strstart]));\\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\\n      bflush = _tr_tally(s, 0, s.window[s.strstart]);\\n\\n      s.lookahead--;\\n      s.strstart++;\\n    }\\n    if (bflush) {\\n      /*** FLUSH_BLOCK(s, 0); ***/\\n      flush_block_only(s, false);\\n      if (s.strm.avail_out === 0) {\\n        return BS_NEED_MORE;\\n      }\\n      /***/\\n    }\\n  }\\n  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\\n  if (flush === Z_FINISH) {\\n    /*** FLUSH_BLOCK(s, 1); ***/\\n    flush_block_only(s, true);\\n    if (s.strm.avail_out === 0) {\\n      return BS_FINISH_STARTED;\\n    }\\n    /***/\\n    return BS_FINISH_DONE;\\n  }\\n  if (s.sym_next) {\\n    /*** FLUSH_BLOCK(s, 0); ***/\\n    flush_block_only(s, false);\\n    if (s.strm.avail_out === 0) {\\n      return BS_NEED_MORE;\\n    }\\n    /***/\\n  }\\n  return BS_BLOCK_DONE;\\n};\\n\\n/* ===========================================================================\\n * Same as above, but achieves better compression. We use a lazy\\n * evaluation for matches: a match is finally adopted only if there is\\n * no better match at the next window position.\\n */\\nconst deflate_slow = (s, flush) => {\\n\\n  let hash_head;          /* head of hash chain */\\n  let bflush;              /* set if current block must be flushed */\\n\\n  let max_insert;\\n\\n  /* Process the input block. */\\n  for (;;) {\\n    /* Make sure that we always have enough lookahead, except\\n     * at the end of the input file. We need MAX_MATCH bytes\\n     * for the next match, plus MIN_MATCH bytes to insert the\\n     * string following the next match.\\n     */\\n    if (s.lookahead < MIN_LOOKAHEAD) {\\n      fill_window(s);\\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\\n        return BS_NEED_MORE;\\n      }\\n      if (s.lookahead === 0) { break; } /* flush the current block */\\n    }\\n\\n    /* Insert the string window[strstart .. strstart+2] in the\\n     * dictionary, and set hash_head to the head of the hash chain:\\n     */\\n    hash_head = 0/*NIL*/;\\n    if (s.lookahead >= MIN_MATCH) {\\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\\n      s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\\n      s.head[s.ins_h] = s.strstart;\\n      /***/\\n    }\\n\\n    /* Find the longest match, discarding those <= prev_length.\\n     */\\n    s.prev_length = s.match_length;\\n    s.prev_match = s.match_start;\\n    s.match_length = MIN_MATCH - 1;\\n\\n    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\\n        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\\n      /* To simplify the code, we prevent matches with the string\\n       * of window index 0 (in particular we have to avoid a match\\n       * of the string with itself at the start of the input file).\\n       */\\n      s.match_length = longest_match(s, hash_head);\\n      /* longest_match() sets match_start */\\n\\n      if (s.match_length <= 5 &&\\n         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\\n\\n        /* If prev_match is also MIN_MATCH, match_start is garbage\\n         * but we will ignore the current match anyway.\\n         */\\n        s.match_length = MIN_MATCH - 1;\\n      }\\n    }\\n    /* If there was a match at the previous step and the current\\n     * match is not better, output the previous match:\\n     */\\n    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\\n      max_insert = s.strstart + s.lookahead - MIN_MATCH;\\n      /* Do not insert strings in hash table beyond this. */\\n\\n      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\\n\\n      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\\n                     s.prev_length - MIN_MATCH, bflush);***/\\n      bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\\n      /* Insert in hash table all strings up to the end of the match.\\n       * strstart-1 and strstart are already inserted. If there is not\\n       * enough lookahead, the last two strings are not inserted in\\n       * the hash table.\\n       */\\n      s.lookahead -= s.prev_length - 1;\\n      s.prev_length -= 2;\\n      do {\\n        if (++s.strstart <= max_insert) {\\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\\n          s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\\n          s.head[s.ins_h] = s.strstart;\\n          /***/\\n        }\\n      } while (--s.prev_length !== 0);\\n      s.match_available = 0;\\n      s.match_length = MIN_MATCH - 1;\\n      s.strstart++;\\n\\n      if (bflush) {\\n        /*** FLUSH_BLOCK(s, 0); ***/\\n        flush_block_only(s, false);\\n        if (s.strm.avail_out === 0) {\\n          return BS_NEED_MORE;\\n        }\\n        /***/\\n      }\\n\\n    } else if (s.match_available) {\\n      /* If there was no match at the previous position, output a\\n       * single literal. If there was a match but the current match\\n       * is longer, truncate the previous match to a single literal.\\n       */\\n      //Tracevv((stderr,\\\"%c\\\", s->window[s->strstart-1]));\\n      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\\n      bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\\n\\n      if (bflush) {\\n        /*** FLUSH_BLOCK_ONLY(s, 0) ***/\\n        flush_block_only(s, false);\\n        /***/\\n      }\\n      s.strstart++;\\n      s.lookahead--;\\n      if (s.strm.avail_out === 0) {\\n        return BS_NEED_MORE;\\n      }\\n    } else {\\n      /* There is no previous match to compare with, wait for\\n       * the next step to decide.\\n       */\\n      s.match_available = 1;\\n      s.strstart++;\\n      s.lookahead--;\\n    }\\n  }\\n  //Assert (flush != Z_NO_FLUSH, \\\"no flush?\\\");\\n  if (s.match_available) {\\n    //Tracevv((stderr,\\\"%c\\\", s->window[s->strstart-1]));\\n    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\\n    bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\\n\\n    s.match_available = 0;\\n  }\\n  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\\n  if (flush === Z_FINISH) {\\n    /*** FLUSH_BLOCK(s, 1); ***/\\n    flush_block_only(s, true);\\n    if (s.strm.avail_out === 0) {\\n      return BS_FINISH_STARTED;\\n    }\\n    /***/\\n    return BS_FINISH_DONE;\\n  }\\n  if (s.sym_next) {\\n    /*** FLUSH_BLOCK(s, 0); ***/\\n    flush_block_only(s, false);\\n    if (s.strm.avail_out === 0) {\\n      return BS_NEED_MORE;\\n    }\\n    /***/\\n  }\\n\\n  return BS_BLOCK_DONE;\\n};\\n\\n\\n/* ===========================================================================\\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\\n * one.  Do not maintain a hash table.  (It will be regenerated if this run of\\n * deflate switches away from Z_RLE.)\\n */\\nconst deflate_rle = (s, flush) => {\\n\\n  let bflush;            /* set if current block must be flushed */\\n  let prev;              /* byte at distance one to match */\\n  let scan, strend;      /* scan goes up to strend for length of run */\\n\\n  const _win = s.window;\\n\\n  for (;;) {\\n    /* Make sure that we always have enough lookahead, except\\n     * at the end of the input file. We need MAX_MATCH bytes\\n     * for the longest run, plus one for the unrolled loop.\\n     */\\n    if (s.lookahead <= MAX_MATCH) {\\n      fill_window(s);\\n      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\\n        return BS_NEED_MORE;\\n      }\\n      if (s.lookahead === 0) { break; } /* flush the current block */\\n    }\\n\\n    /* See how many times the previous byte repeats */\\n    s.match_length = 0;\\n    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\\n      scan = s.strstart - 1;\\n      prev = _win[scan];\\n      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\\n        strend = s.strstart + MAX_MATCH;\\n        do {\\n          /*jshint noempty:false*/\\n        } while (prev === _win[++scan] && prev === _win[++scan] &&\\n                 prev === _win[++scan] && prev === _win[++scan] &&\\n                 prev === _win[++scan] && prev === _win[++scan] &&\\n                 prev === _win[++scan] && prev === _win[++scan] &&\\n                 scan < strend);\\n        s.match_length = MAX_MATCH - (strend - scan);\\n        if (s.match_length > s.lookahead) {\\n          s.match_length = s.lookahead;\\n        }\\n      }\\n      //Assert(scan <= s->window+(uInt)(s->window_size-1), \\\"wild scan\\\");\\n    }\\n\\n    /* Emit match if have run of MIN_MATCH or longer, else emit literal */\\n    if (s.match_length >= MIN_MATCH) {\\n      //check_match(s, s.strstart, s.strstart - 1, s.match_length);\\n\\n      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\\n      bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\\n\\n      s.lookahead -= s.match_length;\\n      s.strstart += s.match_length;\\n      s.match_length = 0;\\n    } else {\\n      /* No match, output a literal byte */\\n      //Tracevv((stderr,\\\"%c\\\", s->window[s->strstart]));\\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\\n      bflush = _tr_tally(s, 0, s.window[s.strstart]);\\n\\n      s.lookahead--;\\n      s.strstart++;\\n    }\\n    if (bflush) {\\n      /*** FLUSH_BLOCK(s, 0); ***/\\n      flush_block_only(s, false);\\n      if (s.strm.avail_out === 0) {\\n        return BS_NEED_MORE;\\n      }\\n      /***/\\n    }\\n  }\\n  s.insert = 0;\\n  if (flush === Z_FINISH) {\\n    /*** FLUSH_BLOCK(s, 1); ***/\\n    flush_block_only(s, true);\\n    if (s.strm.avail_out === 0) {\\n      return BS_FINISH_STARTED;\\n    }\\n    /***/\\n    return BS_FINISH_DONE;\\n  }\\n  if (s.sym_next) {\\n    /*** FLUSH_BLOCK(s, 0); ***/\\n    flush_block_only(s, false);\\n    if (s.strm.avail_out === 0) {\\n      return BS_NEED_MORE;\\n    }\\n    /***/\\n  }\\n  return BS_BLOCK_DONE;\\n};\\n\\n/* ===========================================================================\\n * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.\\n * (It will be regenerated if this run of deflate switches away from Huffman.)\\n */\\nconst deflate_huff = (s, flush) => {\\n\\n  let bflush;             /* set if current block must be flushed */\\n\\n  for (;;) {\\n    /* Make sure that we have a literal to write. */\\n    if (s.lookahead === 0) {\\n      fill_window(s);\\n      if (s.lookahead === 0) {\\n        if (flush === Z_NO_FLUSH) {\\n          return BS_NEED_MORE;\\n        }\\n        break;      /* flush the current block */\\n      }\\n    }\\n\\n    /* Output a literal byte */\\n    s.match_length = 0;\\n    //Tracevv((stderr,\\\"%c\\\", s->window[s->strstart]));\\n    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\\n    bflush = _tr_tally(s, 0, s.window[s.strstart]);\\n    s.lookahead--;\\n    s.strstart++;\\n    if (bflush) {\\n      /*** FLUSH_BLOCK(s, 0); ***/\\n      flush_block_only(s, false);\\n      if (s.strm.avail_out === 0) {\\n        return BS_NEED_MORE;\\n      }\\n      /***/\\n    }\\n  }\\n  s.insert = 0;\\n  if (flush === Z_FINISH) {\\n    /*** FLUSH_BLOCK(s, 1); ***/\\n    flush_block_only(s, true);\\n    if (s.strm.avail_out === 0) {\\n      return BS_FINISH_STARTED;\\n    }\\n    /***/\\n    return BS_FINISH_DONE;\\n  }\\n  if (s.sym_next) {\\n    /*** FLUSH_BLOCK(s, 0); ***/\\n    flush_block_only(s, false);\\n    if (s.strm.avail_out === 0) {\\n      return BS_NEED_MORE;\\n    }\\n    /***/\\n  }\\n  return BS_BLOCK_DONE;\\n};\\n\\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\\n * the desired pack level (0..9). The values given below have been tuned to\\n * exclude worst case performance for pathological files. Better values may be\\n * found for specific files.\\n */\\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\\n\\n  this.good_length = good_length;\\n  this.max_lazy = max_lazy;\\n  this.nice_length = nice_length;\\n  this.max_chain = max_chain;\\n  this.func = func;\\n}\\n\\nconst configuration_table = [\\n  /*      good lazy nice chain */\\n  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */\\n  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */\\n  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */\\n  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */\\n\\n  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */\\n  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */\\n  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */\\n  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */\\n  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */\\n  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */\\n];\\n\\n\\n/* ===========================================================================\\n * Initialize the \\\"longest match\\\" routines for a new zlib stream\\n */\\nconst lm_init = (s) => {\\n\\n  s.window_size = 2 * s.w_size;\\n\\n  /*** CLEAR_HASH(s); ***/\\n  zero(s.head); // Fill with NIL (= 0);\\n\\n  /* Set the default configuration parameters:\\n   */\\n  s.max_lazy_match = configuration_table[s.level].max_lazy;\\n  s.good_match = configuration_table[s.level].good_length;\\n  s.nice_match = configuration_table[s.level].nice_length;\\n  s.max_chain_length = configuration_table[s.level].max_chain;\\n\\n  s.strstart = 0;\\n  s.block_start = 0;\\n  s.lookahead = 0;\\n  s.insert = 0;\\n  s.match_length = s.prev_length = MIN_MATCH - 1;\\n  s.match_available = 0;\\n  s.ins_h = 0;\\n};\\n\\n\\nfunction DeflateState() {\\n  this.strm = null;            /* pointer back to this zlib stream */\\n  this.status = 0;            /* as the name implies */\\n  this.pending_buf = null;      /* output still pending */\\n  this.pending_buf_size = 0;  /* size of pending_buf */\\n  this.pending_out = 0;       /* next pending byte to output to the stream */\\n  this.pending = 0;           /* nb of bytes in the pending buffer */\\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\\n  this.gzhead = null;         /* gzip header information to write */\\n  this.gzindex = 0;           /* where in extra, name, or comment */\\n  this.method = Z_DEFLATED; /* can only be DEFLATED */\\n  this.last_flush = -1;   /* value of flush param for previous deflate call */\\n\\n  this.w_size = 0;  /* LZ77 window size (32K by default) */\\n  this.w_bits = 0;  /* log2(w_size)  (8..16) */\\n  this.w_mask = 0;  /* w_size - 1 */\\n\\n  this.window = null;\\n  /* Sliding window. Input bytes are read into the second half of the window,\\n   * and move to the first half later to keep a dictionary of at least wSize\\n   * bytes. With this organization, matches are limited to a distance of\\n   * wSize-MAX_MATCH bytes, but this ensures that IO is always\\n   * performed with a length multiple of the block size.\\n   */\\n\\n  this.window_size = 0;\\n  /* Actual size of window: 2*wSize, except when the user input buffer\\n   * is directly used as sliding window.\\n   */\\n\\n  this.prev = null;\\n  /* Link to older string with same hash index. To limit the size of this\\n   * array to 64K, this link is maintained only for the last 32K strings.\\n   * An index in this array is thus a window index modulo 32K.\\n   */\\n\\n  this.head = null;   /* Heads of the hash chains or NIL. */\\n\\n  this.ins_h = 0;       /* hash index of string to be inserted */\\n  this.hash_size = 0;   /* number of elements in hash table */\\n  this.hash_bits = 0;   /* log2(hash_size) */\\n  this.hash_mask = 0;   /* hash_size-1 */\\n\\n  this.hash_shift = 0;\\n  /* Number of bits by which ins_h must be shifted at each input\\n   * step. It must be such that after MIN_MATCH steps, the oldest\\n   * byte no longer takes part in the hash key, that is:\\n   *   hash_shift * MIN_MATCH >= hash_bits\\n   */\\n\\n  this.block_start = 0;\\n  /* Window position at the beginning of the current output block. Gets\\n   * negative when the window is moved backwards.\\n   */\\n\\n  this.match_length = 0;      /* length of best match */\\n  this.prev_match = 0;        /* previous match */\\n  this.match_available = 0;   /* set if previous match exists */\\n  this.strstart = 0;          /* start of string to insert */\\n  this.match_start = 0;       /* start of matching string */\\n  this.lookahead = 0;         /* number of valid bytes ahead in window */\\n\\n  this.prev_length = 0;\\n  /* Length of the best match at previous step. Matches not greater than this\\n   * are discarded. This is used in the lazy match evaluation.\\n   */\\n\\n  this.max_chain_length = 0;\\n  /* To speed up deflation, hash chains are never searched beyond this\\n   * length.  A higher limit improves compression ratio but degrades the\\n   * speed.\\n   */\\n\\n  this.max_lazy_match = 0;\\n  /* Attempt to find a better match only when the current match is strictly\\n   * smaller than this value. This mechanism is used only for compression\\n   * levels >= 4.\\n   */\\n  // That's alias to max_lazy_match, don't use directly\\n  //this.max_insert_length = 0;\\n  /* Insert new strings in the hash table only if the match length is not\\n   * greater than this length. This saves time but degrades compression.\\n   * max_insert_length is used only for compression levels <= 3.\\n   */\\n\\n  this.level = 0;     /* compression level (1..9) */\\n  this.strategy = 0;  /* favor or force Huffman coding*/\\n\\n  this.good_match = 0;\\n  /* Use a faster search when the previous match is longer than this */\\n\\n  this.nice_match = 0; /* Stop searching when current match exceeds this */\\n\\n              /* used by trees.c: */\\n\\n  /* Didn't use ct_data typedef below to suppress compiler warning */\\n\\n  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */\\n  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\\n  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */\\n\\n  // Use flat array of DOUBLE size, with interleaved fata,\\n  // because JS does not support effective\\n  this.dyn_ltree  = new Uint16Array(HEAP_SIZE * 2);\\n  this.dyn_dtree  = new Uint16Array((2 * D_CODES + 1) * 2);\\n  this.bl_tree    = new Uint16Array((2 * BL_CODES + 1) * 2);\\n  zero(this.dyn_ltree);\\n  zero(this.dyn_dtree);\\n  zero(this.bl_tree);\\n\\n  this.l_desc   = null;         /* desc. for literal tree */\\n  this.d_desc   = null;         /* desc. for distance tree */\\n  this.bl_desc  = null;         /* desc. for bit length tree */\\n\\n  //ush bl_count[MAX_BITS+1];\\n  this.bl_count = new Uint16Array(MAX_BITS + 1);\\n  /* number of codes at each bit length for an optimal tree */\\n\\n  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */\\n  this.heap = new Uint16Array(2 * L_CODES + 1);  /* heap used to build the Huffman trees */\\n  zero(this.heap);\\n\\n  this.heap_len = 0;               /* number of elements in the heap */\\n  this.heap_max = 0;               /* element of largest frequency */\\n  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\\n   * The same heap array is used to build all trees.\\n   */\\n\\n  this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\\n  zero(this.depth);\\n  /* Depth of each subtree used as tie breaker for trees of equal frequency\\n   */\\n\\n  this.sym_buf = 0;        /* buffer for distances and literals/lengths */\\n\\n  this.lit_bufsize = 0;\\n  /* Size of match buffer for literals/lengths.  There are 4 reasons for\\n   * limiting lit_bufsize to 64K:\\n   *   - frequencies can be kept in 16 bit counters\\n   *   - if compression is not successful for the first block, all input\\n   *     data is still in the window so we can still emit a stored block even\\n   *     when input comes from standard input.  (This can also be done for\\n   *     all blocks if lit_bufsize is not greater than 32K.)\\n   *   - if compression is not successful for a file smaller than 64K, we can\\n   *     even emit a stored file instead of a stored block (saving 5 bytes).\\n   *     This is applicable only for zip (not gzip or zlib).\\n   *   - creating new Huffman trees less frequently may not provide fast\\n   *     adaptation to changes in the input data statistics. (Take for\\n   *     example a binary file with poorly compressible code followed by\\n   *     a highly compressible string table.) Smaller buffer sizes give\\n   *     fast adaptation but have of course the overhead of transmitting\\n   *     trees more frequently.\\n   *   - I can't count above 4\\n   */\\n\\n  this.sym_next = 0;      /* running index in sym_buf */\\n  this.sym_end = 0;       /* symbol table full when sym_next reaches this */\\n\\n  this.opt_len = 0;       /* bit length of current block with optimal trees */\\n  this.static_len = 0;    /* bit length of current block with static trees */\\n  this.matches = 0;       /* number of string matches in current block */\\n  this.insert = 0;        /* bytes at end of window left to insert */\\n\\n\\n  this.bi_buf = 0;\\n  /* Output buffer. bits are inserted starting at the bottom (least\\n   * significant bits).\\n   */\\n  this.bi_valid = 0;\\n  /* Number of valid bits in bi_buf.  All bits above the last valid bit\\n   * are always zero.\\n   */\\n\\n  // Used for window memory init. We safely ignore it for JS. That makes\\n  // sense only for pointers and memory check tools.\\n  //this.high_water = 0;\\n  /* High water mark offset in window for initialized bytes -- bytes above\\n   * this are set to zero in order to avoid memory check warnings when\\n   * longest match routines access bytes past the input.  This is then\\n   * updated to the new high water mark.\\n   */\\n}\\n\\n\\n/* =========================================================================\\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\\n */\\nconst deflateStateCheck = (strm) => {\\n\\n  if (!strm) {\\n    return 1;\\n  }\\n  const s = strm.state;\\n  if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\\n//#ifdef GZIP\\n                                s.status !== GZIP_STATE &&\\n//#endif\\n                                s.status !== EXTRA_STATE &&\\n                                s.status !== NAME_STATE &&\\n                                s.status !== COMMENT_STATE &&\\n                                s.status !== HCRC_STATE &&\\n                                s.status !== BUSY_STATE &&\\n                                s.status !== FINISH_STATE)) {\\n    return 1;\\n  }\\n  return 0;\\n};\\n\\n\\nconst deflateResetKeep = (strm) => {\\n\\n  if (deflateStateCheck(strm)) {\\n    return err(strm, Z_STREAM_ERROR);\\n  }\\n\\n  strm.total_in = strm.total_out = 0;\\n  strm.data_type = Z_UNKNOWN;\\n\\n  const s = strm.state;\\n  s.pending = 0;\\n  s.pending_out = 0;\\n\\n  if (s.wrap < 0) {\\n    s.wrap = -s.wrap;\\n    /* was made negative by deflate(..., Z_FINISH); */\\n  }\\n  s.status =\\n//#ifdef GZIP\\n    s.wrap === 2 ? GZIP_STATE :\\n//#endif\\n    s.wrap ? INIT_STATE : BUSY_STATE;\\n  strm.adler = (s.wrap === 2) ?\\n    0  // crc32(0, Z_NULL, 0)\\n  :\\n    1; // adler32(0, Z_NULL, 0)\\n  s.last_flush = -2;\\n  _tr_init(s);\\n  return Z_OK;\\n};\\n\\n\\nconst deflateReset = (strm) => {\\n\\n  const ret = deflateResetKeep(strm);\\n  if (ret === Z_OK) {\\n    lm_init(strm.state);\\n  }\\n  return ret;\\n};\\n\\n\\nconst deflateSetHeader = (strm, head) => {\\n\\n  if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\\n    return Z_STREAM_ERROR;\\n  }\\n  strm.state.gzhead = head;\\n  return Z_OK;\\n};\\n\\n\\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\\n\\n  if (!strm) { // === Z_NULL\\n    return Z_STREAM_ERROR;\\n  }\\n  let wrap = 1;\\n\\n  if (level === Z_DEFAULT_COMPRESSION) {\\n    level = 6;\\n  }\\n\\n  if (windowBits < 0) { /* suppress zlib wrapper */\\n    wrap = 0;\\n    windowBits = -windowBits;\\n  }\\n\\n  else if (windowBits > 15) {\\n    wrap = 2;           /* write gzip wrapper instead */\\n    windowBits -= 16;\\n  }\\n\\n\\n  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\\n    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\\n    strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\\n    return err(strm, Z_STREAM_ERROR);\\n  }\\n\\n\\n  if (windowBits === 8) {\\n    windowBits = 9;\\n  }\\n  /* until 256-byte window bug fixed */\\n\\n  const s = new DeflateState();\\n\\n  strm.state = s;\\n  s.strm = strm;\\n  s.status = INIT_STATE;     /* to pass state test in deflateReset() */\\n\\n  s.wrap = wrap;\\n  s.gzhead = null;\\n  s.w_bits = windowBits;\\n  s.w_size = 1 << s.w_bits;\\n  s.w_mask = s.w_size - 1;\\n\\n  s.hash_bits = memLevel + 7;\\n  s.hash_size = 1 << s.hash_bits;\\n  s.hash_mask = s.hash_size - 1;\\n  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\\n\\n  s.window = new Uint8Array(s.w_size * 2);\\n  s.head = new Uint16Array(s.hash_size);\\n  s.prev = new Uint16Array(s.w_size);\\n\\n  // Don't need mem init magic for JS.\\n  //s.high_water = 0;  /* nothing written to s->window yet */\\n\\n  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\\n\\n  /* We overlay pending_buf and sym_buf. This works since the average size\\n   * for length/distance pairs over any compressed block is assured to be 31\\n   * bits or less.\\n   *\\n   * Analysis: The longest fixed codes are a length code of 8 bits plus 5\\n   * extra bits, for lengths 131 to 257. The longest fixed distance codes are\\n   * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\\n   * possible fixed-codes length/distance pair is then 31 bits total.\\n   *\\n   * sym_buf starts one-fourth of the way into pending_buf. So there are\\n   * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\\n   * in sym_buf is three bytes -- two for the distance and one for the\\n   * literal/length. As each symbol is consumed, the pointer to the next\\n   * sym_buf value to read moves forward three bytes. From that symbol, up to\\n   * 31 bits are written to pending_buf. The closest the written pending_buf\\n   * bits gets to the next sym_buf symbol to read is just before the last\\n   * code is written. At that time, 31*(n-2) bits have been written, just\\n   * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\\n   * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\\n   * symbols are written.) The closest the writing gets to what is unread is\\n   * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\\n   * can range from 128 to 32768.\\n   *\\n   * Therefore, at a minimum, there are 142 bits of space between what is\\n   * written and what is read in the overlain buffers, so the symbols cannot\\n   * be overwritten by the compressed data. That space is actually 139 bits,\\n   * due to the three-bit fixed-code block header.\\n   *\\n   * That covers the case where either Z_FIXED is specified, forcing fixed\\n   * codes, or when the use of fixed codes is chosen, because that choice\\n   * results in a smaller compressed block than dynamic codes. That latter\\n   * condition then assures that the above analysis also covers all dynamic\\n   * blocks. A dynamic-code block will only be chosen to be emitted if it has\\n   * fewer bits than a fixed-code block would for the same set of symbols.\\n   * Therefore its average symbol length is assured to be less than 31. So\\n   * the compressed data for a dynamic block also cannot overwrite the\\n   * symbols from which it is being constructed.\\n   */\\n\\n  s.pending_buf_size = s.lit_bufsize * 4;\\n  s.pending_buf = new Uint8Array(s.pending_buf_size);\\n\\n  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\\n  //s->sym_buf = s->pending_buf + s->lit_bufsize;\\n  s.sym_buf = s.lit_bufsize;\\n\\n  //s->sym_end = (s->lit_bufsize - 1) * 3;\\n  s.sym_end = (s.lit_bufsize - 1) * 3;\\n  /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\\n   * on 16 bit machines and because stored blocks are restricted to\\n   * 64K-1 bytes.\\n   */\\n\\n  s.level = level;\\n  s.strategy = strategy;\\n  s.method = method;\\n\\n  return deflateReset(strm);\\n};\\n\\nconst deflateInit = (strm, level) => {\\n\\n  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\\n};\\n\\n\\n/* ========================================================================= */\\nconst deflate = (strm, flush) => {\\n\\n  if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {\\n    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\\n  }\\n\\n  const s = strm.state;\\n\\n  if (!strm.output ||\\n      (strm.avail_in !== 0 && !strm.input) ||\\n      (s.status === FINISH_STATE && flush !== Z_FINISH)) {\\n    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\\n  }\\n\\n  const old_flush = s.last_flush;\\n  s.last_flush = flush;\\n\\n  /* Flush as much pending output as possible */\\n  if (s.pending !== 0) {\\n    flush_pending(strm);\\n    if (strm.avail_out === 0) {\\n      /* Since avail_out is 0, deflate will be called again with\\n       * more output space, but possibly with both pending and\\n       * avail_in equal to zero. There won't be anything to do,\\n       * but this is not an error situation so make sure we\\n       * return OK instead of BUF_ERROR at next call of deflate:\\n       */\\n      s.last_flush = -1;\\n      return Z_OK;\\n    }\\n\\n    /* Make sure there is something to do and avoid duplicate consecutive\\n     * flushes. For repeated and useless calls with Z_FINISH, we keep\\n     * returning Z_STREAM_END instead of Z_BUF_ERROR.\\n     */\\n  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\\n    flush !== Z_FINISH) {\\n    return err(strm, Z_BUF_ERROR);\\n  }\\n\\n  /* User must not provide more input after the first FINISH: */\\n  if (s.status === FINISH_STATE && strm.avail_in !== 0) {\\n    return err(strm, Z_BUF_ERROR);\\n  }\\n\\n  /* Write the header */\\n  if (s.status === INIT_STATE && s.wrap === 0) {\\n    s.status = BUSY_STATE;\\n  }\\n  if (s.status === INIT_STATE) {\\n    /* zlib header */\\n    let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\\n    let level_flags = -1;\\n\\n    if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\\n      level_flags = 0;\\n    } else if (s.level < 6) {\\n      level_flags = 1;\\n    } else if (s.level === 6) {\\n      level_flags = 2;\\n    } else {\\n      level_flags = 3;\\n    }\\n    header |= (level_flags << 6);\\n    if (s.strstart !== 0) { header |= PRESET_DICT; }\\n    header += 31 - (header % 31);\\n\\n    putShortMSB(s, header);\\n\\n    /* Save the adler32 of the preset dictionary: */\\n    if (s.strstart !== 0) {\\n      putShortMSB(s, strm.adler >>> 16);\\n      putShortMSB(s, strm.adler & 0xffff);\\n    }\\n    strm.adler = 1; // adler32(0L, Z_NULL, 0);\\n    s.status = BUSY_STATE;\\n\\n    /* Compression must start with an empty pending buffer */\\n    flush_pending(strm);\\n    if (s.pending !== 0) {\\n      s.last_flush = -1;\\n      return Z_OK;\\n    }\\n  }\\n//#ifdef GZIP\\n  if (s.status === GZIP_STATE) {\\n    /* gzip header */\\n    strm.adler = 0;  //crc32(0L, Z_NULL, 0);\\n    put_byte(s, 31);\\n    put_byte(s, 139);\\n    put_byte(s, 8);\\n    if (!s.gzhead) { // s->gzhead == Z_NULL\\n      put_byte(s, 0);\\n      put_byte(s, 0);\\n      put_byte(s, 0);\\n      put_byte(s, 0);\\n      put_byte(s, 0);\\n      put_byte(s, s.level === 9 ? 2 :\\n                  (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\\n                   4 : 0));\\n      put_byte(s, OS_CODE);\\n      s.status = BUSY_STATE;\\n\\n      /* Compression must start with an empty pending buffer */\\n      flush_pending(strm);\\n      if (s.pending !== 0) {\\n        s.last_flush = -1;\\n        return Z_OK;\\n      }\\n    }\\n    else {\\n      put_byte(s, (s.gzhead.text ? 1 : 0) +\\n                  (s.gzhead.hcrc ? 2 : 0) +\\n                  (!s.gzhead.extra ? 0 : 4) +\\n                  (!s.gzhead.name ? 0 : 8) +\\n                  (!s.gzhead.comment ? 0 : 16)\\n      );\\n      put_byte(s, s.gzhead.time & 0xff);\\n      put_byte(s, (s.gzhead.time >> 8) & 0xff);\\n      put_byte(s, (s.gzhead.time >> 16) & 0xff);\\n      put_byte(s, (s.gzhead.time >> 24) & 0xff);\\n      put_byte(s, s.level === 9 ? 2 :\\n                  (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\\n                   4 : 0));\\n      put_byte(s, s.gzhead.os & 0xff);\\n      if (s.gzhead.extra && s.gzhead.extra.length) {\\n        put_byte(s, s.gzhead.extra.length & 0xff);\\n        put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\\n      }\\n      if (s.gzhead.hcrc) {\\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\\n      }\\n      s.gzindex = 0;\\n      s.status = EXTRA_STATE;\\n    }\\n  }\\n  if (s.status === EXTRA_STATE) {\\n    if (s.gzhead.extra/* != Z_NULL*/) {\\n      let beg = s.pending;   /* start of bytes to update crc */\\n      let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\\n      while (s.pending + left > s.pending_buf_size) {\\n        let copy = s.pending_buf_size - s.pending;\\n        // zmemcpy(s.pending_buf + s.pending,\\n        //    s.gzhead.extra + s.gzindex, copy);\\n        s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\\n        s.pending = s.pending_buf_size;\\n        //--- HCRC_UPDATE(beg) ---//\\n        if (s.gzhead.hcrc && s.pending > beg) {\\n          strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n        }\\n        //---//\\n        s.gzindex += copy;\\n        flush_pending(strm);\\n        if (s.pending !== 0) {\\n          s.last_flush = -1;\\n          return Z_OK;\\n        }\\n        beg = 0;\\n        left -= copy;\\n      }\\n      // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\\n      //              TypedArray.slice and TypedArray.from don't exist in IE10-IE11\\n      let gzhead_extra = new Uint8Array(s.gzhead.extra);\\n      // zmemcpy(s->pending_buf + s->pending,\\n      //     s->gzhead->extra + s->gzindex, left);\\n      s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\\n      s.pending += left;\\n      //--- HCRC_UPDATE(beg) ---//\\n      if (s.gzhead.hcrc && s.pending > beg) {\\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n      }\\n      //---//\\n      s.gzindex = 0;\\n    }\\n    s.status = NAME_STATE;\\n  }\\n  if (s.status === NAME_STATE) {\\n    if (s.gzhead.name/* != Z_NULL*/) {\\n      let beg = s.pending;   /* start of bytes to update crc */\\n      let val;\\n      do {\\n        if (s.pending === s.pending_buf_size) {\\n          //--- HCRC_UPDATE(beg) ---//\\n          if (s.gzhead.hcrc && s.pending > beg) {\\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n          }\\n          //---//\\n          flush_pending(strm);\\n          if (s.pending !== 0) {\\n            s.last_flush = -1;\\n            return Z_OK;\\n          }\\n          beg = 0;\\n        }\\n        // JS specific: little magic to add zero terminator to end of string\\n        if (s.gzindex < s.gzhead.name.length) {\\n          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\\n        } else {\\n          val = 0;\\n        }\\n        put_byte(s, val);\\n      } while (val !== 0);\\n      //--- HCRC_UPDATE(beg) ---//\\n      if (s.gzhead.hcrc && s.pending > beg) {\\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n      }\\n      //---//\\n      s.gzindex = 0;\\n    }\\n    s.status = COMMENT_STATE;\\n  }\\n  if (s.status === COMMENT_STATE) {\\n    if (s.gzhead.comment/* != Z_NULL*/) {\\n      let beg = s.pending;   /* start of bytes to update crc */\\n      let val;\\n      do {\\n        if (s.pending === s.pending_buf_size) {\\n          //--- HCRC_UPDATE(beg) ---//\\n          if (s.gzhead.hcrc && s.pending > beg) {\\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n          }\\n          //---//\\n          flush_pending(strm);\\n          if (s.pending !== 0) {\\n            s.last_flush = -1;\\n            return Z_OK;\\n          }\\n          beg = 0;\\n        }\\n        // JS specific: little magic to add zero terminator to end of string\\n        if (s.gzindex < s.gzhead.comment.length) {\\n          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\\n        } else {\\n          val = 0;\\n        }\\n        put_byte(s, val);\\n      } while (val !== 0);\\n      //--- HCRC_UPDATE(beg) ---//\\n      if (s.gzhead.hcrc && s.pending > beg) {\\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\\n      }\\n      //---//\\n    }\\n    s.status = HCRC_STATE;\\n  }\\n  if (s.status === HCRC_STATE) {\\n    if (s.gzhead.hcrc) {\\n      if (s.pending + 2 > s.pending_buf_size) {\\n        flush_pending(strm);\\n        if (s.pending !== 0) {\\n          s.last_flush = -1;\\n          return Z_OK;\\n        }\\n      }\\n      put_byte(s, strm.adler & 0xff);\\n      put_byte(s, (strm.adler >> 8) & 0xff);\\n      strm.adler = 0; //crc32(0L, Z_NULL, 0);\\n    }\\n    s.status = BUSY_STATE;\\n\\n    /* Compression must start with an empty pending buffer */\\n    flush_pending(strm);\\n    if (s.pending !== 0) {\\n      s.last_flush = -1;\\n      return Z_OK;\\n    }\\n  }\\n//#endif\\n\\n  /* Start a new block or continue the current one.\\n   */\\n  if (strm.avail_in !== 0 || s.lookahead !== 0 ||\\n    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\\n    let bstate = s.level === 0 ? deflate_stored(s, flush) :\\n                 s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\\n                 s.strategy === Z_RLE ? deflate_rle(s, flush) :\\n                 configuration_table[s.level].func(s, flush);\\n\\n    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\\n      s.status = FINISH_STATE;\\n    }\\n    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\\n      if (strm.avail_out === 0) {\\n        s.last_flush = -1;\\n        /* avoid BUF_ERROR next call, see above */\\n      }\\n      return Z_OK;\\n      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\\n       * of deflate should use the same flush parameter to make sure\\n       * that the flush is complete. So we don't have to output an\\n       * empty block here, this will be done at next call. This also\\n       * ensures that for a very small output buffer, we emit at most\\n       * one empty block.\\n       */\\n    }\\n    if (bstate === BS_BLOCK_DONE) {\\n      if (flush === Z_PARTIAL_FLUSH) {\\n        _tr_align(s);\\n      }\\n      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\\n\\n        _tr_stored_block(s, 0, 0, false);\\n        /* For a full flush, this empty block will be recognized\\n         * as a special marker by inflate_sync().\\n         */\\n        if (flush === Z_FULL_FLUSH) {\\n          /*** CLEAR_HASH(s); ***/             /* forget history */\\n          zero(s.head); // Fill with NIL (= 0);\\n\\n          if (s.lookahead === 0) {\\n            s.strstart = 0;\\n            s.block_start = 0;\\n            s.insert = 0;\\n          }\\n        }\\n      }\\n      flush_pending(strm);\\n      if (strm.avail_out === 0) {\\n        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\\n        return Z_OK;\\n      }\\n    }\\n  }\\n\\n  if (flush !== Z_FINISH) { return Z_OK; }\\n  if (s.wrap <= 0) { return Z_STREAM_END; }\\n\\n  /* Write the trailer */\\n  if (s.wrap === 2) {\\n    put_byte(s, strm.adler & 0xff);\\n    put_byte(s, (strm.adler >> 8) & 0xff);\\n    put_byte(s, (strm.adler >> 16) & 0xff);\\n    put_byte(s, (strm.adler >> 24) & 0xff);\\n    put_byte(s, strm.total_in & 0xff);\\n    put_byte(s, (strm.total_in >> 8) & 0xff);\\n    put_byte(s, (strm.total_in >> 16) & 0xff);\\n    put_byte(s, (strm.total_in >> 24) & 0xff);\\n  }\\n  else\\n  {\\n    putShortMSB(s, strm.adler >>> 16);\\n    putShortMSB(s, strm.adler & 0xffff);\\n  }\\n\\n  flush_pending(strm);\\n  /* If avail_out is zero, the application will call deflate again\\n   * to flush the rest.\\n   */\\n  if (s.wrap > 0) { s.wrap = -s.wrap; }\\n  /* write the trailer only once! */\\n  return s.pending !== 0 ? Z_OK : Z_STREAM_END;\\n};\\n\\n\\nconst deflateEnd = (strm) => {\\n\\n  if (deflateStateCheck(strm)) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  const status = strm.state.status;\\n\\n  strm.state = null;\\n\\n  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\\n};\\n\\n\\n/* =========================================================================\\n * Initializes the compression dictionary from the given byte\\n * sequence without producing any compressed output.\\n */\\nconst deflateSetDictionary = (strm, dictionary) => {\\n\\n  let dictLength = dictionary.length;\\n\\n  if (deflateStateCheck(strm)) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  const s = strm.state;\\n  const wrap = s.wrap;\\n\\n  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  /* when using zlib wrappers, compute Adler-32 for provided dictionary */\\n  if (wrap === 1) {\\n    /* adler32(strm->adler, dictionary, dictLength); */\\n    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\\n  }\\n\\n  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */\\n\\n  /* if dictionary would fill window, just replace the history */\\n  if (dictLength >= s.w_size) {\\n    if (wrap === 0) {            /* already empty otherwise */\\n      /*** CLEAR_HASH(s); ***/\\n      zero(s.head); // Fill with NIL (= 0);\\n      s.strstart = 0;\\n      s.block_start = 0;\\n      s.insert = 0;\\n    }\\n    /* use the tail */\\n    // dictionary = dictionary.slice(dictLength - s.w_size);\\n    let tmpDict = new Uint8Array(s.w_size);\\n    tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\\n    dictionary = tmpDict;\\n    dictLength = s.w_size;\\n  }\\n  /* insert dictionary into window and hash */\\n  const avail = strm.avail_in;\\n  const next = strm.next_in;\\n  const input = strm.input;\\n  strm.avail_in = dictLength;\\n  strm.next_in = 0;\\n  strm.input = dictionary;\\n  fill_window(s);\\n  while (s.lookahead >= MIN_MATCH) {\\n    let str = s.strstart;\\n    let n = s.lookahead - (MIN_MATCH - 1);\\n    do {\\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\\n      s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\\n\\n      s.prev[str & s.w_mask] = s.head[s.ins_h];\\n\\n      s.head[s.ins_h] = str;\\n      str++;\\n    } while (--n);\\n    s.strstart = str;\\n    s.lookahead = MIN_MATCH - 1;\\n    fill_window(s);\\n  }\\n  s.strstart += s.lookahead;\\n  s.block_start = s.strstart;\\n  s.insert = s.lookahead;\\n  s.lookahead = 0;\\n  s.match_length = s.prev_length = MIN_MATCH - 1;\\n  s.match_available = 0;\\n  strm.next_in = next;\\n  strm.input = input;\\n  strm.avail_in = avail;\\n  s.wrap = wrap;\\n  return Z_OK;\\n};\\n\\n\\nmodule.exports.deflateInit = deflateInit;\\nmodule.exports.deflateInit2 = deflateInit2;\\nmodule.exports.deflateReset = deflateReset;\\nmodule.exports.deflateResetKeep = deflateResetKeep;\\nmodule.exports.deflateSetHeader = deflateSetHeader;\\nmodule.exports.deflate = deflate;\\nmodule.exports.deflateEnd = deflateEnd;\\nmodule.exports.deflateSetDictionary = deflateSetDictionary;\\nmodule.exports.deflateInfo = 'pako deflate (from Nodeca project)';\\n\\n/* Not implemented\\nmodule.exports.deflateBound = deflateBound;\\nmodule.exports.deflateCopy = deflateCopy;\\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\\nmodule.exports.deflateParams = deflateParams;\\nmodule.exports.deflatePending = deflatePending;\\nmodule.exports.deflatePrime = deflatePrime;\\nmodule.exports.deflateTune = deflateTune;\\n*/\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/deflate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/gzheader.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/gzheader.js ***!\n  \\************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nfunction GZheader() {\\n  /* true if compressed data believed to be text */\\n  this.text       = 0;\\n  /* modification time */\\n  this.time       = 0;\\n  /* extra flags (not used when writing a gzip file) */\\n  this.xflags     = 0;\\n  /* operating system */\\n  this.os         = 0;\\n  /* pointer to extra field or Z_NULL if none */\\n  this.extra      = null;\\n  /* extra field length (valid if extra != Z_NULL) */\\n  this.extra_len  = 0; // Actually, we don't need it in JS,\\n                       // but leave for few code modifications\\n\\n  //\\n  // Setup limits is not necessary because in js we should not preallocate memory\\n  // for inflate use constant limit in 65536 bytes\\n  //\\n\\n  /* space at extra (only when reading header) */\\n  // this.extra_max  = 0;\\n  /* pointer to zero-terminated file name or Z_NULL */\\n  this.name       = '';\\n  /* space at name (only when reading header) */\\n  // this.name_max   = 0;\\n  /* pointer to zero-terminated comment or Z_NULL */\\n  this.comment    = '';\\n  /* space at comment (only when reading header) */\\n  // this.comm_max   = 0;\\n  /* true if there was or will be a header crc */\\n  this.hcrc       = 0;\\n  /* true when done reading gzip header (not used when writing a gzip file) */\\n  this.done       = false;\\n}\\n\\nmodule.exports = GZheader;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/gzheader.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/inffast.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/inffast.js ***!\n  \\***********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\n// See state defs from inflate.js\\nconst BAD = 16209;       /* got a data error -- remain here until reset */\\nconst TYPE = 16191;      /* i: waiting for type bits, including last-flag bit */\\n\\n/*\\n   Decode literal, length, and distance codes and write out the resulting\\n   literal and match bytes until either not enough input or output is\\n   available, an end-of-block is encountered, or a data error is encountered.\\n   When large enough input and output buffers are supplied to inflate(), for\\n   example, a 16K input buffer and a 64K output buffer, more than 95% of the\\n   inflate execution time is spent in this routine.\\n\\n   Entry assumptions:\\n\\n        state.mode === LEN\\n        strm.avail_in >= 6\\n        strm.avail_out >= 258\\n        start >= strm.avail_out\\n        state.bits < 8\\n\\n   On return, state.mode is one of:\\n\\n        LEN -- ran out of enough output space or enough available input\\n        TYPE -- reached end of block code, inflate() to interpret next block\\n        BAD -- error in block data\\n\\n   Notes:\\n\\n    - The maximum input bits used by a length/distance pair is 15 bits for the\\n      length code, 5 bits for the length extra, 15 bits for the distance code,\\n      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\\n      Therefore if strm.avail_in >= 6, then there is enough input to avoid\\n      checking for available input while decoding.\\n\\n    - The maximum bytes that a single length/distance pair can output is 258\\n      bytes, which is the maximum length that can be coded.  inflate_fast()\\n      requires strm.avail_out >= 258 for each loop to avoid checking for\\n      output space.\\n */\\nmodule.exports = function inflate_fast(strm, start) {\\n  let _in;                    /* local strm.input */\\n  let last;                   /* have enough input while in < last */\\n  let _out;                   /* local strm.output */\\n  let beg;                    /* inflate()'s initial strm.output */\\n  let end;                    /* while out < end, enough space available */\\n//#ifdef INFLATE_STRICT\\n  let dmax;                   /* maximum distance from zlib header */\\n//#endif\\n  let wsize;                  /* window size or zero if not using window */\\n  let whave;                  /* valid bytes in the window */\\n  let wnext;                  /* window write index */\\n  // Use `s_window` instead `window`, avoid conflict with instrumentation tools\\n  let s_window;               /* allocated sliding window, if wsize != 0 */\\n  let hold;                   /* local strm.hold */\\n  let bits;                   /* local strm.bits */\\n  let lcode;                  /* local strm.lencode */\\n  let dcode;                  /* local strm.distcode */\\n  let lmask;                  /* mask for first level of length codes */\\n  let dmask;                  /* mask for first level of distance codes */\\n  let here;                   /* retrieved table entry */\\n  let op;                     /* code bits, operation, extra bits, or */\\n                              /*  window position, window bytes to copy */\\n  let len;                    /* match length, unused bytes */\\n  let dist;                   /* match distance */\\n  let from;                   /* where to copy match from */\\n  let from_source;\\n\\n\\n  let input, output; // JS specific, because we have no pointers\\n\\n  /* copy state to local variables */\\n  const state = strm.state;\\n  //here = state.here;\\n  _in = strm.next_in;\\n  input = strm.input;\\n  last = _in + (strm.avail_in - 5);\\n  _out = strm.next_out;\\n  output = strm.output;\\n  beg = _out - (start - strm.avail_out);\\n  end = _out + (strm.avail_out - 257);\\n//#ifdef INFLATE_STRICT\\n  dmax = state.dmax;\\n//#endif\\n  wsize = state.wsize;\\n  whave = state.whave;\\n  wnext = state.wnext;\\n  s_window = state.window;\\n  hold = state.hold;\\n  bits = state.bits;\\n  lcode = state.lencode;\\n  dcode = state.distcode;\\n  lmask = (1 << state.lenbits) - 1;\\n  dmask = (1 << state.distbits) - 1;\\n\\n\\n  /* decode literals and length/distances until end-of-block or not enough\\n     input data or output space */\\n\\n  top:\\n  do {\\n    if (bits < 15) {\\n      hold += input[_in++] << bits;\\n      bits += 8;\\n      hold += input[_in++] << bits;\\n      bits += 8;\\n    }\\n\\n    here = lcode[hold & lmask];\\n\\n    dolen:\\n    for (;;) { // Goto emulation\\n      op = here >>> 24/*here.bits*/;\\n      hold >>>= op;\\n      bits -= op;\\n      op = (here >>> 16) & 0xff/*here.op*/;\\n      if (op === 0) {                          /* literal */\\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\\n        //        \\\"inflate:         literal '%c'\\\\n\\\" :\\n        //        \\\"inflate:         literal 0x%02x\\\\n\\\", here.val));\\n        output[_out++] = here & 0xffff/*here.val*/;\\n      }\\n      else if (op & 16) {                     /* length base */\\n        len = here & 0xffff/*here.val*/;\\n        op &= 15;                           /* number of extra bits */\\n        if (op) {\\n          if (bits < op) {\\n            hold += input[_in++] << bits;\\n            bits += 8;\\n          }\\n          len += hold & ((1 << op) - 1);\\n          hold >>>= op;\\n          bits -= op;\\n        }\\n        //Tracevv((stderr, \\\"inflate:         length %u\\\\n\\\", len));\\n        if (bits < 15) {\\n          hold += input[_in++] << bits;\\n          bits += 8;\\n          hold += input[_in++] << bits;\\n          bits += 8;\\n        }\\n        here = dcode[hold & dmask];\\n\\n        dodist:\\n        for (;;) { // goto emulation\\n          op = here >>> 24/*here.bits*/;\\n          hold >>>= op;\\n          bits -= op;\\n          op = (here >>> 16) & 0xff/*here.op*/;\\n\\n          if (op & 16) {                      /* distance base */\\n            dist = here & 0xffff/*here.val*/;\\n            op &= 15;                       /* number of extra bits */\\n            if (bits < op) {\\n              hold += input[_in++] << bits;\\n              bits += 8;\\n              if (bits < op) {\\n                hold += input[_in++] << bits;\\n                bits += 8;\\n              }\\n            }\\n            dist += hold & ((1 << op) - 1);\\n//#ifdef INFLATE_STRICT\\n            if (dist > dmax) {\\n              strm.msg = 'invalid distance too far back';\\n              state.mode = BAD;\\n              break top;\\n            }\\n//#endif\\n            hold >>>= op;\\n            bits -= op;\\n            //Tracevv((stderr, \\\"inflate:         distance %u\\\\n\\\", dist));\\n            op = _out - beg;                /* max distance in output */\\n            if (dist > op) {                /* see if copy from window */\\n              op = dist - op;               /* distance back in window */\\n              if (op > whave) {\\n                if (state.sane) {\\n                  strm.msg = 'invalid distance too far back';\\n                  state.mode = BAD;\\n                  break top;\\n                }\\n\\n// (!) This block is disabled in zlib defaults,\\n// don't enable it for binary compatibility\\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\\n//                if (len <= op - whave) {\\n//                  do {\\n//                    output[_out++] = 0;\\n//                  } while (--len);\\n//                  continue top;\\n//                }\\n//                len -= op - whave;\\n//                do {\\n//                  output[_out++] = 0;\\n//                } while (--op > whave);\\n//                if (op === 0) {\\n//                  from = _out - dist;\\n//                  do {\\n//                    output[_out++] = output[from++];\\n//                  } while (--len);\\n//                  continue top;\\n//                }\\n//#endif\\n              }\\n              from = 0; // window index\\n              from_source = s_window;\\n              if (wnext === 0) {           /* very common case */\\n                from += wsize - op;\\n                if (op < len) {         /* some from window */\\n                  len -= op;\\n                  do {\\n                    output[_out++] = s_window[from++];\\n                  } while (--op);\\n                  from = _out - dist;  /* rest from output */\\n                  from_source = output;\\n                }\\n              }\\n              else if (wnext < op) {      /* wrap around window */\\n                from += wsize + wnext - op;\\n                op -= wnext;\\n                if (op < len) {         /* some from end of window */\\n                  len -= op;\\n                  do {\\n                    output[_out++] = s_window[from++];\\n                  } while (--op);\\n                  from = 0;\\n                  if (wnext < len) {  /* some from start of window */\\n                    op = wnext;\\n                    len -= op;\\n                    do {\\n                      output[_out++] = s_window[from++];\\n                    } while (--op);\\n                    from = _out - dist;      /* rest from output */\\n                    from_source = output;\\n                  }\\n                }\\n              }\\n              else {                      /* contiguous in window */\\n                from += wnext - op;\\n                if (op < len) {         /* some from window */\\n                  len -= op;\\n                  do {\\n                    output[_out++] = s_window[from++];\\n                  } while (--op);\\n                  from = _out - dist;  /* rest from output */\\n                  from_source = output;\\n                }\\n              }\\n              while (len > 2) {\\n                output[_out++] = from_source[from++];\\n                output[_out++] = from_source[from++];\\n                output[_out++] = from_source[from++];\\n                len -= 3;\\n              }\\n              if (len) {\\n                output[_out++] = from_source[from++];\\n                if (len > 1) {\\n                  output[_out++] = from_source[from++];\\n                }\\n              }\\n            }\\n            else {\\n              from = _out - dist;          /* copy direct from output */\\n              do {                        /* minimum length is three */\\n                output[_out++] = output[from++];\\n                output[_out++] = output[from++];\\n                output[_out++] = output[from++];\\n                len -= 3;\\n              } while (len > 2);\\n              if (len) {\\n                output[_out++] = output[from++];\\n                if (len > 1) {\\n                  output[_out++] = output[from++];\\n                }\\n              }\\n            }\\n          }\\n          else if ((op & 64) === 0) {          /* 2nd level distance code */\\n            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\\n            continue dodist;\\n          }\\n          else {\\n            strm.msg = 'invalid distance code';\\n            state.mode = BAD;\\n            break top;\\n          }\\n\\n          break; // need to emulate goto via \\\"continue\\\"\\n        }\\n      }\\n      else if ((op & 64) === 0) {              /* 2nd level length code */\\n        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\\n        continue dolen;\\n      }\\n      else if (op & 32) {                     /* end-of-block */\\n        //Tracevv((stderr, \\\"inflate:         end of block\\\\n\\\"));\\n        state.mode = TYPE;\\n        break top;\\n      }\\n      else {\\n        strm.msg = 'invalid literal/length code';\\n        state.mode = BAD;\\n        break top;\\n      }\\n\\n      break; // need to emulate goto via \\\"continue\\\"\\n    }\\n  } while (_in < last && _out < end);\\n\\n  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\\n  len = bits >> 3;\\n  _in -= len;\\n  bits -= len << 3;\\n  hold &= (1 << bits) - 1;\\n\\n  /* update state and return */\\n  strm.next_in = _in;\\n  strm.next_out = _out;\\n  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\\n  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\\n  state.hold = hold;\\n  state.bits = bits;\\n  return;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/inffast.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/inflate.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/inflate.js ***!\n  \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nconst adler32       = __webpack_require__(/*! ./adler32 */ \\\"./node_modules/pako/lib/zlib/adler32.js\\\");\\nconst crc32         = __webpack_require__(/*! ./crc32 */ \\\"./node_modules/pako/lib/zlib/crc32.js\\\");\\nconst inflate_fast  = __webpack_require__(/*! ./inffast */ \\\"./node_modules/pako/lib/zlib/inffast.js\\\");\\nconst inflate_table = __webpack_require__(/*! ./inftrees */ \\\"./node_modules/pako/lib/zlib/inftrees.js\\\");\\n\\nconst CODES = 0;\\nconst LENS = 1;\\nconst DISTS = 2;\\n\\n/* Public constants ==========================================================*/\\n/* ===========================================================================*/\\n\\nconst {\\n  Z_FINISH, Z_BLOCK, Z_TREES,\\n  Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR, Z_BUF_ERROR,\\n  Z_DEFLATED\\n} = __webpack_require__(/*! ./constants */ \\\"./node_modules/pako/lib/zlib/constants.js\\\");\\n\\n\\n/* STATES ====================================================================*/\\n/* ===========================================================================*/\\n\\n\\nconst    HEAD = 16180;       /* i: waiting for magic header */\\nconst    FLAGS = 16181;      /* i: waiting for method and flags (gzip) */\\nconst    TIME = 16182;       /* i: waiting for modification time (gzip) */\\nconst    OS = 16183;         /* i: waiting for extra flags and operating system (gzip) */\\nconst    EXLEN = 16184;      /* i: waiting for extra length (gzip) */\\nconst    EXTRA = 16185;      /* i: waiting for extra bytes (gzip) */\\nconst    NAME = 16186;       /* i: waiting for end of file name (gzip) */\\nconst    COMMENT = 16187;    /* i: waiting for end of comment (gzip) */\\nconst    HCRC = 16188;       /* i: waiting for header crc (gzip) */\\nconst    DICTID = 16189;    /* i: waiting for dictionary check value */\\nconst    DICT = 16190;      /* waiting for inflateSetDictionary() call */\\nconst        TYPE = 16191;      /* i: waiting for type bits, including last-flag bit */\\nconst        TYPEDO = 16192;    /* i: same, but skip check to exit inflate on new block */\\nconst        STORED = 16193;    /* i: waiting for stored size (length and complement) */\\nconst        COPY_ = 16194;     /* i/o: same as COPY below, but only first time in */\\nconst        COPY = 16195;      /* i/o: waiting for input or output to copy stored block */\\nconst        TABLE = 16196;     /* i: waiting for dynamic block table lengths */\\nconst        LENLENS = 16197;   /* i: waiting for code length code lengths */\\nconst        CODELENS = 16198;  /* i: waiting for length/lit and distance code lengths */\\nconst            LEN_ = 16199;      /* i: same as LEN below, but only first time in */\\nconst            LEN = 16200;       /* i: waiting for length/lit/eob code */\\nconst            LENEXT = 16201;    /* i: waiting for length extra bits */\\nconst            DIST = 16202;      /* i: waiting for distance code */\\nconst            DISTEXT = 16203;   /* i: waiting for distance extra bits */\\nconst            MATCH = 16204;     /* o: waiting for output space to copy string */\\nconst            LIT = 16205;       /* o: waiting for output space to write literal */\\nconst    CHECK = 16206;     /* i: waiting for 32-bit check value */\\nconst    LENGTH = 16207;    /* i: waiting for 32-bit length (gzip) */\\nconst    DONE = 16208;      /* finished check, done -- remain here until reset */\\nconst    BAD = 16209;       /* got a data error -- remain here until reset */\\nconst    MEM = 16210;       /* got an inflate() memory error -- remain here until reset */\\nconst    SYNC = 16211;      /* looking for synchronization bytes to restart inflate() */\\n\\n/* ===========================================================================*/\\n\\n\\n\\nconst ENOUGH_LENS = 852;\\nconst ENOUGH_DISTS = 592;\\n//const ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\\n\\nconst MAX_WBITS = 15;\\n/* 32K LZ77 window */\\nconst DEF_WBITS = MAX_WBITS;\\n\\n\\nconst zswap32 = (q) => {\\n\\n  return  (((q >>> 24) & 0xff) +\\n          ((q >>> 8) & 0xff00) +\\n          ((q & 0xff00) << 8) +\\n          ((q & 0xff) << 24));\\n};\\n\\n\\nfunction InflateState() {\\n  this.strm = null;           /* pointer back to this zlib stream */\\n  this.mode = 0;              /* current inflate mode */\\n  this.last = false;          /* true if processing last block */\\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip,\\n                                 bit 2 true to validate check value */\\n  this.havedict = false;      /* true if dictionary provided */\\n  this.flags = 0;             /* gzip header method and flags (0 if zlib), or\\n                                 -1 if raw or no header yet */\\n  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */\\n  this.check = 0;             /* protected copy of check value */\\n  this.total = 0;             /* protected copy of output count */\\n  // TODO: may be {}\\n  this.head = null;           /* where to save gzip header information */\\n\\n  /* sliding window */\\n  this.wbits = 0;             /* log base 2 of requested window size */\\n  this.wsize = 0;             /* window size or zero if not using window */\\n  this.whave = 0;             /* valid bytes in the window */\\n  this.wnext = 0;             /* window write index */\\n  this.window = null;         /* allocated sliding window, if needed */\\n\\n  /* bit accumulator */\\n  this.hold = 0;              /* input bit accumulator */\\n  this.bits = 0;              /* number of bits in \\\"in\\\" */\\n\\n  /* for string and stored block copying */\\n  this.length = 0;            /* literal or length of data to copy */\\n  this.offset = 0;            /* distance back to copy string from */\\n\\n  /* for table and code decoding */\\n  this.extra = 0;             /* extra bits needed */\\n\\n  /* fixed and dynamic code tables */\\n  this.lencode = null;          /* starting table for length/literal codes */\\n  this.distcode = null;         /* starting table for distance codes */\\n  this.lenbits = 0;           /* index bits for lencode */\\n  this.distbits = 0;          /* index bits for distcode */\\n\\n  /* dynamic table building */\\n  this.ncode = 0;             /* number of code length code lengths */\\n  this.nlen = 0;              /* number of length code lengths */\\n  this.ndist = 0;             /* number of distance code lengths */\\n  this.have = 0;              /* number of code lengths in lens[] */\\n  this.next = null;              /* next available space in codes[] */\\n\\n  this.lens = new Uint16Array(320); /* temporary storage for code lengths */\\n  this.work = new Uint16Array(288); /* work area for code table building */\\n\\n  /*\\n   because we don't have pointers in js, we use lencode and distcode directly\\n   as buffers so we don't need codes\\n  */\\n  //this.codes = new Int32Array(ENOUGH);       /* space for code tables */\\n  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */\\n  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */\\n  this.sane = 0;                   /* if false, allow invalid distance too far */\\n  this.back = 0;                   /* bits back of last unprocessed length/lit */\\n  this.was = 0;                    /* initial length of match */\\n}\\n\\n\\nconst inflateStateCheck = (strm) => {\\n\\n  if (!strm) {\\n    return 1;\\n  }\\n  const state = strm.state;\\n  if (!state || state.strm !== strm ||\\n    state.mode < HEAD || state.mode > SYNC) {\\n    return 1;\\n  }\\n  return 0;\\n};\\n\\n\\nconst inflateResetKeep = (strm) => {\\n\\n  if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\\n  const state = strm.state;\\n  strm.total_in = strm.total_out = state.total = 0;\\n  strm.msg = ''; /*Z_NULL*/\\n  if (state.wrap) {       /* to support ill-conceived Java test suite */\\n    strm.adler = state.wrap & 1;\\n  }\\n  state.mode = HEAD;\\n  state.last = 0;\\n  state.havedict = 0;\\n  state.flags = -1;\\n  state.dmax = 32768;\\n  state.head = null/*Z_NULL*/;\\n  state.hold = 0;\\n  state.bits = 0;\\n  //state.lencode = state.distcode = state.next = state.codes;\\n  state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\\n  state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\\n\\n  state.sane = 1;\\n  state.back = -1;\\n  //Tracev((stderr, \\\"inflate: reset\\\\n\\\"));\\n  return Z_OK;\\n};\\n\\n\\nconst inflateReset = (strm) => {\\n\\n  if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\\n  const state = strm.state;\\n  state.wsize = 0;\\n  state.whave = 0;\\n  state.wnext = 0;\\n  return inflateResetKeep(strm);\\n\\n};\\n\\n\\nconst inflateReset2 = (strm, windowBits) => {\\n  let wrap;\\n\\n  /* get the state */\\n  if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\\n  const state = strm.state;\\n\\n  /* extract wrap request from windowBits parameter */\\n  if (windowBits < 0) {\\n    wrap = 0;\\n    windowBits = -windowBits;\\n  }\\n  else {\\n    wrap = (windowBits >> 4) + 5;\\n    if (windowBits < 48) {\\n      windowBits &= 15;\\n    }\\n  }\\n\\n  /* set number of window bits, free window if different */\\n  if (windowBits && (windowBits < 8 || windowBits > 15)) {\\n    return Z_STREAM_ERROR;\\n  }\\n  if (state.window !== null && state.wbits !== windowBits) {\\n    state.window = null;\\n  }\\n\\n  /* update state and reset the rest of it */\\n  state.wrap = wrap;\\n  state.wbits = windowBits;\\n  return inflateReset(strm);\\n};\\n\\n\\nconst inflateInit2 = (strm, windowBits) => {\\n\\n  if (!strm) { return Z_STREAM_ERROR; }\\n  //strm.msg = Z_NULL;                 /* in case we return an error */\\n\\n  const state = new InflateState();\\n\\n  //if (state === Z_NULL) return Z_MEM_ERROR;\\n  //Tracev((stderr, \\\"inflate: allocated\\\\n\\\"));\\n  strm.state = state;\\n  state.strm = strm;\\n  state.window = null/*Z_NULL*/;\\n  state.mode = HEAD;     /* to pass state test in inflateReset2() */\\n  const ret = inflateReset2(strm, windowBits);\\n  if (ret !== Z_OK) {\\n    strm.state = null/*Z_NULL*/;\\n  }\\n  return ret;\\n};\\n\\n\\nconst inflateInit = (strm) => {\\n\\n  return inflateInit2(strm, DEF_WBITS);\\n};\\n\\n\\n/*\\n Return state with length and distance decoding tables and index sizes set to\\n fixed code decoding.  Normally this returns fixed tables from inffixed.h.\\n If BUILDFIXED is defined, then instead this routine builds the tables the\\n first time it's called, and returns those tables the first time and\\n thereafter.  This reduces the size of the code by about 2K bytes, in\\n exchange for a little execution time.  However, BUILDFIXED should not be\\n used for threaded applications, since the rewriting of the tables and virgin\\n may not be thread-safe.\\n */\\nlet virgin = true;\\n\\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\\n\\n\\nconst fixedtables = (state) => {\\n\\n  /* build fixed huffman tables if first call (may not be thread safe) */\\n  if (virgin) {\\n    lenfix = new Int32Array(512);\\n    distfix = new Int32Array(32);\\n\\n    /* literal/length table */\\n    let sym = 0;\\n    while (sym < 144) { state.lens[sym++] = 8; }\\n    while (sym < 256) { state.lens[sym++] = 9; }\\n    while (sym < 280) { state.lens[sym++] = 7; }\\n    while (sym < 288) { state.lens[sym++] = 8; }\\n\\n    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });\\n\\n    /* distance table */\\n    sym = 0;\\n    while (sym < 32) { state.lens[sym++] = 5; }\\n\\n    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });\\n\\n    /* do this just once */\\n    virgin = false;\\n  }\\n\\n  state.lencode = lenfix;\\n  state.lenbits = 9;\\n  state.distcode = distfix;\\n  state.distbits = 5;\\n};\\n\\n\\n/*\\n Update the window with the last wsize (normally 32K) bytes written before\\n returning.  If window does not exist yet, create it.  This is only called\\n when a window is already in use, or when output has been written during this\\n inflate call, but the end of the deflate stream has not been reached yet.\\n It is also called to create a window for dictionary data when a dictionary\\n is loaded.\\n\\n Providing output buffers larger than 32K to inflate() should provide a speed\\n advantage, since only the last 32K of output is copied to the sliding window\\n upon return from inflate(), and since all distances after the first 32K of\\n output will fall in the output data, making match copies simpler and faster.\\n The advantage may be dependent on the size of the processor's data caches.\\n */\\nconst updatewindow = (strm, src, end, copy) => {\\n\\n  let dist;\\n  const state = strm.state;\\n\\n  /* if it hasn't been done already, allocate space for the window */\\n  if (state.window === null) {\\n    state.wsize = 1 << state.wbits;\\n    state.wnext = 0;\\n    state.whave = 0;\\n\\n    state.window = new Uint8Array(state.wsize);\\n  }\\n\\n  /* copy state->wsize or less output bytes into the circular window */\\n  if (copy >= state.wsize) {\\n    state.window.set(src.subarray(end - state.wsize, end), 0);\\n    state.wnext = 0;\\n    state.whave = state.wsize;\\n  }\\n  else {\\n    dist = state.wsize - state.wnext;\\n    if (dist > copy) {\\n      dist = copy;\\n    }\\n    //zmemcpy(state->window + state->wnext, end - copy, dist);\\n    state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\\n    copy -= dist;\\n    if (copy) {\\n      //zmemcpy(state->window, end - copy, copy);\\n      state.window.set(src.subarray(end - copy, end), 0);\\n      state.wnext = copy;\\n      state.whave = state.wsize;\\n    }\\n    else {\\n      state.wnext += dist;\\n      if (state.wnext === state.wsize) { state.wnext = 0; }\\n      if (state.whave < state.wsize) { state.whave += dist; }\\n    }\\n  }\\n  return 0;\\n};\\n\\n\\nconst inflate = (strm, flush) => {\\n\\n  let state;\\n  let input, output;          // input/output buffers\\n  let next;                   /* next input INDEX */\\n  let put;                    /* next output INDEX */\\n  let have, left;             /* available input and output */\\n  let hold;                   /* bit buffer */\\n  let bits;                   /* bits in bit buffer */\\n  let _in, _out;              /* save starting available input and output */\\n  let copy;                   /* number of stored or match bytes to copy */\\n  let from;                   /* where to copy match bytes from */\\n  let from_source;\\n  let here = 0;               /* current decoding table entry */\\n  let here_bits, here_op, here_val; // paked \\\"here\\\" denormalized (JS specific)\\n  //let last;                   /* parent table entry */\\n  let last_bits, last_op, last_val; // paked \\\"last\\\" denormalized (JS specific)\\n  let len;                    /* length to copy for repeats, bits to drop */\\n  let ret;                    /* return code */\\n  const hbuf = new Uint8Array(4);    /* buffer for gzip header crc calculation */\\n  let opts;\\n\\n  let n; // temporary variable for NEED_BITS\\n\\n  const order = /* permutation of code lengths */\\n    new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\\n\\n\\n  if (inflateStateCheck(strm) || !strm.output ||\\n      (!strm.input && strm.avail_in !== 0)) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  state = strm.state;\\n  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */\\n\\n\\n  //--- LOAD() ---\\n  put = strm.next_out;\\n  output = strm.output;\\n  left = strm.avail_out;\\n  next = strm.next_in;\\n  input = strm.input;\\n  have = strm.avail_in;\\n  hold = state.hold;\\n  bits = state.bits;\\n  //---\\n\\n  _in = have;\\n  _out = left;\\n  ret = Z_OK;\\n\\n  inf_leave: // goto emulation\\n  for (;;) {\\n    switch (state.mode) {\\n      case HEAD:\\n        if (state.wrap === 0) {\\n          state.mode = TYPEDO;\\n          break;\\n        }\\n        //=== NEEDBITS(16);\\n        while (bits < 16) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */\\n          if (state.wbits === 0) {\\n            state.wbits = 15;\\n          }\\n          state.check = 0/*crc32(0L, Z_NULL, 0)*/;\\n          //=== CRC2(state.check, hold);\\n          hbuf[0] = hold & 0xff;\\n          hbuf[1] = (hold >>> 8) & 0xff;\\n          state.check = crc32(state.check, hbuf, 2, 0);\\n          //===//\\n\\n          //=== INITBITS();\\n          hold = 0;\\n          bits = 0;\\n          //===//\\n          state.mode = FLAGS;\\n          break;\\n        }\\n        if (state.head) {\\n          state.head.done = false;\\n        }\\n        if (!(state.wrap & 1) ||   /* check if zlib header allowed */\\n          (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\\n          strm.msg = 'incorrect header check';\\n          state.mode = BAD;\\n          break;\\n        }\\n        if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\\n          strm.msg = 'unknown compression method';\\n          state.mode = BAD;\\n          break;\\n        }\\n        //--- DROPBITS(4) ---//\\n        hold >>>= 4;\\n        bits -= 4;\\n        //---//\\n        len = (hold & 0x0f)/*BITS(4)*/ + 8;\\n        if (state.wbits === 0) {\\n          state.wbits = len;\\n        }\\n        if (len > 15 || len > state.wbits) {\\n          strm.msg = 'invalid window size';\\n          state.mode = BAD;\\n          break;\\n        }\\n\\n        // !!! pako patch. Force use `options.windowBits` if passed.\\n        // Required to always use max window size by default.\\n        state.dmax = 1 << state.wbits;\\n        //state.dmax = 1 << len;\\n\\n        state.flags = 0;               /* indicate zlib header */\\n        //Tracev((stderr, \\\"inflate:   zlib header ok\\\\n\\\"));\\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\\n        state.mode = hold & 0x200 ? DICTID : TYPE;\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        break;\\n      case FLAGS:\\n        //=== NEEDBITS(16); */\\n        while (bits < 16) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        state.flags = hold;\\n        if ((state.flags & 0xff) !== Z_DEFLATED) {\\n          strm.msg = 'unknown compression method';\\n          state.mode = BAD;\\n          break;\\n        }\\n        if (state.flags & 0xe000) {\\n          strm.msg = 'unknown header flags set';\\n          state.mode = BAD;\\n          break;\\n        }\\n        if (state.head) {\\n          state.head.text = ((hold >> 8) & 1);\\n        }\\n        if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n          //=== CRC2(state.check, hold);\\n          hbuf[0] = hold & 0xff;\\n          hbuf[1] = (hold >>> 8) & 0xff;\\n          state.check = crc32(state.check, hbuf, 2, 0);\\n          //===//\\n        }\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        state.mode = TIME;\\n        /* falls through */\\n      case TIME:\\n        //=== NEEDBITS(32); */\\n        while (bits < 32) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        if (state.head) {\\n          state.head.time = hold;\\n        }\\n        if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n          //=== CRC4(state.check, hold)\\n          hbuf[0] = hold & 0xff;\\n          hbuf[1] = (hold >>> 8) & 0xff;\\n          hbuf[2] = (hold >>> 16) & 0xff;\\n          hbuf[3] = (hold >>> 24) & 0xff;\\n          state.check = crc32(state.check, hbuf, 4, 0);\\n          //===\\n        }\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        state.mode = OS;\\n        /* falls through */\\n      case OS:\\n        //=== NEEDBITS(16); */\\n        while (bits < 16) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        if (state.head) {\\n          state.head.xflags = (hold & 0xff);\\n          state.head.os = (hold >> 8);\\n        }\\n        if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n          //=== CRC2(state.check, hold);\\n          hbuf[0] = hold & 0xff;\\n          hbuf[1] = (hold >>> 8) & 0xff;\\n          state.check = crc32(state.check, hbuf, 2, 0);\\n          //===//\\n        }\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        state.mode = EXLEN;\\n        /* falls through */\\n      case EXLEN:\\n        if (state.flags & 0x0400) {\\n          //=== NEEDBITS(16); */\\n          while (bits < 16) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          state.length = hold;\\n          if (state.head) {\\n            state.head.extra_len = hold;\\n          }\\n          if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n            //=== CRC2(state.check, hold);\\n            hbuf[0] = hold & 0xff;\\n            hbuf[1] = (hold >>> 8) & 0xff;\\n            state.check = crc32(state.check, hbuf, 2, 0);\\n            //===//\\n          }\\n          //=== INITBITS();\\n          hold = 0;\\n          bits = 0;\\n          //===//\\n        }\\n        else if (state.head) {\\n          state.head.extra = null/*Z_NULL*/;\\n        }\\n        state.mode = EXTRA;\\n        /* falls through */\\n      case EXTRA:\\n        if (state.flags & 0x0400) {\\n          copy = state.length;\\n          if (copy > have) { copy = have; }\\n          if (copy) {\\n            if (state.head) {\\n              len = state.head.extra_len - state.length;\\n              if (!state.head.extra) {\\n                // Use untyped array for more convenient processing later\\n                state.head.extra = new Uint8Array(state.head.extra_len);\\n              }\\n              state.head.extra.set(\\n                input.subarray(\\n                  next,\\n                  // extra field is limited to 65536 bytes\\n                  // - no need for additional size check\\n                  next + copy\\n                ),\\n                /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\\n                len\\n              );\\n              //zmemcpy(state.head.extra + len, next,\\n              //        len + copy > state.head.extra_max ?\\n              //        state.head.extra_max - len : copy);\\n            }\\n            if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n              state.check = crc32(state.check, input, copy, next);\\n            }\\n            have -= copy;\\n            next += copy;\\n            state.length -= copy;\\n          }\\n          if (state.length) { break inf_leave; }\\n        }\\n        state.length = 0;\\n        state.mode = NAME;\\n        /* falls through */\\n      case NAME:\\n        if (state.flags & 0x0800) {\\n          if (have === 0) { break inf_leave; }\\n          copy = 0;\\n          do {\\n            // TODO: 2 or 1 bytes?\\n            len = input[next + copy++];\\n            /* use constant limit because in js we should not preallocate memory */\\n            if (state.head && len &&\\n                (state.length < 65536 /*state.head.name_max*/)) {\\n              state.head.name += String.fromCharCode(len);\\n            }\\n          } while (len && copy < have);\\n\\n          if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n            state.check = crc32(state.check, input, copy, next);\\n          }\\n          have -= copy;\\n          next += copy;\\n          if (len) { break inf_leave; }\\n        }\\n        else if (state.head) {\\n          state.head.name = null;\\n        }\\n        state.length = 0;\\n        state.mode = COMMENT;\\n        /* falls through */\\n      case COMMENT:\\n        if (state.flags & 0x1000) {\\n          if (have === 0) { break inf_leave; }\\n          copy = 0;\\n          do {\\n            len = input[next + copy++];\\n            /* use constant limit because in js we should not preallocate memory */\\n            if (state.head && len &&\\n                (state.length < 65536 /*state.head.comm_max*/)) {\\n              state.head.comment += String.fromCharCode(len);\\n            }\\n          } while (len && copy < have);\\n          if ((state.flags & 0x0200) && (state.wrap & 4)) {\\n            state.check = crc32(state.check, input, copy, next);\\n          }\\n          have -= copy;\\n          next += copy;\\n          if (len) { break inf_leave; }\\n        }\\n        else if (state.head) {\\n          state.head.comment = null;\\n        }\\n        state.mode = HCRC;\\n        /* falls through */\\n      case HCRC:\\n        if (state.flags & 0x0200) {\\n          //=== NEEDBITS(16); */\\n          while (bits < 16) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\\n            strm.msg = 'header crc mismatch';\\n            state.mode = BAD;\\n            break;\\n          }\\n          //=== INITBITS();\\n          hold = 0;\\n          bits = 0;\\n          //===//\\n        }\\n        if (state.head) {\\n          state.head.hcrc = ((state.flags >> 9) & 1);\\n          state.head.done = true;\\n        }\\n        strm.adler = state.check = 0;\\n        state.mode = TYPE;\\n        break;\\n      case DICTID:\\n        //=== NEEDBITS(32); */\\n        while (bits < 32) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        strm.adler = state.check = zswap32(hold);\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        state.mode = DICT;\\n        /* falls through */\\n      case DICT:\\n        if (state.havedict === 0) {\\n          //--- RESTORE() ---\\n          strm.next_out = put;\\n          strm.avail_out = left;\\n          strm.next_in = next;\\n          strm.avail_in = have;\\n          state.hold = hold;\\n          state.bits = bits;\\n          //---\\n          return Z_NEED_DICT;\\n        }\\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\\n        state.mode = TYPE;\\n        /* falls through */\\n      case TYPE:\\n        if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\\n        /* falls through */\\n      case TYPEDO:\\n        if (state.last) {\\n          //--- BYTEBITS() ---//\\n          hold >>>= bits & 7;\\n          bits -= bits & 7;\\n          //---//\\n          state.mode = CHECK;\\n          break;\\n        }\\n        //=== NEEDBITS(3); */\\n        while (bits < 3) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        state.last = (hold & 0x01)/*BITS(1)*/;\\n        //--- DROPBITS(1) ---//\\n        hold >>>= 1;\\n        bits -= 1;\\n        //---//\\n\\n        switch ((hold & 0x03)/*BITS(2)*/) {\\n          case 0:                             /* stored block */\\n            //Tracev((stderr, \\\"inflate:     stored block%s\\\\n\\\",\\n            //        state.last ? \\\" (last)\\\" : \\\"\\\"));\\n            state.mode = STORED;\\n            break;\\n          case 1:                             /* fixed block */\\n            fixedtables(state);\\n            //Tracev((stderr, \\\"inflate:     fixed codes block%s\\\\n\\\",\\n            //        state.last ? \\\" (last)\\\" : \\\"\\\"));\\n            state.mode = LEN_;             /* decode codes */\\n            if (flush === Z_TREES) {\\n              //--- DROPBITS(2) ---//\\n              hold >>>= 2;\\n              bits -= 2;\\n              //---//\\n              break inf_leave;\\n            }\\n            break;\\n          case 2:                             /* dynamic block */\\n            //Tracev((stderr, \\\"inflate:     dynamic codes block%s\\\\n\\\",\\n            //        state.last ? \\\" (last)\\\" : \\\"\\\"));\\n            state.mode = TABLE;\\n            break;\\n          case 3:\\n            strm.msg = 'invalid block type';\\n            state.mode = BAD;\\n        }\\n        //--- DROPBITS(2) ---//\\n        hold >>>= 2;\\n        bits -= 2;\\n        //---//\\n        break;\\n      case STORED:\\n        //--- BYTEBITS() ---// /* go to byte boundary */\\n        hold >>>= bits & 7;\\n        bits -= bits & 7;\\n        //---//\\n        //=== NEEDBITS(32); */\\n        while (bits < 32) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\\n          strm.msg = 'invalid stored block lengths';\\n          state.mode = BAD;\\n          break;\\n        }\\n        state.length = hold & 0xffff;\\n        //Tracev((stderr, \\\"inflate:       stored length %u\\\\n\\\",\\n        //        state.length));\\n        //=== INITBITS();\\n        hold = 0;\\n        bits = 0;\\n        //===//\\n        state.mode = COPY_;\\n        if (flush === Z_TREES) { break inf_leave; }\\n        /* falls through */\\n      case COPY_:\\n        state.mode = COPY;\\n        /* falls through */\\n      case COPY:\\n        copy = state.length;\\n        if (copy) {\\n          if (copy > have) { copy = have; }\\n          if (copy > left) { copy = left; }\\n          if (copy === 0) { break inf_leave; }\\n          //--- zmemcpy(put, next, copy); ---\\n          output.set(input.subarray(next, next + copy), put);\\n          //---//\\n          have -= copy;\\n          next += copy;\\n          left -= copy;\\n          put += copy;\\n          state.length -= copy;\\n          break;\\n        }\\n        //Tracev((stderr, \\\"inflate:       stored end\\\\n\\\"));\\n        state.mode = TYPE;\\n        break;\\n      case TABLE:\\n        //=== NEEDBITS(14); */\\n        while (bits < 14) {\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n        }\\n        //===//\\n        state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\\n        //--- DROPBITS(5) ---//\\n        hold >>>= 5;\\n        bits -= 5;\\n        //---//\\n        state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\\n        //--- DROPBITS(5) ---//\\n        hold >>>= 5;\\n        bits -= 5;\\n        //---//\\n        state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\\n        //--- DROPBITS(4) ---//\\n        hold >>>= 4;\\n        bits -= 4;\\n        //---//\\n//#ifndef PKZIP_BUG_WORKAROUND\\n        if (state.nlen > 286 || state.ndist > 30) {\\n          strm.msg = 'too many length or distance symbols';\\n          state.mode = BAD;\\n          break;\\n        }\\n//#endif\\n        //Tracev((stderr, \\\"inflate:       table sizes ok\\\\n\\\"));\\n        state.have = 0;\\n        state.mode = LENLENS;\\n        /* falls through */\\n      case LENLENS:\\n        while (state.have < state.ncode) {\\n          //=== NEEDBITS(3);\\n          while (bits < 3) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\\n          //--- DROPBITS(3) ---//\\n          hold >>>= 3;\\n          bits -= 3;\\n          //---//\\n        }\\n        while (state.have < 19) {\\n          state.lens[order[state.have++]] = 0;\\n        }\\n        // We have separate tables & no pointers. 2 commented lines below not needed.\\n        //state.next = state.codes;\\n        //state.lencode = state.next;\\n        // Switch to use dynamic table\\n        state.lencode = state.lendyn;\\n        state.lenbits = 7;\\n\\n        opts = { bits: state.lenbits };\\n        ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\\n        state.lenbits = opts.bits;\\n\\n        if (ret) {\\n          strm.msg = 'invalid code lengths set';\\n          state.mode = BAD;\\n          break;\\n        }\\n        //Tracev((stderr, \\\"inflate:       code lengths ok\\\\n\\\"));\\n        state.have = 0;\\n        state.mode = CODELENS;\\n        /* falls through */\\n      case CODELENS:\\n        while (state.have < state.nlen + state.ndist) {\\n          for (;;) {\\n            here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\\n            here_bits = here >>> 24;\\n            here_op = (here >>> 16) & 0xff;\\n            here_val = here & 0xffff;\\n\\n            if ((here_bits) <= bits) { break; }\\n            //--- PULLBYTE() ---//\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n            //---//\\n          }\\n          if (here_val < 16) {\\n            //--- DROPBITS(here.bits) ---//\\n            hold >>>= here_bits;\\n            bits -= here_bits;\\n            //---//\\n            state.lens[state.have++] = here_val;\\n          }\\n          else {\\n            if (here_val === 16) {\\n              //=== NEEDBITS(here.bits + 2);\\n              n = here_bits + 2;\\n              while (bits < n) {\\n                if (have === 0) { break inf_leave; }\\n                have--;\\n                hold += input[next++] << bits;\\n                bits += 8;\\n              }\\n              //===//\\n              //--- DROPBITS(here.bits) ---//\\n              hold >>>= here_bits;\\n              bits -= here_bits;\\n              //---//\\n              if (state.have === 0) {\\n                strm.msg = 'invalid bit length repeat';\\n                state.mode = BAD;\\n                break;\\n              }\\n              len = state.lens[state.have - 1];\\n              copy = 3 + (hold & 0x03);//BITS(2);\\n              //--- DROPBITS(2) ---//\\n              hold >>>= 2;\\n              bits -= 2;\\n              //---//\\n            }\\n            else if (here_val === 17) {\\n              //=== NEEDBITS(here.bits + 3);\\n              n = here_bits + 3;\\n              while (bits < n) {\\n                if (have === 0) { break inf_leave; }\\n                have--;\\n                hold += input[next++] << bits;\\n                bits += 8;\\n              }\\n              //===//\\n              //--- DROPBITS(here.bits) ---//\\n              hold >>>= here_bits;\\n              bits -= here_bits;\\n              //---//\\n              len = 0;\\n              copy = 3 + (hold & 0x07);//BITS(3);\\n              //--- DROPBITS(3) ---//\\n              hold >>>= 3;\\n              bits -= 3;\\n              //---//\\n            }\\n            else {\\n              //=== NEEDBITS(here.bits + 7);\\n              n = here_bits + 7;\\n              while (bits < n) {\\n                if (have === 0) { break inf_leave; }\\n                have--;\\n                hold += input[next++] << bits;\\n                bits += 8;\\n              }\\n              //===//\\n              //--- DROPBITS(here.bits) ---//\\n              hold >>>= here_bits;\\n              bits -= here_bits;\\n              //---//\\n              len = 0;\\n              copy = 11 + (hold & 0x7f);//BITS(7);\\n              //--- DROPBITS(7) ---//\\n              hold >>>= 7;\\n              bits -= 7;\\n              //---//\\n            }\\n            if (state.have + copy > state.nlen + state.ndist) {\\n              strm.msg = 'invalid bit length repeat';\\n              state.mode = BAD;\\n              break;\\n            }\\n            while (copy--) {\\n              state.lens[state.have++] = len;\\n            }\\n          }\\n        }\\n\\n        /* handle error breaks in while */\\n        if (state.mode === BAD) { break; }\\n\\n        /* check for end-of-block code (better have one) */\\n        if (state.lens[256] === 0) {\\n          strm.msg = 'invalid code -- missing end-of-block';\\n          state.mode = BAD;\\n          break;\\n        }\\n\\n        /* build code tables -- note: do not change the lenbits or distbits\\n           values here (9 and 6) without reading the comments in inftrees.h\\n           concerning the ENOUGH constants, which depend on those values */\\n        state.lenbits = 9;\\n\\n        opts = { bits: state.lenbits };\\n        ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\\n        // We have separate tables & no pointers. 2 commented lines below not needed.\\n        // state.next_index = opts.table_index;\\n        state.lenbits = opts.bits;\\n        // state.lencode = state.next;\\n\\n        if (ret) {\\n          strm.msg = 'invalid literal/lengths set';\\n          state.mode = BAD;\\n          break;\\n        }\\n\\n        state.distbits = 6;\\n        //state.distcode.copy(state.codes);\\n        // Switch to use dynamic table\\n        state.distcode = state.distdyn;\\n        opts = { bits: state.distbits };\\n        ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\\n        // We have separate tables & no pointers. 2 commented lines below not needed.\\n        // state.next_index = opts.table_index;\\n        state.distbits = opts.bits;\\n        // state.distcode = state.next;\\n\\n        if (ret) {\\n          strm.msg = 'invalid distances set';\\n          state.mode = BAD;\\n          break;\\n        }\\n        //Tracev((stderr, 'inflate:       codes ok\\\\n'));\\n        state.mode = LEN_;\\n        if (flush === Z_TREES) { break inf_leave; }\\n        /* falls through */\\n      case LEN_:\\n        state.mode = LEN;\\n        /* falls through */\\n      case LEN:\\n        if (have >= 6 && left >= 258) {\\n          //--- RESTORE() ---\\n          strm.next_out = put;\\n          strm.avail_out = left;\\n          strm.next_in = next;\\n          strm.avail_in = have;\\n          state.hold = hold;\\n          state.bits = bits;\\n          //---\\n          inflate_fast(strm, _out);\\n          //--- LOAD() ---\\n          put = strm.next_out;\\n          output = strm.output;\\n          left = strm.avail_out;\\n          next = strm.next_in;\\n          input = strm.input;\\n          have = strm.avail_in;\\n          hold = state.hold;\\n          bits = state.bits;\\n          //---\\n\\n          if (state.mode === TYPE) {\\n            state.back = -1;\\n          }\\n          break;\\n        }\\n        state.back = 0;\\n        for (;;) {\\n          here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/\\n          here_bits = here >>> 24;\\n          here_op = (here >>> 16) & 0xff;\\n          here_val = here & 0xffff;\\n\\n          if (here_bits <= bits) { break; }\\n          //--- PULLBYTE() ---//\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n          //---//\\n        }\\n        if (here_op && (here_op & 0xf0) === 0) {\\n          last_bits = here_bits;\\n          last_op = here_op;\\n          last_val = here_val;\\n          for (;;) {\\n            here = state.lencode[last_val +\\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\\n            here_bits = here >>> 24;\\n            here_op = (here >>> 16) & 0xff;\\n            here_val = here & 0xffff;\\n\\n            if ((last_bits + here_bits) <= bits) { break; }\\n            //--- PULLBYTE() ---//\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n            //---//\\n          }\\n          //--- DROPBITS(last.bits) ---//\\n          hold >>>= last_bits;\\n          bits -= last_bits;\\n          //---//\\n          state.back += last_bits;\\n        }\\n        //--- DROPBITS(here.bits) ---//\\n        hold >>>= here_bits;\\n        bits -= here_bits;\\n        //---//\\n        state.back += here_bits;\\n        state.length = here_val;\\n        if (here_op === 0) {\\n          //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\\n          //        \\\"inflate:         literal '%c'\\\\n\\\" :\\n          //        \\\"inflate:         literal 0x%02x\\\\n\\\", here.val));\\n          state.mode = LIT;\\n          break;\\n        }\\n        if (here_op & 32) {\\n          //Tracevv((stderr, \\\"inflate:         end of block\\\\n\\\"));\\n          state.back = -1;\\n          state.mode = TYPE;\\n          break;\\n        }\\n        if (here_op & 64) {\\n          strm.msg = 'invalid literal/length code';\\n          state.mode = BAD;\\n          break;\\n        }\\n        state.extra = here_op & 15;\\n        state.mode = LENEXT;\\n        /* falls through */\\n      case LENEXT:\\n        if (state.extra) {\\n          //=== NEEDBITS(state.extra);\\n          n = state.extra;\\n          while (bits < n) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\\n          //--- DROPBITS(state.extra) ---//\\n          hold >>>= state.extra;\\n          bits -= state.extra;\\n          //---//\\n          state.back += state.extra;\\n        }\\n        //Tracevv((stderr, \\\"inflate:         length %u\\\\n\\\", state.length));\\n        state.was = state.length;\\n        state.mode = DIST;\\n        /* falls through */\\n      case DIST:\\n        for (;;) {\\n          here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\\n          here_bits = here >>> 24;\\n          here_op = (here >>> 16) & 0xff;\\n          here_val = here & 0xffff;\\n\\n          if ((here_bits) <= bits) { break; }\\n          //--- PULLBYTE() ---//\\n          if (have === 0) { break inf_leave; }\\n          have--;\\n          hold += input[next++] << bits;\\n          bits += 8;\\n          //---//\\n        }\\n        if ((here_op & 0xf0) === 0) {\\n          last_bits = here_bits;\\n          last_op = here_op;\\n          last_val = here_val;\\n          for (;;) {\\n            here = state.distcode[last_val +\\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\\n            here_bits = here >>> 24;\\n            here_op = (here >>> 16) & 0xff;\\n            here_val = here & 0xffff;\\n\\n            if ((last_bits + here_bits) <= bits) { break; }\\n            //--- PULLBYTE() ---//\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n            //---//\\n          }\\n          //--- DROPBITS(last.bits) ---//\\n          hold >>>= last_bits;\\n          bits -= last_bits;\\n          //---//\\n          state.back += last_bits;\\n        }\\n        //--- DROPBITS(here.bits) ---//\\n        hold >>>= here_bits;\\n        bits -= here_bits;\\n        //---//\\n        state.back += here_bits;\\n        if (here_op & 64) {\\n          strm.msg = 'invalid distance code';\\n          state.mode = BAD;\\n          break;\\n        }\\n        state.offset = here_val;\\n        state.extra = (here_op) & 15;\\n        state.mode = DISTEXT;\\n        /* falls through */\\n      case DISTEXT:\\n        if (state.extra) {\\n          //=== NEEDBITS(state.extra);\\n          n = state.extra;\\n          while (bits < n) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\\n          //--- DROPBITS(state.extra) ---//\\n          hold >>>= state.extra;\\n          bits -= state.extra;\\n          //---//\\n          state.back += state.extra;\\n        }\\n//#ifdef INFLATE_STRICT\\n        if (state.offset > state.dmax) {\\n          strm.msg = 'invalid distance too far back';\\n          state.mode = BAD;\\n          break;\\n        }\\n//#endif\\n        //Tracevv((stderr, \\\"inflate:         distance %u\\\\n\\\", state.offset));\\n        state.mode = MATCH;\\n        /* falls through */\\n      case MATCH:\\n        if (left === 0) { break inf_leave; }\\n        copy = _out - left;\\n        if (state.offset > copy) {         /* copy from window */\\n          copy = state.offset - copy;\\n          if (copy > state.whave) {\\n            if (state.sane) {\\n              strm.msg = 'invalid distance too far back';\\n              state.mode = BAD;\\n              break;\\n            }\\n// (!) This block is disabled in zlib defaults,\\n// don't enable it for binary compatibility\\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\\n//          Trace((stderr, \\\"inflate.c too far\\\\n\\\"));\\n//          copy -= state.whave;\\n//          if (copy > state.length) { copy = state.length; }\\n//          if (copy > left) { copy = left; }\\n//          left -= copy;\\n//          state.length -= copy;\\n//          do {\\n//            output[put++] = 0;\\n//          } while (--copy);\\n//          if (state.length === 0) { state.mode = LEN; }\\n//          break;\\n//#endif\\n          }\\n          if (copy > state.wnext) {\\n            copy -= state.wnext;\\n            from = state.wsize - copy;\\n          }\\n          else {\\n            from = state.wnext - copy;\\n          }\\n          if (copy > state.length) { copy = state.length; }\\n          from_source = state.window;\\n        }\\n        else {                              /* copy from output */\\n          from_source = output;\\n          from = put - state.offset;\\n          copy = state.length;\\n        }\\n        if (copy > left) { copy = left; }\\n        left -= copy;\\n        state.length -= copy;\\n        do {\\n          output[put++] = from_source[from++];\\n        } while (--copy);\\n        if (state.length === 0) { state.mode = LEN; }\\n        break;\\n      case LIT:\\n        if (left === 0) { break inf_leave; }\\n        output[put++] = state.length;\\n        left--;\\n        state.mode = LEN;\\n        break;\\n      case CHECK:\\n        if (state.wrap) {\\n          //=== NEEDBITS(32);\\n          while (bits < 32) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            // Use '|' instead of '+' to make sure that result is signed\\n            hold |= input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          _out -= left;\\n          strm.total_out += _out;\\n          state.total += _out;\\n          if ((state.wrap & 4) && _out) {\\n            strm.adler = state.check =\\n                /*UPDATE_CHECK(state.check, put - _out, _out);*/\\n                (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\\n\\n          }\\n          _out = left;\\n          // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\\n          if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\\n            strm.msg = 'incorrect data check';\\n            state.mode = BAD;\\n            break;\\n          }\\n          //=== INITBITS();\\n          hold = 0;\\n          bits = 0;\\n          //===//\\n          //Tracev((stderr, \\\"inflate:   check matches trailer\\\\n\\\"));\\n        }\\n        state.mode = LENGTH;\\n        /* falls through */\\n      case LENGTH:\\n        if (state.wrap && state.flags) {\\n          //=== NEEDBITS(32);\\n          while (bits < 32) {\\n            if (have === 0) { break inf_leave; }\\n            have--;\\n            hold += input[next++] << bits;\\n            bits += 8;\\n          }\\n          //===//\\n          if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\\n            strm.msg = 'incorrect length check';\\n            state.mode = BAD;\\n            break;\\n          }\\n          //=== INITBITS();\\n          hold = 0;\\n          bits = 0;\\n          //===//\\n          //Tracev((stderr, \\\"inflate:   length matches trailer\\\\n\\\"));\\n        }\\n        state.mode = DONE;\\n        /* falls through */\\n      case DONE:\\n        ret = Z_STREAM_END;\\n        break inf_leave;\\n      case BAD:\\n        ret = Z_DATA_ERROR;\\n        break inf_leave;\\n      case MEM:\\n        return Z_MEM_ERROR;\\n      case SYNC:\\n        /* falls through */\\n      default:\\n        return Z_STREAM_ERROR;\\n    }\\n  }\\n\\n  // inf_leave <- here is real place for \\\"goto inf_leave\\\", emulated via \\\"break inf_leave\\\"\\n\\n  /*\\n     Return from inflate(), updating the total counts and the check value.\\n     If there was no progress during the inflate() call, return a buffer\\n     error.  Call updatewindow() to create and/or update the window state.\\n     Note: a memory error from inflate() is non-recoverable.\\n   */\\n\\n  //--- RESTORE() ---\\n  strm.next_out = put;\\n  strm.avail_out = left;\\n  strm.next_in = next;\\n  strm.avail_in = have;\\n  state.hold = hold;\\n  state.bits = bits;\\n  //---\\n\\n  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\\n                      (state.mode < CHECK || flush !== Z_FINISH))) {\\n    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\\n      state.mode = MEM;\\n      return Z_MEM_ERROR;\\n    }\\n  }\\n  _in -= strm.avail_in;\\n  _out -= strm.avail_out;\\n  strm.total_in += _in;\\n  strm.total_out += _out;\\n  state.total += _out;\\n  if ((state.wrap & 4) && _out) {\\n    strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\\n      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\\n  }\\n  strm.data_type = state.bits + (state.last ? 64 : 0) +\\n                    (state.mode === TYPE ? 128 : 0) +\\n                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\\n  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\\n    ret = Z_BUF_ERROR;\\n  }\\n  return ret;\\n};\\n\\n\\nconst inflateEnd = (strm) => {\\n\\n  if (inflateStateCheck(strm)) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  let state = strm.state;\\n  if (state.window) {\\n    state.window = null;\\n  }\\n  strm.state = null;\\n  return Z_OK;\\n};\\n\\n\\nconst inflateGetHeader = (strm, head) => {\\n\\n  /* check state */\\n  if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\\n  const state = strm.state;\\n  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\\n\\n  /* save header structure */\\n  state.head = head;\\n  head.done = false;\\n  return Z_OK;\\n};\\n\\n\\nconst inflateSetDictionary = (strm, dictionary) => {\\n  const dictLength = dictionary.length;\\n\\n  let state;\\n  let dictid;\\n  let ret;\\n\\n  /* check state */\\n  if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\\n  state = strm.state;\\n\\n  if (state.wrap !== 0 && state.mode !== DICT) {\\n    return Z_STREAM_ERROR;\\n  }\\n\\n  /* check for correct dictionary identifier */\\n  if (state.mode === DICT) {\\n    dictid = 1; /* adler32(0, null, 0)*/\\n    /* dictid = adler32(dictid, dictionary, dictLength); */\\n    dictid = adler32(dictid, dictionary, dictLength, 0);\\n    if (dictid !== state.check) {\\n      return Z_DATA_ERROR;\\n    }\\n  }\\n  /* copy dictionary to window using updatewindow(), which will amend the\\n   existing dictionary if appropriate */\\n  ret = updatewindow(strm, dictionary, dictLength, dictLength);\\n  if (ret) {\\n    state.mode = MEM;\\n    return Z_MEM_ERROR;\\n  }\\n  state.havedict = 1;\\n  // Tracev((stderr, \\\"inflate:   dictionary set\\\\n\\\"));\\n  return Z_OK;\\n};\\n\\n\\nmodule.exports.inflateReset = inflateReset;\\nmodule.exports.inflateReset2 = inflateReset2;\\nmodule.exports.inflateResetKeep = inflateResetKeep;\\nmodule.exports.inflateInit = inflateInit;\\nmodule.exports.inflateInit2 = inflateInit2;\\nmodule.exports.inflate = inflate;\\nmodule.exports.inflateEnd = inflateEnd;\\nmodule.exports.inflateGetHeader = inflateGetHeader;\\nmodule.exports.inflateSetDictionary = inflateSetDictionary;\\nmodule.exports.inflateInfo = 'pako inflate (from Nodeca project)';\\n\\n/* Not implemented\\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\\nmodule.exports.inflateCopy = inflateCopy;\\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\\nmodule.exports.inflateMark = inflateMark;\\nmodule.exports.inflatePrime = inflatePrime;\\nmodule.exports.inflateSync = inflateSync;\\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\\nmodule.exports.inflateUndermine = inflateUndermine;\\nmodule.exports.inflateValidate = inflateValidate;\\n*/\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/inflate.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/inftrees.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/inftrees.js ***!\n  \\************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nconst MAXBITS = 15;\\nconst ENOUGH_LENS = 852;\\nconst ENOUGH_DISTS = 592;\\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\\n\\nconst CODES = 0;\\nconst LENS = 1;\\nconst DISTS = 2;\\n\\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\\n  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\\n  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\\n]);\\n\\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\\n  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\\n  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\\n]);\\n\\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\\n  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\\n  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\\n  8193, 12289, 16385, 24577, 0, 0\\n]);\\n\\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\\n  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\\n  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\\n  28, 28, 29, 29, 64, 64\\n]);\\n\\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\\n{\\n  const bits = opts.bits;\\n      //here = opts.here; /* table entry for duplication */\\n\\n  let len = 0;               /* a code's length in bits */\\n  let sym = 0;               /* index of code symbols */\\n  let min = 0, max = 0;          /* minimum and maximum code lengths */\\n  let root = 0;              /* number of index bits for root table */\\n  let curr = 0;              /* number of index bits for current table */\\n  let drop = 0;              /* code bits to drop for sub-table */\\n  let left = 0;                   /* number of prefix codes available */\\n  let used = 0;              /* code entries in table used */\\n  let huff = 0;              /* Huffman code */\\n  let incr;              /* for incrementing code, index */\\n  let fill;              /* index for replicating entries */\\n  let low;               /* low bits for current root entry */\\n  let mask;              /* mask for low root bits */\\n  let next;             /* next available space in table */\\n  let base = null;     /* base value table to use */\\n//  let shoextra;    /* extra bits table to use */\\n  let match;                  /* use base and extra for symbol >= match */\\n  const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */\\n  const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */\\n  let extra = null;\\n\\n  let here_bits, here_op, here_val;\\n\\n  /*\\n   Process a set of code lengths to create a canonical Huffman code.  The\\n   code lengths are lens[0..codes-1].  Each length corresponds to the\\n   symbols 0..codes-1.  The Huffman code is generated by first sorting the\\n   symbols by length from short to long, and retaining the symbol order\\n   for codes with equal lengths.  Then the code starts with all zero bits\\n   for the first code of the shortest length, and the codes are integer\\n   increments for the same length, and zeros are appended as the length\\n   increases.  For the deflate format, these bits are stored backwards\\n   from their more natural integer increment ordering, and so when the\\n   decoding tables are built in the large loop below, the integer codes\\n   are incremented backwards.\\n\\n   This routine assumes, but does not check, that all of the entries in\\n   lens[] are in the range 0..MAXBITS.  The caller must assure this.\\n   1..MAXBITS is interpreted as that code length.  zero means that that\\n   symbol does not occur in this code.\\n\\n   The codes are sorted by computing a count of codes for each length,\\n   creating from that a table of starting indices for each length in the\\n   sorted table, and then entering the symbols in order in the sorted\\n   table.  The sorted table is work[], with that space being provided by\\n   the caller.\\n\\n   The length counts are used for other purposes as well, i.e. finding\\n   the minimum and maximum length codes, determining if there are any\\n   codes at all, checking for a valid set of lengths, and looking ahead\\n   at length counts to determine sub-table sizes when building the\\n   decoding tables.\\n   */\\n\\n  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\\n  for (len = 0; len <= MAXBITS; len++) {\\n    count[len] = 0;\\n  }\\n  for (sym = 0; sym < codes; sym++) {\\n    count[lens[lens_index + sym]]++;\\n  }\\n\\n  /* bound code lengths, force root to be within code lengths */\\n  root = bits;\\n  for (max = MAXBITS; max >= 1; max--) {\\n    if (count[max] !== 0) { break; }\\n  }\\n  if (root > max) {\\n    root = max;\\n  }\\n  if (max === 0) {                     /* no symbols to code at all */\\n    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\\n    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\\n    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;\\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\\n\\n\\n    //table.op[opts.table_index] = 64;\\n    //table.bits[opts.table_index] = 1;\\n    //table.val[opts.table_index++] = 0;\\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\\n\\n    opts.bits = 1;\\n    return 0;     /* no symbols, but wait for decoding to report error */\\n  }\\n  for (min = 1; min < max; min++) {\\n    if (count[min] !== 0) { break; }\\n  }\\n  if (root < min) {\\n    root = min;\\n  }\\n\\n  /* check for an over-subscribed or incomplete set of lengths */\\n  left = 1;\\n  for (len = 1; len <= MAXBITS; len++) {\\n    left <<= 1;\\n    left -= count[len];\\n    if (left < 0) {\\n      return -1;\\n    }        /* over-subscribed */\\n  }\\n  if (left > 0 && (type === CODES || max !== 1)) {\\n    return -1;                      /* incomplete set */\\n  }\\n\\n  /* generate offsets into symbol table for each length for sorting */\\n  offs[1] = 0;\\n  for (len = 1; len < MAXBITS; len++) {\\n    offs[len + 1] = offs[len] + count[len];\\n  }\\n\\n  /* sort symbols by length, by symbol order within each length */\\n  for (sym = 0; sym < codes; sym++) {\\n    if (lens[lens_index + sym] !== 0) {\\n      work[offs[lens[lens_index + sym]]++] = sym;\\n    }\\n  }\\n\\n  /*\\n   Create and fill in decoding tables.  In this loop, the table being\\n   filled is at next and has curr index bits.  The code being used is huff\\n   with length len.  That code is converted to an index by dropping drop\\n   bits off of the bottom.  For codes where len is less than drop + curr,\\n   those top drop + curr - len bits are incremented through all values to\\n   fill the table with replicated entries.\\n\\n   root is the number of index bits for the root table.  When len exceeds\\n   root, sub-tables are created pointed to by the root entry with an index\\n   of the low root bits of huff.  This is saved in low to check for when a\\n   new sub-table should be started.  drop is zero when the root table is\\n   being filled, and drop is root when sub-tables are being filled.\\n\\n   When a new sub-table is needed, it is necessary to look ahead in the\\n   code lengths to determine what size sub-table is needed.  The length\\n   counts are used for this, and so count[] is decremented as codes are\\n   entered in the tables.\\n\\n   used keeps track of how many table entries have been allocated from the\\n   provided *table space.  It is checked for LENS and DIST tables against\\n   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\\n   the initial root table size constants.  See the comments in inftrees.h\\n   for more information.\\n\\n   sym increments through all symbols, and the loop terminates when\\n   all codes of length max, i.e. all codes, have been processed.  This\\n   routine permits incomplete codes, so another loop after this one fills\\n   in the rest of the decoding tables with invalid code markers.\\n   */\\n\\n  /* set up for code type */\\n  // poor man optimization - use if-else instead of switch,\\n  // to avoid deopts in old v8\\n  if (type === CODES) {\\n    base = extra = work;    /* dummy value--not used */\\n    match = 20;\\n\\n  } else if (type === LENS) {\\n    base = lbase;\\n    extra = lext;\\n    match = 257;\\n\\n  } else {                    /* DISTS */\\n    base = dbase;\\n    extra = dext;\\n    match = 0;\\n  }\\n\\n  /* initialize opts for loop */\\n  huff = 0;                   /* starting code */\\n  sym = 0;                    /* starting code symbol */\\n  len = min;                  /* starting code length */\\n  next = table_index;              /* current table to fill in */\\n  curr = root;                /* current table index bits */\\n  drop = 0;                   /* current bits to drop from code for index */\\n  low = -1;                   /* trigger new sub-table when len > root */\\n  used = 1 << root;          /* use root table entries */\\n  mask = used - 1;            /* mask for comparing low */\\n\\n  /* check available table space */\\n  if ((type === LENS && used > ENOUGH_LENS) ||\\n    (type === DISTS && used > ENOUGH_DISTS)) {\\n    return 1;\\n  }\\n\\n  /* process all codes and make table entries */\\n  for (;;) {\\n    /* create table entry */\\n    here_bits = len - drop;\\n    if (work[sym] + 1 < match) {\\n      here_op = 0;\\n      here_val = work[sym];\\n    }\\n    else if (work[sym] >= match) {\\n      here_op = extra[work[sym] - match];\\n      here_val = base[work[sym] - match];\\n    }\\n    else {\\n      here_op = 32 + 64;         /* end of block */\\n      here_val = 0;\\n    }\\n\\n    /* replicate for those indices with low len bits equal to huff */\\n    incr = 1 << (len - drop);\\n    fill = 1 << curr;\\n    min = fill;                 /* save offset to next table */\\n    do {\\n      fill -= incr;\\n      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\\n    } while (fill !== 0);\\n\\n    /* backwards increment the len-bit code huff */\\n    incr = 1 << (len - 1);\\n    while (huff & incr) {\\n      incr >>= 1;\\n    }\\n    if (incr !== 0) {\\n      huff &= incr - 1;\\n      huff += incr;\\n    } else {\\n      huff = 0;\\n    }\\n\\n    /* go to next symbol, update count, len */\\n    sym++;\\n    if (--count[len] === 0) {\\n      if (len === max) { break; }\\n      len = lens[lens_index + work[sym]];\\n    }\\n\\n    /* create new sub-table if needed */\\n    if (len > root && (huff & mask) !== low) {\\n      /* if first time, transition to sub-tables */\\n      if (drop === 0) {\\n        drop = root;\\n      }\\n\\n      /* increment past last table */\\n      next += min;            /* here min is 1 << curr */\\n\\n      /* determine length of next table */\\n      curr = len - drop;\\n      left = 1 << curr;\\n      while (curr + drop < max) {\\n        left -= count[curr + drop];\\n        if (left <= 0) { break; }\\n        curr++;\\n        left <<= 1;\\n      }\\n\\n      /* check for enough space */\\n      used += 1 << curr;\\n      if ((type === LENS && used > ENOUGH_LENS) ||\\n        (type === DISTS && used > ENOUGH_DISTS)) {\\n        return 1;\\n      }\\n\\n      /* point entry in root table to sub-table */\\n      low = huff & mask;\\n      /*table.op[low] = curr;\\n      table.bits[low] = root;\\n      table.val[low] = next - opts.table_index;*/\\n      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\\n    }\\n  }\\n\\n  /* fill in remaining table entry if code is incomplete (guaranteed to have\\n   at most one remaining entry, since if the code is incomplete, the\\n   maximum code length that was allowed to get this far is one bit) */\\n  if (huff !== 0) {\\n    //table.op[next + huff] = 64;            /* invalid code marker */\\n    //table.bits[next + huff] = len - drop;\\n    //table.val[next + huff] = 0;\\n    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\\n  }\\n\\n  /* set return parameters */\\n  //opts.table_index += used;\\n  opts.bits = root;\\n  return 0;\\n};\\n\\n\\nmodule.exports = inflate_table;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/inftrees.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/messages.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/messages.js ***!\n  \\************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nmodule.exports = {\\n  2:      'need dictionary',     /* Z_NEED_DICT       2  */\\n  1:      'stream end',          /* Z_STREAM_END      1  */\\n  0:      '',                    /* Z_OK              0  */\\n  '-1':   'file error',          /* Z_ERRNO         (-1) */\\n  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */\\n  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */\\n  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */\\n  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */\\n  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/messages.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/trees.js\":\n/*!*********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/trees.js ***!\n  \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\n/* eslint-disable space-unary-ops */\\n\\n/* Public constants ==========================================================*/\\n/* ===========================================================================*/\\n\\n\\n//const Z_FILTERED          = 1;\\n//const Z_HUFFMAN_ONLY      = 2;\\n//const Z_RLE               = 3;\\nconst Z_FIXED               = 4;\\n//const Z_DEFAULT_STRATEGY  = 0;\\n\\n/* Possible values of the data_type field (though see inflate()) */\\nconst Z_BINARY              = 0;\\nconst Z_TEXT                = 1;\\n//const Z_ASCII             = 1; // = Z_TEXT\\nconst Z_UNKNOWN             = 2;\\n\\n/*============================================================================*/\\n\\n\\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\\n\\n// From zutil.h\\n\\nconst STORED_BLOCK = 0;\\nconst STATIC_TREES = 1;\\nconst DYN_TREES    = 2;\\n/* The three kinds of block type */\\n\\nconst MIN_MATCH    = 3;\\nconst MAX_MATCH    = 258;\\n/* The minimum and maximum match lengths */\\n\\n// From deflate.h\\n/* ===========================================================================\\n * Internal compression state.\\n */\\n\\nconst LENGTH_CODES  = 29;\\n/* number of length codes, not counting the special END_BLOCK code */\\n\\nconst LITERALS      = 256;\\n/* number of literal bytes 0..255 */\\n\\nconst L_CODES       = LITERALS + 1 + LENGTH_CODES;\\n/* number of Literal or Length codes, including the END_BLOCK code */\\n\\nconst D_CODES       = 30;\\n/* number of distance codes */\\n\\nconst BL_CODES      = 19;\\n/* number of codes used to transfer the bit lengths */\\n\\nconst HEAP_SIZE     = 2 * L_CODES + 1;\\n/* maximum heap size */\\n\\nconst MAX_BITS      = 15;\\n/* All codes must not exceed MAX_BITS bits */\\n\\nconst Buf_size      = 16;\\n/* size of bit buffer in bi_buf */\\n\\n\\n/* ===========================================================================\\n * Constants\\n */\\n\\nconst MAX_BL_BITS = 7;\\n/* Bit length codes must not exceed MAX_BL_BITS bits */\\n\\nconst END_BLOCK   = 256;\\n/* end of block literal code */\\n\\nconst REP_3_6     = 16;\\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\\n\\nconst REPZ_3_10   = 17;\\n/* repeat a zero length 3-10 times  (3 bits of repeat count) */\\n\\nconst REPZ_11_138 = 18;\\n/* repeat a zero length 11-138 times  (7 bits of repeat count) */\\n\\n/* eslint-disable comma-spacing,array-bracket-spacing */\\nconst extra_lbits =   /* extra bits for each length code */\\n  new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\\n\\nconst extra_dbits =   /* extra bits for each distance code */\\n  new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\\n\\nconst extra_blbits =  /* extra bits for each bit length code */\\n  new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\\n\\nconst bl_order =\\n  new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\\n/* eslint-enable comma-spacing,array-bracket-spacing */\\n\\n/* The lengths of the bit length codes are sent in order of decreasing\\n * probability, to avoid transmitting the lengths for unused bit length codes.\\n */\\n\\n/* ===========================================================================\\n * Local data. These are initialized only once.\\n */\\n\\n// We pre-fill arrays with 0 to avoid uninitialized gaps\\n\\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\\n\\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\\nconst static_ltree  = new Array((L_CODES + 2) * 2);\\nzero(static_ltree);\\n/* The static literal tree. Since the bit lengths are imposed, there is no\\n * need for the L_CODES extra codes used during heap construction. However\\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\\n * below).\\n */\\n\\nconst static_dtree  = new Array(D_CODES * 2);\\nzero(static_dtree);\\n/* The static distance tree. (Actually a trivial tree since all codes use\\n * 5 bits.)\\n */\\n\\nconst _dist_code    = new Array(DIST_CODE_LEN);\\nzero(_dist_code);\\n/* Distance codes. The first 256 values correspond to the distances\\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\\n * the 15 bit distances.\\n */\\n\\nconst _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);\\nzero(_length_code);\\n/* length code for each normalized match length (0 == MIN_MATCH) */\\n\\nconst base_length   = new Array(LENGTH_CODES);\\nzero(base_length);\\n/* First normalized length for each code (0 = MIN_MATCH) */\\n\\nconst base_dist     = new Array(D_CODES);\\nzero(base_dist);\\n/* First normalized distance for each code (0 = distance of 1) */\\n\\n\\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\\n\\n  this.static_tree  = static_tree;  /* static tree or NULL */\\n  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */\\n  this.extra_base   = extra_base;   /* base index for extra_bits */\\n  this.elems        = elems;        /* max number of elements in the tree */\\n  this.max_length   = max_length;   /* max bit length for the codes */\\n\\n  // show if `static_tree` has data or dummy - needed for monomorphic objects\\n  this.has_stree    = static_tree && static_tree.length;\\n}\\n\\n\\nlet static_l_desc;\\nlet static_d_desc;\\nlet static_bl_desc;\\n\\n\\nfunction TreeDesc(dyn_tree, stat_desc) {\\n  this.dyn_tree = dyn_tree;     /* the dynamic tree */\\n  this.max_code = 0;            /* largest code with non zero frequency */\\n  this.stat_desc = stat_desc;   /* the corresponding static tree */\\n}\\n\\n\\n\\nconst d_code = (dist) => {\\n\\n  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\\n};\\n\\n\\n/* ===========================================================================\\n * Output a short LSB first on the stream.\\n * IN assertion: there is enough room in pendingBuf.\\n */\\nconst put_short = (s, w) => {\\n//    put_byte(s, (uch)((w) & 0xff));\\n//    put_byte(s, (uch)((ush)(w) >> 8));\\n  s.pending_buf[s.pending++] = (w) & 0xff;\\n  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\\n};\\n\\n\\n/* ===========================================================================\\n * Send a value on a given number of bits.\\n * IN assertion: length <= 16 and value fits in length bits.\\n */\\nconst send_bits = (s, value, length) => {\\n\\n  if (s.bi_valid > (Buf_size - length)) {\\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\\n    put_short(s, s.bi_buf);\\n    s.bi_buf = value >> (Buf_size - s.bi_valid);\\n    s.bi_valid += length - Buf_size;\\n  } else {\\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\\n    s.bi_valid += length;\\n  }\\n};\\n\\n\\nconst send_code = (s, c, tree) => {\\n\\n  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\\n};\\n\\n\\n/* ===========================================================================\\n * Reverse the first len bits of a code, using straightforward code (a faster\\n * method would use a table)\\n * IN assertion: 1 <= len <= 15\\n */\\nconst bi_reverse = (code, len) => {\\n\\n  let res = 0;\\n  do {\\n    res |= code & 1;\\n    code >>>= 1;\\n    res <<= 1;\\n  } while (--len > 0);\\n  return res >>> 1;\\n};\\n\\n\\n/* ===========================================================================\\n * Flush the bit buffer, keeping at most 7 bits in it.\\n */\\nconst bi_flush = (s) => {\\n\\n  if (s.bi_valid === 16) {\\n    put_short(s, s.bi_buf);\\n    s.bi_buf = 0;\\n    s.bi_valid = 0;\\n\\n  } else if (s.bi_valid >= 8) {\\n    s.pending_buf[s.pending++] = s.bi_buf & 0xff;\\n    s.bi_buf >>= 8;\\n    s.bi_valid -= 8;\\n  }\\n};\\n\\n\\n/* ===========================================================================\\n * Compute the optimal bit lengths for a tree and update the total bit length\\n * for the current block.\\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\\n *    above are the tree nodes sorted by increasing frequency.\\n * OUT assertions: the field len is set to the optimal bit length, the\\n *     array bl_count contains the frequencies for each bit length.\\n *     The length opt_len is updated; static_len is also updated if stree is\\n *     not null.\\n */\\nconst gen_bitlen = (s, desc) => {\\n//    deflate_state *s;\\n//    tree_desc *desc;    /* the tree descriptor */\\n\\n  const tree            = desc.dyn_tree;\\n  const max_code        = desc.max_code;\\n  const stree           = desc.stat_desc.static_tree;\\n  const has_stree       = desc.stat_desc.has_stree;\\n  const extra           = desc.stat_desc.extra_bits;\\n  const base            = desc.stat_desc.extra_base;\\n  const max_length      = desc.stat_desc.max_length;\\n  let h;              /* heap index */\\n  let n, m;           /* iterate over the tree elements */\\n  let bits;           /* bit length */\\n  let xbits;          /* extra bits */\\n  let f;              /* frequency */\\n  let overflow = 0;   /* number of elements with bit length too large */\\n\\n  for (bits = 0; bits <= MAX_BITS; bits++) {\\n    s.bl_count[bits] = 0;\\n  }\\n\\n  /* In a first pass, compute the optimal bit lengths (which may\\n   * overflow in the case of the bit length tree).\\n   */\\n  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\\n\\n  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\\n    n = s.heap[h];\\n    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\\n    if (bits > max_length) {\\n      bits = max_length;\\n      overflow++;\\n    }\\n    tree[n * 2 + 1]/*.Len*/ = bits;\\n    /* We overwrite tree[n].Dad which is no longer needed */\\n\\n    if (n > max_code) { continue; } /* not a leaf node */\\n\\n    s.bl_count[bits]++;\\n    xbits = 0;\\n    if (n >= base) {\\n      xbits = extra[n - base];\\n    }\\n    f = tree[n * 2]/*.Freq*/;\\n    s.opt_len += f * (bits + xbits);\\n    if (has_stree) {\\n      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\\n    }\\n  }\\n  if (overflow === 0) { return; }\\n\\n  // Tracev((stderr,\\\"\\\\nbit length overflow\\\\n\\\"));\\n  /* This happens for example on obj2 and pic of the Calgary corpus */\\n\\n  /* Find the first bit length which could increase: */\\n  do {\\n    bits = max_length - 1;\\n    while (s.bl_count[bits] === 0) { bits--; }\\n    s.bl_count[bits]--;      /* move one leaf down the tree */\\n    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\\n    s.bl_count[max_length]--;\\n    /* The brother of the overflow item also moves one step up,\\n     * but this does not affect bl_count[max_length]\\n     */\\n    overflow -= 2;\\n  } while (overflow > 0);\\n\\n  /* Now recompute all bit lengths, scanning in increasing frequency.\\n   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\\n   * lengths instead of fixing only the wrong ones. This idea is taken\\n   * from 'ar' written by Haruhiko Okumura.)\\n   */\\n  for (bits = max_length; bits !== 0; bits--) {\\n    n = s.bl_count[bits];\\n    while (n !== 0) {\\n      m = s.heap[--h];\\n      if (m > max_code) { continue; }\\n      if (tree[m * 2 + 1]/*.Len*/ !== bits) {\\n        // Tracev((stderr,\\\"code %d bits %d->%d\\\\n\\\", m, tree[m].Len, bits));\\n        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\\n        tree[m * 2 + 1]/*.Len*/ = bits;\\n      }\\n      n--;\\n    }\\n  }\\n};\\n\\n\\n/* ===========================================================================\\n * Generate the codes for a given tree and bit counts (which need not be\\n * optimal).\\n * IN assertion: the array bl_count contains the bit length statistics for\\n * the given tree and the field len is set for all tree elements.\\n * OUT assertion: the field code is set for all tree elements of non\\n *     zero code length.\\n */\\nconst gen_codes = (tree, max_code, bl_count) => {\\n//    ct_data *tree;             /* the tree to decorate */\\n//    int max_code;              /* largest code with non zero frequency */\\n//    ushf *bl_count;            /* number of codes at each bit length */\\n\\n  const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\\n  let code = 0;              /* running code value */\\n  let bits;                  /* bit index */\\n  let n;                     /* code index */\\n\\n  /* The distribution counts are first used to generate the code values\\n   * without bit reversal.\\n   */\\n  for (bits = 1; bits <= MAX_BITS; bits++) {\\n    code = (code + bl_count[bits - 1]) << 1;\\n    next_code[bits] = code;\\n  }\\n  /* Check that the bit counts in bl_count are consistent. The last code\\n   * must be all ones.\\n   */\\n  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\\n  //        \\\"inconsistent bit counts\\\");\\n  //Tracev((stderr,\\\"\\\\ngen_codes: max_code %d \\\", max_code));\\n\\n  for (n = 0;  n <= max_code; n++) {\\n    let len = tree[n * 2 + 1]/*.Len*/;\\n    if (len === 0) { continue; }\\n    /* Now reverse the bits */\\n    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\\n\\n    //Tracecv(tree != static_ltree, (stderr,\\\"\\\\nn %3d %c l %2d c %4x (%x) \\\",\\n    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\\n  }\\n};\\n\\n\\n/* ===========================================================================\\n * Initialize the various 'constant' tables.\\n */\\nconst tr_static_init = () => {\\n\\n  let n;        /* iterates over tree elements */\\n  let bits;     /* bit counter */\\n  let length;   /* length value */\\n  let code;     /* code value */\\n  let dist;     /* distance index */\\n  const bl_count = new Array(MAX_BITS + 1);\\n  /* number of codes at each bit length for an optimal tree */\\n\\n  // do check in _tr_init()\\n  //if (static_init_done) return;\\n\\n  /* For some embedded targets, global variables are not initialized: */\\n/*#ifdef NO_INIT_GLOBAL_POINTERS\\n  static_l_desc.static_tree = static_ltree;\\n  static_l_desc.extra_bits = extra_lbits;\\n  static_d_desc.static_tree = static_dtree;\\n  static_d_desc.extra_bits = extra_dbits;\\n  static_bl_desc.extra_bits = extra_blbits;\\n#endif*/\\n\\n  /* Initialize the mapping length (0..255) -> length code (0..28) */\\n  length = 0;\\n  for (code = 0; code < LENGTH_CODES - 1; code++) {\\n    base_length[code] = length;\\n    for (n = 0; n < (1 << extra_lbits[code]); n++) {\\n      _length_code[length++] = code;\\n    }\\n  }\\n  //Assert (length == 256, \\\"tr_static_init: length != 256\\\");\\n  /* Note that the length 255 (match length 258) can be represented\\n   * in two different ways: code 284 + 5 bits or code 285, so we\\n   * overwrite length_code[255] to use the best encoding:\\n   */\\n  _length_code[length - 1] = code;\\n\\n  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\\n  dist = 0;\\n  for (code = 0; code < 16; code++) {\\n    base_dist[code] = dist;\\n    for (n = 0; n < (1 << extra_dbits[code]); n++) {\\n      _dist_code[dist++] = code;\\n    }\\n  }\\n  //Assert (dist == 256, \\\"tr_static_init: dist != 256\\\");\\n  dist >>= 7; /* from now on, all distances are divided by 128 */\\n  for (; code < D_CODES; code++) {\\n    base_dist[code] = dist << 7;\\n    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\\n      _dist_code[256 + dist++] = code;\\n    }\\n  }\\n  //Assert (dist == 256, \\\"tr_static_init: 256+dist != 512\\\");\\n\\n  /* Construct the codes of the static literal tree */\\n  for (bits = 0; bits <= MAX_BITS; bits++) {\\n    bl_count[bits] = 0;\\n  }\\n\\n  n = 0;\\n  while (n <= 143) {\\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\\n    n++;\\n    bl_count[8]++;\\n  }\\n  while (n <= 255) {\\n    static_ltree[n * 2 + 1]/*.Len*/ = 9;\\n    n++;\\n    bl_count[9]++;\\n  }\\n  while (n <= 279) {\\n    static_ltree[n * 2 + 1]/*.Len*/ = 7;\\n    n++;\\n    bl_count[7]++;\\n  }\\n  while (n <= 287) {\\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\\n    n++;\\n    bl_count[8]++;\\n  }\\n  /* Codes 286 and 287 do not exist, but we must include them in the\\n   * tree construction to get a canonical Huffman tree (longest code\\n   * all ones)\\n   */\\n  gen_codes(static_ltree, L_CODES + 1, bl_count);\\n\\n  /* The static distance tree is trivial: */\\n  for (n = 0; n < D_CODES; n++) {\\n    static_dtree[n * 2 + 1]/*.Len*/ = 5;\\n    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\\n  }\\n\\n  // Now data ready and we can init static trees\\n  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\\n  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);\\n  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);\\n\\n  //static_init_done = true;\\n};\\n\\n\\n/* ===========================================================================\\n * Initialize a new block.\\n */\\nconst init_block = (s) => {\\n\\n  let n; /* iterates over tree elements */\\n\\n  /* Initialize the trees. */\\n  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\\n  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\\n  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\\n\\n  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\\n  s.opt_len = s.static_len = 0;\\n  s.sym_next = s.matches = 0;\\n};\\n\\n\\n/* ===========================================================================\\n * Flush the bit buffer and align the output on a byte boundary\\n */\\nconst bi_windup = (s) =>\\n{\\n  if (s.bi_valid > 8) {\\n    put_short(s, s.bi_buf);\\n  } else if (s.bi_valid > 0) {\\n    //put_byte(s, (Byte)s->bi_buf);\\n    s.pending_buf[s.pending++] = s.bi_buf;\\n  }\\n  s.bi_buf = 0;\\n  s.bi_valid = 0;\\n};\\n\\n/* ===========================================================================\\n * Compares to subtrees, using the tree depth as tie breaker when\\n * the subtrees have equal frequency. This minimizes the worst case length.\\n */\\nconst smaller = (tree, n, m, depth) => {\\n\\n  const _n2 = n * 2;\\n  const _m2 = m * 2;\\n  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\\n         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\\n};\\n\\n/* ===========================================================================\\n * Restore the heap property by moving down the tree starting at node k,\\n * exchanging a node with the smallest of its two sons if necessary, stopping\\n * when the heap property is re-established (each father smaller than its\\n * two sons).\\n */\\nconst pqdownheap = (s, tree, k) => {\\n//    deflate_state *s;\\n//    ct_data *tree;  /* the tree to restore */\\n//    int k;               /* node to move down */\\n\\n  const v = s.heap[k];\\n  let j = k << 1;  /* left son of k */\\n  while (j <= s.heap_len) {\\n    /* Set j to the smallest of the two sons: */\\n    if (j < s.heap_len &&\\n      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\\n      j++;\\n    }\\n    /* Exit if v is smaller than both sons */\\n    if (smaller(tree, v, s.heap[j], s.depth)) { break; }\\n\\n    /* Exchange v with the smallest son */\\n    s.heap[k] = s.heap[j];\\n    k = j;\\n\\n    /* And continue down the tree, setting j to the left son of k */\\n    j <<= 1;\\n  }\\n  s.heap[k] = v;\\n};\\n\\n\\n// inlined manually\\n// const SMALLEST = 1;\\n\\n/* ===========================================================================\\n * Send the block data compressed using the given Huffman trees\\n */\\nconst compress_block = (s, ltree, dtree) => {\\n//    deflate_state *s;\\n//    const ct_data *ltree; /* literal tree */\\n//    const ct_data *dtree; /* distance tree */\\n\\n  let dist;           /* distance of matched string */\\n  let lc;             /* match length or unmatched char (if dist == 0) */\\n  let sx = 0;         /* running index in sym_buf */\\n  let code;           /* the code to send */\\n  let extra;          /* number of extra bits to send */\\n\\n  if (s.sym_next !== 0) {\\n    do {\\n      dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\\n      dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\\n      lc = s.pending_buf[s.sym_buf + sx++];\\n      if (dist === 0) {\\n        send_code(s, lc, ltree); /* send a literal byte */\\n        //Tracecv(isgraph(lc), (stderr,\\\" '%c' \\\", lc));\\n      } else {\\n        /* Here, lc is the match length - MIN_MATCH */\\n        code = _length_code[lc];\\n        send_code(s, code + LITERALS + 1, ltree); /* send the length code */\\n        extra = extra_lbits[code];\\n        if (extra !== 0) {\\n          lc -= base_length[code];\\n          send_bits(s, lc, extra);       /* send the extra length bits */\\n        }\\n        dist--; /* dist is now the match distance - 1 */\\n        code = d_code(dist);\\n        //Assert (code < D_CODES, \\\"bad d_code\\\");\\n\\n        send_code(s, code, dtree);       /* send the distance code */\\n        extra = extra_dbits[code];\\n        if (extra !== 0) {\\n          dist -= base_dist[code];\\n          send_bits(s, dist, extra);   /* send the extra distance bits */\\n        }\\n      } /* literal or match pair ? */\\n\\n      /* Check that the overlay between pending_buf and sym_buf is ok: */\\n      //Assert(s->pending < s->lit_bufsize + sx, \\\"pendingBuf overflow\\\");\\n\\n    } while (sx < s.sym_next);\\n  }\\n\\n  send_code(s, END_BLOCK, ltree);\\n};\\n\\n\\n/* ===========================================================================\\n * Construct one Huffman tree and assigns the code bit strings and lengths.\\n * Update the total bit length for the current block.\\n * IN assertion: the field freq is set for all tree elements.\\n * OUT assertions: the fields len and code are set to the optimal bit length\\n *     and corresponding code. The length opt_len is updated; static_len is\\n *     also updated if stree is not null. The field max_code is set.\\n */\\nconst build_tree = (s, desc) => {\\n//    deflate_state *s;\\n//    tree_desc *desc; /* the tree descriptor */\\n\\n  const tree     = desc.dyn_tree;\\n  const stree    = desc.stat_desc.static_tree;\\n  const has_stree = desc.stat_desc.has_stree;\\n  const elems    = desc.stat_desc.elems;\\n  let n, m;          /* iterate over heap elements */\\n  let max_code = -1; /* largest code with non zero frequency */\\n  let node;          /* new node being created */\\n\\n  /* Construct the initial heap, with least frequent element in\\n   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\\n   * heap[0] is not used.\\n   */\\n  s.heap_len = 0;\\n  s.heap_max = HEAP_SIZE;\\n\\n  for (n = 0; n < elems; n++) {\\n    if (tree[n * 2]/*.Freq*/ !== 0) {\\n      s.heap[++s.heap_len] = max_code = n;\\n      s.depth[n] = 0;\\n\\n    } else {\\n      tree[n * 2 + 1]/*.Len*/ = 0;\\n    }\\n  }\\n\\n  /* The pkzip format requires that at least one distance code exists,\\n   * and that at least one bit should be sent even if there is only one\\n   * possible code. So to avoid special checks later on we force at least\\n   * two codes of non zero frequency.\\n   */\\n  while (s.heap_len < 2) {\\n    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\\n    tree[node * 2]/*.Freq*/ = 1;\\n    s.depth[node] = 0;\\n    s.opt_len--;\\n\\n    if (has_stree) {\\n      s.static_len -= stree[node * 2 + 1]/*.Len*/;\\n    }\\n    /* node is 0 or 1 so it does not have extra bits */\\n  }\\n  desc.max_code = max_code;\\n\\n  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\\n   * establish sub-heaps of increasing lengths:\\n   */\\n  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\\n\\n  /* Construct the Huffman tree by repeatedly combining the least two\\n   * frequent nodes.\\n   */\\n  node = elems;              /* next internal node of the tree */\\n  do {\\n    //pqremove(s, tree, n);  /* n = node of least frequency */\\n    /*** pqremove ***/\\n    n = s.heap[1/*SMALLEST*/];\\n    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\\n    pqdownheap(s, tree, 1/*SMALLEST*/);\\n    /***/\\n\\n    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\\n\\n    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\\n    s.heap[--s.heap_max] = m;\\n\\n    /* Create a new node father of n and m */\\n    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\\n    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\\n    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\\n\\n    /* and insert the new node in the heap */\\n    s.heap[1/*SMALLEST*/] = node++;\\n    pqdownheap(s, tree, 1/*SMALLEST*/);\\n\\n  } while (s.heap_len >= 2);\\n\\n  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\\n\\n  /* At this point, the fields freq and dad are set. We can now\\n   * generate the bit lengths.\\n   */\\n  gen_bitlen(s, desc);\\n\\n  /* The field len is now set, we can generate the bit codes */\\n  gen_codes(tree, max_code, s.bl_count);\\n};\\n\\n\\n/* ===========================================================================\\n * Scan a literal or distance tree to determine the frequencies of the codes\\n * in the bit length tree.\\n */\\nconst scan_tree = (s, tree, max_code) => {\\n//    deflate_state *s;\\n//    ct_data *tree;   /* the tree to be scanned */\\n//    int max_code;    /* and its largest code of non zero frequency */\\n\\n  let n;                     /* iterates over all tree elements */\\n  let prevlen = -1;          /* last emitted length */\\n  let curlen;                /* length of current code */\\n\\n  let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\\n\\n  let count = 0;             /* repeat count of the current code */\\n  let max_count = 7;         /* max repeat count */\\n  let min_count = 4;         /* min repeat count */\\n\\n  if (nextlen === 0) {\\n    max_count = 138;\\n    min_count = 3;\\n  }\\n  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\\n\\n  for (n = 0; n <= max_code; n++) {\\n    curlen = nextlen;\\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\\n\\n    if (++count < max_count && curlen === nextlen) {\\n      continue;\\n\\n    } else if (count < min_count) {\\n      s.bl_tree[curlen * 2]/*.Freq*/ += count;\\n\\n    } else if (curlen !== 0) {\\n\\n      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\\n      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\\n\\n    } else if (count <= 10) {\\n      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\\n\\n    } else {\\n      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\\n    }\\n\\n    count = 0;\\n    prevlen = curlen;\\n\\n    if (nextlen === 0) {\\n      max_count = 138;\\n      min_count = 3;\\n\\n    } else if (curlen === nextlen) {\\n      max_count = 6;\\n      min_count = 3;\\n\\n    } else {\\n      max_count = 7;\\n      min_count = 4;\\n    }\\n  }\\n};\\n\\n\\n/* ===========================================================================\\n * Send a literal or distance tree in compressed form, using the codes in\\n * bl_tree.\\n */\\nconst send_tree = (s, tree, max_code) => {\\n//    deflate_state *s;\\n//    ct_data *tree; /* the tree to be scanned */\\n//    int max_code;       /* and its largest code of non zero frequency */\\n\\n  let n;                     /* iterates over all tree elements */\\n  let prevlen = -1;          /* last emitted length */\\n  let curlen;                /* length of current code */\\n\\n  let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\\n\\n  let count = 0;             /* repeat count of the current code */\\n  let max_count = 7;         /* max repeat count */\\n  let min_count = 4;         /* min repeat count */\\n\\n  /* tree[max_code+1].Len = -1; */  /* guard already set */\\n  if (nextlen === 0) {\\n    max_count = 138;\\n    min_count = 3;\\n  }\\n\\n  for (n = 0; n <= max_code; n++) {\\n    curlen = nextlen;\\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\\n\\n    if (++count < max_count && curlen === nextlen) {\\n      continue;\\n\\n    } else if (count < min_count) {\\n      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\\n\\n    } else if (curlen !== 0) {\\n      if (curlen !== prevlen) {\\n        send_code(s, curlen, s.bl_tree);\\n        count--;\\n      }\\n      //Assert(count >= 3 && count <= 6, \\\" 3_6?\\\");\\n      send_code(s, REP_3_6, s.bl_tree);\\n      send_bits(s, count - 3, 2);\\n\\n    } else if (count <= 10) {\\n      send_code(s, REPZ_3_10, s.bl_tree);\\n      send_bits(s, count - 3, 3);\\n\\n    } else {\\n      send_code(s, REPZ_11_138, s.bl_tree);\\n      send_bits(s, count - 11, 7);\\n    }\\n\\n    count = 0;\\n    prevlen = curlen;\\n    if (nextlen === 0) {\\n      max_count = 138;\\n      min_count = 3;\\n\\n    } else if (curlen === nextlen) {\\n      max_count = 6;\\n      min_count = 3;\\n\\n    } else {\\n      max_count = 7;\\n      min_count = 4;\\n    }\\n  }\\n};\\n\\n\\n/* ===========================================================================\\n * Construct the Huffman tree for the bit lengths and return the index in\\n * bl_order of the last bit length code to send.\\n */\\nconst build_bl_tree = (s) => {\\n\\n  let max_blindex;  /* index of last bit length code of non zero freq */\\n\\n  /* Determine the bit length frequencies for literal and distance trees */\\n  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\\n  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\\n\\n  /* Build the bit length tree: */\\n  build_tree(s, s.bl_desc);\\n  /* opt_len now includes the length of the tree representations, except\\n   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\\n   */\\n\\n  /* Determine the number of bit length codes to send. The pkzip format\\n   * requires that at least 4 bit length codes be sent. (appnote.txt says\\n   * 3 but the actual value used is 4.)\\n   */\\n  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\\n    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\\n      break;\\n    }\\n  }\\n  /* Update opt_len to include the bit length tree and counts */\\n  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\\n  //Tracev((stderr, \\\"\\\\ndyn trees: dyn %ld, stat %ld\\\",\\n  //        s->opt_len, s->static_len));\\n\\n  return max_blindex;\\n};\\n\\n\\n/* ===========================================================================\\n * Send the header for a block using dynamic Huffman trees: the counts, the\\n * lengths of the bit length codes, the literal tree and the distance tree.\\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\\n */\\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\\n//    deflate_state *s;\\n//    int lcodes, dcodes, blcodes; /* number of codes for each tree */\\n\\n  let rank;                    /* index in bl_order */\\n\\n  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \\\"not enough codes\\\");\\n  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\\n  //        \\\"too many codes\\\");\\n  //Tracev((stderr, \\\"\\\\nbl counts: \\\"));\\n  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\\n  send_bits(s, dcodes - 1,   5);\\n  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */\\n  for (rank = 0; rank < blcodes; rank++) {\\n    //Tracev((stderr, \\\"\\\\nbl code %2d \\\", bl_order[rank]));\\n    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\\n  }\\n  //Tracev((stderr, \\\"\\\\nbl tree: sent %ld\\\", s->bits_sent));\\n\\n  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\\n  //Tracev((stderr, \\\"\\\\nlit tree: sent %ld\\\", s->bits_sent));\\n\\n  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\\n  //Tracev((stderr, \\\"\\\\ndist tree: sent %ld\\\", s->bits_sent));\\n};\\n\\n\\n/* ===========================================================================\\n * Check if the data type is TEXT or BINARY, using the following algorithm:\\n * - TEXT if the two conditions below are satisfied:\\n *    a) There are no non-portable control characters belonging to the\\n *       \\\"block list\\\" (0..6, 14..25, 28..31).\\n *    b) There is at least one printable character belonging to the\\n *       \\\"allow list\\\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\\n * - BINARY otherwise.\\n * - The following partially-portable control characters form a\\n *   \\\"gray list\\\" that is ignored in this detection algorithm:\\n *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\\n * IN assertion: the fields Freq of dyn_ltree are set.\\n */\\nconst detect_data_type = (s) => {\\n  /* block_mask is the bit mask of block-listed bytes\\n   * set bits 0..6, 14..25, and 28..31\\n   * 0xf3ffc07f = binary 11110011111111111100000001111111\\n   */\\n  let block_mask = 0xf3ffc07f;\\n  let n;\\n\\n  /* Check for non-textual (\\\"block-listed\\\") bytes. */\\n  for (n = 0; n <= 31; n++, block_mask >>>= 1) {\\n    if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\\n      return Z_BINARY;\\n    }\\n  }\\n\\n  /* Check for textual (\\\"allow-listed\\\") bytes. */\\n  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\\n      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\\n    return Z_TEXT;\\n  }\\n  for (n = 32; n < LITERALS; n++) {\\n    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\\n      return Z_TEXT;\\n    }\\n  }\\n\\n  /* There are no \\\"block-listed\\\" or \\\"allow-listed\\\" bytes:\\n   * this stream either is empty or has tolerated (\\\"gray-listed\\\") bytes only.\\n   */\\n  return Z_BINARY;\\n};\\n\\n\\nlet static_init_done = false;\\n\\n/* ===========================================================================\\n * Initialize the tree data structures for a new zlib stream.\\n */\\nconst _tr_init = (s) =>\\n{\\n\\n  if (!static_init_done) {\\n    tr_static_init();\\n    static_init_done = true;\\n  }\\n\\n  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);\\n  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);\\n  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\\n\\n  s.bi_buf = 0;\\n  s.bi_valid = 0;\\n\\n  /* Initialize the first block of the first file: */\\n  init_block(s);\\n};\\n\\n\\n/* ===========================================================================\\n * Send a stored block\\n */\\nconst _tr_stored_block = (s, buf, stored_len, last) => {\\n//DeflateState *s;\\n//charf *buf;       /* input block */\\n//ulg stored_len;   /* length of input block */\\n//int last;         /* one if this is the last block for a file */\\n\\n  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */\\n  bi_windup(s);        /* align on byte boundary */\\n  put_short(s, stored_len);\\n  put_short(s, ~stored_len);\\n  if (stored_len) {\\n    s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\\n  }\\n  s.pending += stored_len;\\n};\\n\\n\\n/* ===========================================================================\\n * Send one empty static block to give enough lookahead for inflate.\\n * This takes 10 bits, of which 7 may remain in the bit buffer.\\n */\\nconst _tr_align = (s) => {\\n  send_bits(s, STATIC_TREES << 1, 3);\\n  send_code(s, END_BLOCK, static_ltree);\\n  bi_flush(s);\\n};\\n\\n\\n/* ===========================================================================\\n * Determine the best encoding for the current block: dynamic trees, static\\n * trees or store, and write out the encoded block.\\n */\\nconst _tr_flush_block = (s, buf, stored_len, last) => {\\n//DeflateState *s;\\n//charf *buf;       /* input block, or NULL if too old */\\n//ulg stored_len;   /* length of input block */\\n//int last;         /* one if this is the last block for a file */\\n\\n  let opt_lenb, static_lenb;  /* opt_len and static_len in bytes */\\n  let max_blindex = 0;        /* index of last bit length code of non zero freq */\\n\\n  /* Build the Huffman trees unless a stored block is forced */\\n  if (s.level > 0) {\\n\\n    /* Check if the file is binary or text */\\n    if (s.strm.data_type === Z_UNKNOWN) {\\n      s.strm.data_type = detect_data_type(s);\\n    }\\n\\n    /* Construct the literal and distance trees */\\n    build_tree(s, s.l_desc);\\n    // Tracev((stderr, \\\"\\\\nlit data: dyn %ld, stat %ld\\\", s->opt_len,\\n    //        s->static_len));\\n\\n    build_tree(s, s.d_desc);\\n    // Tracev((stderr, \\\"\\\\ndist data: dyn %ld, stat %ld\\\", s->opt_len,\\n    //        s->static_len));\\n    /* At this point, opt_len and static_len are the total bit lengths of\\n     * the compressed block data, excluding the tree representations.\\n     */\\n\\n    /* Build the bit length tree for the above two trees, and get the index\\n     * in bl_order of the last bit length code to send.\\n     */\\n    max_blindex = build_bl_tree(s);\\n\\n    /* Determine the best encoding. Compute the block lengths in bytes. */\\n    opt_lenb = (s.opt_len + 3 + 7) >>> 3;\\n    static_lenb = (s.static_len + 3 + 7) >>> 3;\\n\\n    // Tracev((stderr, \\\"\\\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \\\",\\n    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\\n    //        s->sym_next / 3));\\n\\n    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\\n\\n  } else {\\n    // Assert(buf != (char*)0, \\\"lost buf\\\");\\n    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\\n  }\\n\\n  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\\n    /* 4: two words for the lengths */\\n\\n    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\\n     * Otherwise we can't have processed more than WSIZE input bytes since\\n     * the last block flush, because compression would have been\\n     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\\n     * transform a block into a stored block.\\n     */\\n    _tr_stored_block(s, buf, stored_len, last);\\n\\n  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\\n\\n    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\\n    compress_block(s, static_ltree, static_dtree);\\n\\n  } else {\\n    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\\n    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\\n    compress_block(s, s.dyn_ltree, s.dyn_dtree);\\n  }\\n  // Assert (s->compressed_len == s->bits_sent, \\\"bad compressed size\\\");\\n  /* The above check is made mod 2^32, for files larger than 512 MB\\n   * and uLong implemented on 32 bits.\\n   */\\n  init_block(s);\\n\\n  if (last) {\\n    bi_windup(s);\\n  }\\n  // Tracev((stderr,\\\"\\\\ncomprlen %lu(%lu) \\\", s->compressed_len>>3,\\n  //       s->compressed_len-7*last));\\n};\\n\\n/* ===========================================================================\\n * Save the match info and tally the frequency counts. Return true if\\n * the current block must be flushed.\\n */\\nconst _tr_tally = (s, dist, lc) => {\\n//    deflate_state *s;\\n//    unsigned dist;  /* distance of matched string */\\n//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */\\n\\n  s.pending_buf[s.sym_buf + s.sym_next++] = dist;\\n  s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\\n  s.pending_buf[s.sym_buf + s.sym_next++] = lc;\\n  if (dist === 0) {\\n    /* lc is the unmatched char */\\n    s.dyn_ltree[lc * 2]/*.Freq*/++;\\n  } else {\\n    s.matches++;\\n    /* Here, lc is the match length - MIN_MATCH */\\n    dist--;             /* dist = match distance - 1 */\\n    //Assert((ush)dist < (ush)MAX_DIST(s) &&\\n    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\\n    //       (ush)d_code(dist) < (ush)D_CODES,  \\\"_tr_tally: bad match\\\");\\n\\n    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\\n    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\\n  }\\n\\n  return (s.sym_next === s.sym_end);\\n};\\n\\nmodule.exports._tr_init  = _tr_init;\\nmodule.exports._tr_stored_block = _tr_stored_block;\\nmodule.exports._tr_flush_block  = _tr_flush_block;\\nmodule.exports._tr_tally = _tr_tally;\\nmodule.exports._tr_align = _tr_align;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/trees.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/pako/lib/zlib/zstream.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/pako/lib/zlib/zstream.js ***!\n  \\***********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\\n//\\n// This software is provided 'as-is', without any express or implied\\n// warranty. In no event will the authors be held liable for any damages\\n// arising from the use of this software.\\n//\\n// Permission is granted to anyone to use this software for any purpose,\\n// including commercial applications, and to alter it and redistribute it\\n// freely, subject to the following restrictions:\\n//\\n// 1. The origin of this software must not be misrepresented; you must not\\n//   claim that you wrote the original software. If you use this software\\n//   in a product, an acknowledgment in the product documentation would be\\n//   appreciated but is not required.\\n// 2. Altered source versions must be plainly marked as such, and must not be\\n//   misrepresented as being the original software.\\n// 3. This notice may not be removed or altered from any source distribution.\\n\\nfunction ZStream() {\\n  /* next input byte */\\n  this.input = null; // JS specific, because we have no pointers\\n  this.next_in = 0;\\n  /* number of bytes available at input */\\n  this.avail_in = 0;\\n  /* total number of input bytes read so far */\\n  this.total_in = 0;\\n  /* next output byte should be put there */\\n  this.output = null; // JS specific, because we have no pointers\\n  this.next_out = 0;\\n  /* remaining free space at output */\\n  this.avail_out = 0;\\n  /* total number of bytes output so far */\\n  this.total_out = 0;\\n  /* last error message, NULL if no error */\\n  this.msg = ''/*Z_NULL*/;\\n  /* not visible by applications */\\n  this.state = null;\\n  /* best guess about the data type: binary or text */\\n  this.data_type = 2/*Z_UNKNOWN*/;\\n  /* adler32 value of the uncompressed data */\\n  this.adler = 0;\\n}\\n\\nmodule.exports = ZStream;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/pako/lib/zlib/zstream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/process/browser.js\":\n/*!*****************************************!*\\\n  !*** ./node_modules/process/browser.js ***!\n  \\*****************************************/\n/***/ ((module) => {\n\neval(\"// 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://@dannadori/voice-changer-client-js/./node_modules/process/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/minimal.js\":\n/*!********************************************!*\\\n  !*** ./node_modules/protobufjs/minimal.js ***!\n  \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// minimal library entry point.\\n\\n\\nmodule.exports = __webpack_require__(/*! ./src/index-minimal */ \\\"./node_modules/protobufjs/src/index-minimal.js\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/minimal.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/index-minimal.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/protobufjs/src/index-minimal.js ***!\n  \\******************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nvar protobuf = exports;\\n\\n/**\\n * Build type, one of `\\\"full\\\"`, `\\\"light\\\"` or `\\\"minimal\\\"`.\\n * @name build\\n * @type {string}\\n * @const\\n */\\nprotobuf.build = \\\"minimal\\\";\\n\\n// Serialization\\nprotobuf.Writer       = __webpack_require__(/*! ./writer */ \\\"./node_modules/protobufjs/src/writer.js\\\");\\nprotobuf.BufferWriter = __webpack_require__(/*! ./writer_buffer */ \\\"./node_modules/protobufjs/src/writer_buffer.js\\\");\\nprotobuf.Reader       = __webpack_require__(/*! ./reader */ \\\"./node_modules/protobufjs/src/reader.js\\\");\\nprotobuf.BufferReader = __webpack_require__(/*! ./reader_buffer */ \\\"./node_modules/protobufjs/src/reader_buffer.js\\\");\\n\\n// Utility\\nprotobuf.util         = __webpack_require__(/*! ./util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\nprotobuf.rpc          = __webpack_require__(/*! ./rpc */ \\\"./node_modules/protobufjs/src/rpc.js\\\");\\nprotobuf.roots        = __webpack_require__(/*! ./roots */ \\\"./node_modules/protobufjs/src/roots.js\\\");\\nprotobuf.configure    = configure;\\n\\n/* istanbul ignore next */\\n/**\\n * Reconfigures the library according to the environment.\\n * @returns {undefined}\\n */\\nfunction configure() {\\n    protobuf.util._configure();\\n    protobuf.Writer._configure(protobuf.BufferWriter);\\n    protobuf.Reader._configure(protobuf.BufferReader);\\n}\\n\\n// Set up buffer utility according to the environment\\nconfigure();\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/index-minimal.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/reader.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/protobufjs/src/reader.js ***!\n  \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = Reader;\\n\\nvar util      = __webpack_require__(/*! ./util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\nvar BufferReader; // cyclic\\n\\nvar LongBits  = util.LongBits,\\n    utf8      = util.utf8;\\n\\n/* istanbul ignore next */\\nfunction indexOutOfRange(reader, writeLength) {\\n    return RangeError(\\\"index out of range: \\\" + reader.pos + \\\" + \\\" + (writeLength || 1) + \\\" > \\\" + reader.len);\\n}\\n\\n/**\\n * Constructs a new reader instance using the specified buffer.\\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\\n * @constructor\\n * @param {Uint8Array} buffer Buffer to read from\\n */\\nfunction Reader(buffer) {\\n\\n    /**\\n     * Read buffer.\\n     * @type {Uint8Array}\\n     */\\n    this.buf = buffer;\\n\\n    /**\\n     * Read buffer position.\\n     * @type {number}\\n     */\\n    this.pos = 0;\\n\\n    /**\\n     * Read buffer length.\\n     * @type {number}\\n     */\\n    this.len = buffer.length;\\n}\\n\\nvar create_array = typeof Uint8Array !== \\\"undefined\\\"\\n    ? function create_typed_array(buffer) {\\n        if (buffer instanceof Uint8Array || Array.isArray(buffer))\\n            return new Reader(buffer);\\n        throw Error(\\\"illegal buffer\\\");\\n    }\\n    /* istanbul ignore next */\\n    : function create_array(buffer) {\\n        if (Array.isArray(buffer))\\n            return new Reader(buffer);\\n        throw Error(\\\"illegal buffer\\\");\\n    };\\n\\nvar create = function create() {\\n    return util.Buffer\\n        ? function create_buffer_setup(buffer) {\\n            return (Reader.create = function create_buffer(buffer) {\\n                return util.Buffer.isBuffer(buffer)\\n                    ? new BufferReader(buffer)\\n                    /* istanbul ignore next */\\n                    : create_array(buffer);\\n            })(buffer);\\n        }\\n        /* istanbul ignore next */\\n        : create_array;\\n};\\n\\n/**\\n * Creates a new reader using the specified buffer.\\n * @function\\n * @param {Uint8Array|Buffer} buffer Buffer to read from\\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\\n * @throws {Error} If `buffer` is not a valid buffer\\n */\\nReader.create = create();\\n\\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\\n\\n/**\\n * Reads a varint as an unsigned 32 bit value.\\n * @function\\n * @returns {number} Value read\\n */\\nReader.prototype.uint32 = (function read_uint32_setup() {\\n    var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\\n    return function read_uint32() {\\n        value = (         this.buf[this.pos] & 127       ) >>> 0; if (this.buf[this.pos++] < 128) return value;\\n        value = (value | (this.buf[this.pos] & 127) <<  7) >>> 0; if (this.buf[this.pos++] < 128) return value;\\n        value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\\n        value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\\n        value = (value | (this.buf[this.pos] &  15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\\n\\n        /* istanbul ignore if */\\n        if ((this.pos += 5) > this.len) {\\n            this.pos = this.len;\\n            throw indexOutOfRange(this, 10);\\n        }\\n        return value;\\n    };\\n})();\\n\\n/**\\n * Reads a varint as a signed 32 bit value.\\n * @returns {number} Value read\\n */\\nReader.prototype.int32 = function read_int32() {\\n    return this.uint32() | 0;\\n};\\n\\n/**\\n * Reads a zig-zag encoded varint as a signed 32 bit value.\\n * @returns {number} Value read\\n */\\nReader.prototype.sint32 = function read_sint32() {\\n    var value = this.uint32();\\n    return value >>> 1 ^ -(value & 1) | 0;\\n};\\n\\n/* eslint-disable no-invalid-this */\\n\\nfunction readLongVarint() {\\n    // tends to deopt with local vars for octet etc.\\n    var bits = new LongBits(0, 0);\\n    var i = 0;\\n    if (this.len - this.pos > 4) { // fast route (lo)\\n        for (; i < 4; ++i) {\\n            // 1st..4th\\n            bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\\n            if (this.buf[this.pos++] < 128)\\n                return bits;\\n        }\\n        // 5th\\n        bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\\n        bits.hi = (bits.hi | (this.buf[this.pos] & 127) >>  4) >>> 0;\\n        if (this.buf[this.pos++] < 128)\\n            return bits;\\n        i = 0;\\n    } else {\\n        for (; i < 3; ++i) {\\n            /* istanbul ignore if */\\n            if (this.pos >= this.len)\\n                throw indexOutOfRange(this);\\n            // 1st..3th\\n            bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\\n            if (this.buf[this.pos++] < 128)\\n                return bits;\\n        }\\n        // 4th\\n        bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\\n        return bits;\\n    }\\n    if (this.len - this.pos > 4) { // fast route (hi)\\n        for (; i < 5; ++i) {\\n            // 6th..10th\\n            bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\\n            if (this.buf[this.pos++] < 128)\\n                return bits;\\n        }\\n    } else {\\n        for (; i < 5; ++i) {\\n            /* istanbul ignore if */\\n            if (this.pos >= this.len)\\n                throw indexOutOfRange(this);\\n            // 6th..10th\\n            bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\\n            if (this.buf[this.pos++] < 128)\\n                return bits;\\n        }\\n    }\\n    /* istanbul ignore next */\\n    throw Error(\\\"invalid varint encoding\\\");\\n}\\n\\n/* eslint-enable no-invalid-this */\\n\\n/**\\n * Reads a varint as a signed 64 bit value.\\n * @name Reader#int64\\n * @function\\n * @returns {Long} Value read\\n */\\n\\n/**\\n * Reads a varint as an unsigned 64 bit value.\\n * @name Reader#uint64\\n * @function\\n * @returns {Long} Value read\\n */\\n\\n/**\\n * Reads a zig-zag encoded varint as a signed 64 bit value.\\n * @name Reader#sint64\\n * @function\\n * @returns {Long} Value read\\n */\\n\\n/**\\n * Reads a varint as a boolean.\\n * @returns {boolean} Value read\\n */\\nReader.prototype.bool = function read_bool() {\\n    return this.uint32() !== 0;\\n};\\n\\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\\n    return (buf[end - 4]\\n          | buf[end - 3] << 8\\n          | buf[end - 2] << 16\\n          | buf[end - 1] << 24) >>> 0;\\n}\\n\\n/**\\n * Reads fixed 32 bits as an unsigned 32 bit integer.\\n * @returns {number} Value read\\n */\\nReader.prototype.fixed32 = function read_fixed32() {\\n\\n    /* istanbul ignore if */\\n    if (this.pos + 4 > this.len)\\n        throw indexOutOfRange(this, 4);\\n\\n    return readFixed32_end(this.buf, this.pos += 4);\\n};\\n\\n/**\\n * Reads fixed 32 bits as a signed 32 bit integer.\\n * @returns {number} Value read\\n */\\nReader.prototype.sfixed32 = function read_sfixed32() {\\n\\n    /* istanbul ignore if */\\n    if (this.pos + 4 > this.len)\\n        throw indexOutOfRange(this, 4);\\n\\n    return readFixed32_end(this.buf, this.pos += 4) | 0;\\n};\\n\\n/* eslint-disable no-invalid-this */\\n\\nfunction readFixed64(/* this: Reader */) {\\n\\n    /* istanbul ignore if */\\n    if (this.pos + 8 > this.len)\\n        throw indexOutOfRange(this, 8);\\n\\n    return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\\n}\\n\\n/* eslint-enable no-invalid-this */\\n\\n/**\\n * Reads fixed 64 bits.\\n * @name Reader#fixed64\\n * @function\\n * @returns {Long} Value read\\n */\\n\\n/**\\n * Reads zig-zag encoded fixed 64 bits.\\n * @name Reader#sfixed64\\n * @function\\n * @returns {Long} Value read\\n */\\n\\n/**\\n * Reads a float (32 bit) as a number.\\n * @function\\n * @returns {number} Value read\\n */\\nReader.prototype.float = function read_float() {\\n\\n    /* istanbul ignore if */\\n    if (this.pos + 4 > this.len)\\n        throw indexOutOfRange(this, 4);\\n\\n    var value = util.float.readFloatLE(this.buf, this.pos);\\n    this.pos += 4;\\n    return value;\\n};\\n\\n/**\\n * Reads a double (64 bit float) as a number.\\n * @function\\n * @returns {number} Value read\\n */\\nReader.prototype.double = function read_double() {\\n\\n    /* istanbul ignore if */\\n    if (this.pos + 8 > this.len)\\n        throw indexOutOfRange(this, 4);\\n\\n    var value = util.float.readDoubleLE(this.buf, this.pos);\\n    this.pos += 8;\\n    return value;\\n};\\n\\n/**\\n * Reads a sequence of bytes preceeded by its length as a varint.\\n * @returns {Uint8Array} Value read\\n */\\nReader.prototype.bytes = function read_bytes() {\\n    var length = this.uint32(),\\n        start  = this.pos,\\n        end    = this.pos + length;\\n\\n    /* istanbul ignore if */\\n    if (end > this.len)\\n        throw indexOutOfRange(this, length);\\n\\n    this.pos += length;\\n    if (Array.isArray(this.buf)) // plain array\\n        return this.buf.slice(start, end);\\n    return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\\n        ? new this.buf.constructor(0)\\n        : this._slice.call(this.buf, start, end);\\n};\\n\\n/**\\n * Reads a string preceeded by its byte length as a varint.\\n * @returns {string} Value read\\n */\\nReader.prototype.string = function read_string() {\\n    var bytes = this.bytes();\\n    return utf8.read(bytes, 0, bytes.length);\\n};\\n\\n/**\\n * Skips the specified number of bytes if specified, otherwise skips a varint.\\n * @param {number} [length] Length if known, otherwise a varint is assumed\\n * @returns {Reader} `this`\\n */\\nReader.prototype.skip = function skip(length) {\\n    if (typeof length === \\\"number\\\") {\\n        /* istanbul ignore if */\\n        if (this.pos + length > this.len)\\n            throw indexOutOfRange(this, length);\\n        this.pos += length;\\n    } else {\\n        do {\\n            /* istanbul ignore if */\\n            if (this.pos >= this.len)\\n                throw indexOutOfRange(this);\\n        } while (this.buf[this.pos++] & 128);\\n    }\\n    return this;\\n};\\n\\n/**\\n * Skips the next element of the specified wire type.\\n * @param {number} wireType Wire type received\\n * @returns {Reader} `this`\\n */\\nReader.prototype.skipType = function(wireType) {\\n    switch (wireType) {\\n        case 0:\\n            this.skip();\\n            break;\\n        case 1:\\n            this.skip(8);\\n            break;\\n        case 2:\\n            this.skip(this.uint32());\\n            break;\\n        case 3:\\n            while ((wireType = this.uint32() & 7) !== 4) {\\n                this.skipType(wireType);\\n            }\\n            break;\\n        case 5:\\n            this.skip(4);\\n            break;\\n\\n        /* istanbul ignore next */\\n        default:\\n            throw Error(\\\"invalid wire type \\\" + wireType + \\\" at offset \\\" + this.pos);\\n    }\\n    return this;\\n};\\n\\nReader._configure = function(BufferReader_) {\\n    BufferReader = BufferReader_;\\n    Reader.create = create();\\n    BufferReader._configure();\\n\\n    var fn = util.Long ? \\\"toLong\\\" : /* istanbul ignore next */ \\\"toNumber\\\";\\n    util.merge(Reader.prototype, {\\n\\n        int64: function read_int64() {\\n            return readLongVarint.call(this)[fn](false);\\n        },\\n\\n        uint64: function read_uint64() {\\n            return readLongVarint.call(this)[fn](true);\\n        },\\n\\n        sint64: function read_sint64() {\\n            return readLongVarint.call(this).zzDecode()[fn](false);\\n        },\\n\\n        fixed64: function read_fixed64() {\\n            return readFixed64.call(this)[fn](true);\\n        },\\n\\n        sfixed64: function read_sfixed64() {\\n            return readFixed64.call(this)[fn](false);\\n        }\\n\\n    });\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/reader.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/reader_buffer.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/protobufjs/src/reader_buffer.js ***!\n  \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = BufferReader;\\n\\n// extends Reader\\nvar Reader = __webpack_require__(/*! ./reader */ \\\"./node_modules/protobufjs/src/reader.js\\\");\\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\\n\\nvar util = __webpack_require__(/*! ./util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\n/**\\n * Constructs a new buffer reader instance.\\n * @classdesc Wire format reader using node buffers.\\n * @extends Reader\\n * @constructor\\n * @param {Buffer} buffer Buffer to read from\\n */\\nfunction BufferReader(buffer) {\\n    Reader.call(this, buffer);\\n\\n    /**\\n     * Read buffer.\\n     * @name BufferReader#buf\\n     * @type {Buffer}\\n     */\\n}\\n\\nBufferReader._configure = function () {\\n    /* istanbul ignore else */\\n    if (util.Buffer)\\n        BufferReader.prototype._slice = util.Buffer.prototype.slice;\\n};\\n\\n\\n/**\\n * @override\\n */\\nBufferReader.prototype.string = function read_string_buffer() {\\n    var len = this.uint32(); // modifies pos\\n    return this.buf.utf8Slice\\n        ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\\n        : this.buf.toString(\\\"utf-8\\\", this.pos, this.pos = Math.min(this.pos + len, this.len));\\n};\\n\\n/**\\n * Reads a sequence of bytes preceeded by its length as a varint.\\n * @name BufferReader#bytes\\n * @function\\n * @returns {Buffer} Value read\\n */\\n\\nBufferReader._configure();\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/reader_buffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/roots.js\":\n/*!**********************************************!*\\\n  !*** ./node_modules/protobufjs/src/roots.js ***!\n  \\**********************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = {};\\n\\n/**\\n * Named roots.\\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\\n * Can also be used manually to make roots available accross modules.\\n * @name roots\\n * @type {Object.<string,Root>}\\n * @example\\n * // pbjs -r myroot -o compiled.js ...\\n *\\n * // in another module:\\n * require(\\\"./compiled.js\\\");\\n *\\n * // in any subsequent module:\\n * var root = protobuf.roots[\\\"myroot\\\"];\\n */\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/roots.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/rpc.js\":\n/*!********************************************!*\\\n  !*** ./node_modules/protobufjs/src/rpc.js ***!\n  \\********************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n/**\\n * Streaming RPC helpers.\\n * @namespace\\n */\\nvar rpc = exports;\\n\\n/**\\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\\n * @typedef RPCImpl\\n * @type {function}\\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\\n * @param {Uint8Array} requestData Request data\\n * @param {RPCImplCallback} callback Callback function\\n * @returns {undefined}\\n * @example\\n * function rpcImpl(method, requestData, callback) {\\n *     if (protobuf.util.lcFirst(method.name) !== \\\"myMethod\\\") // compatible with static code\\n *         throw Error(\\\"no such method\\\");\\n *     asynchronouslyObtainAResponse(requestData, function(err, responseData) {\\n *         callback(err, responseData);\\n *     });\\n * }\\n */\\n\\n/**\\n * Node-style callback as used by {@link RPCImpl}.\\n * @typedef RPCImplCallback\\n * @type {function}\\n * @param {Error|null} error Error, if any, otherwise `null`\\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\\n * @returns {undefined}\\n */\\n\\nrpc.Service = __webpack_require__(/*! ./rpc/service */ \\\"./node_modules/protobufjs/src/rpc/service.js\\\");\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/rpc.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/rpc/service.js\":\n/*!****************************************************!*\\\n  !*** ./node_modules/protobufjs/src/rpc/service.js ***!\n  \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = Service;\\n\\nvar util = __webpack_require__(/*! ../util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\n// Extends EventEmitter\\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\\n\\n/**\\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\\n *\\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\\n * @typedef rpc.ServiceMethodCallback\\n * @template TRes extends Message<TRes>\\n * @type {function}\\n * @param {Error|null} error Error, if any\\n * @param {TRes} [response] Response message\\n * @returns {undefined}\\n */\\n\\n/**\\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\\n * @typedef rpc.ServiceMethod\\n * @template TReq extends Message<TReq>\\n * @template TRes extends Message<TRes>\\n * @type {function}\\n * @param {TReq|Properties<TReq>} request Request message or plain object\\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\\n */\\n\\n/**\\n * Constructs a new RPC service instance.\\n * @classdesc An RPC service as returned by {@link Service#create}.\\n * @exports rpc.Service\\n * @extends util.EventEmitter\\n * @constructor\\n * @param {RPCImpl} rpcImpl RPC implementation\\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\\n */\\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\\n\\n    if (typeof rpcImpl !== \\\"function\\\")\\n        throw TypeError(\\\"rpcImpl must be a function\\\");\\n\\n    util.EventEmitter.call(this);\\n\\n    /**\\n     * RPC implementation. Becomes `null` once the service is ended.\\n     * @type {RPCImpl|null}\\n     */\\n    this.rpcImpl = rpcImpl;\\n\\n    /**\\n     * Whether requests are length-delimited.\\n     * @type {boolean}\\n     */\\n    this.requestDelimited = Boolean(requestDelimited);\\n\\n    /**\\n     * Whether responses are length-delimited.\\n     * @type {boolean}\\n     */\\n    this.responseDelimited = Boolean(responseDelimited);\\n}\\n\\n/**\\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\\n * @param {Constructor<TReq>} requestCtor Request constructor\\n * @param {Constructor<TRes>} responseCtor Response constructor\\n * @param {TReq|Properties<TReq>} request Request message or plain object\\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\\n * @returns {undefined}\\n * @template TReq extends Message<TReq>\\n * @template TRes extends Message<TRes>\\n */\\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\\n\\n    if (!request)\\n        throw TypeError(\\\"request must be specified\\\");\\n\\n    var self = this;\\n    if (!callback)\\n        return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\\n\\n    if (!self.rpcImpl) {\\n        setTimeout(function() { callback(Error(\\\"already ended\\\")); }, 0);\\n        return undefined;\\n    }\\n\\n    try {\\n        return self.rpcImpl(\\n            method,\\n            requestCtor[self.requestDelimited ? \\\"encodeDelimited\\\" : \\\"encode\\\"](request).finish(),\\n            function rpcCallback(err, response) {\\n\\n                if (err) {\\n                    self.emit(\\\"error\\\", err, method);\\n                    return callback(err);\\n                }\\n\\n                if (response === null) {\\n                    self.end(/* endedByRPC */ true);\\n                    return undefined;\\n                }\\n\\n                if (!(response instanceof responseCtor)) {\\n                    try {\\n                        response = responseCtor[self.responseDelimited ? \\\"decodeDelimited\\\" : \\\"decode\\\"](response);\\n                    } catch (err) {\\n                        self.emit(\\\"error\\\", err, method);\\n                        return callback(err);\\n                    }\\n                }\\n\\n                self.emit(\\\"data\\\", response, method);\\n                return callback(null, response);\\n            }\\n        );\\n    } catch (err) {\\n        self.emit(\\\"error\\\", err, method);\\n        setTimeout(function() { callback(err); }, 0);\\n        return undefined;\\n    }\\n};\\n\\n/**\\n * Ends this service and emits the `end` event.\\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\\n * @returns {rpc.Service} `this`\\n */\\nService.prototype.end = function end(endedByRPC) {\\n    if (this.rpcImpl) {\\n        if (!endedByRPC) // signal end to rpcImpl\\n            this.rpcImpl(null, null, null);\\n        this.rpcImpl = null;\\n        this.emit(\\\"end\\\").off();\\n    }\\n    return this;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/rpc/service.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/util/longbits.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/protobufjs/src/util/longbits.js ***!\n  \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = LongBits;\\n\\nvar util = __webpack_require__(/*! ../util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\n/**\\n * Constructs new long bits.\\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\\n * @memberof util\\n * @constructor\\n * @param {number} lo Low 32 bits, unsigned\\n * @param {number} hi High 32 bits, unsigned\\n */\\nfunction LongBits(lo, hi) {\\n\\n    // note that the casts below are theoretically unnecessary as of today, but older statically\\n    // generated converter code might still call the ctor with signed 32bits. kept for compat.\\n\\n    /**\\n     * Low bits.\\n     * @type {number}\\n     */\\n    this.lo = lo >>> 0;\\n\\n    /**\\n     * High bits.\\n     * @type {number}\\n     */\\n    this.hi = hi >>> 0;\\n}\\n\\n/**\\n * Zero bits.\\n * @memberof util.LongBits\\n * @type {util.LongBits}\\n */\\nvar zero = LongBits.zero = new LongBits(0, 0);\\n\\nzero.toNumber = function() { return 0; };\\nzero.zzEncode = zero.zzDecode = function() { return this; };\\nzero.length = function() { return 1; };\\n\\n/**\\n * Zero hash.\\n * @memberof util.LongBits\\n * @type {string}\\n */\\nvar zeroHash = LongBits.zeroHash = \\\"\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\";\\n\\n/**\\n * Constructs new long bits from the specified number.\\n * @param {number} value Value\\n * @returns {util.LongBits} Instance\\n */\\nLongBits.fromNumber = function fromNumber(value) {\\n    if (value === 0)\\n        return zero;\\n    var sign = value < 0;\\n    if (sign)\\n        value = -value;\\n    var lo = value >>> 0,\\n        hi = (value - lo) / 4294967296 >>> 0;\\n    if (sign) {\\n        hi = ~hi >>> 0;\\n        lo = ~lo >>> 0;\\n        if (++lo > 4294967295) {\\n            lo = 0;\\n            if (++hi > 4294967295)\\n                hi = 0;\\n        }\\n    }\\n    return new LongBits(lo, hi);\\n};\\n\\n/**\\n * Constructs new long bits from a number, long or string.\\n * @param {Long|number|string} value Value\\n * @returns {util.LongBits} Instance\\n */\\nLongBits.from = function from(value) {\\n    if (typeof value === \\\"number\\\")\\n        return LongBits.fromNumber(value);\\n    if (util.isString(value)) {\\n        /* istanbul ignore else */\\n        if (util.Long)\\n            value = util.Long.fromString(value);\\n        else\\n            return LongBits.fromNumber(parseInt(value, 10));\\n    }\\n    return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\\n};\\n\\n/**\\n * Converts this long bits to a possibly unsafe JavaScript number.\\n * @param {boolean} [unsigned=false] Whether unsigned or not\\n * @returns {number} Possibly unsafe number\\n */\\nLongBits.prototype.toNumber = function toNumber(unsigned) {\\n    if (!unsigned && this.hi >>> 31) {\\n        var lo = ~this.lo + 1 >>> 0,\\n            hi = ~this.hi     >>> 0;\\n        if (!lo)\\n            hi = hi + 1 >>> 0;\\n        return -(lo + hi * 4294967296);\\n    }\\n    return this.lo + this.hi * 4294967296;\\n};\\n\\n/**\\n * Converts this long bits to a long.\\n * @param {boolean} [unsigned=false] Whether unsigned or not\\n * @returns {Long} Long\\n */\\nLongBits.prototype.toLong = function toLong(unsigned) {\\n    return util.Long\\n        ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\\n        /* istanbul ignore next */\\n        : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\\n};\\n\\nvar charCodeAt = String.prototype.charCodeAt;\\n\\n/**\\n * Constructs new long bits from the specified 8 characters long hash.\\n * @param {string} hash Hash\\n * @returns {util.LongBits} Bits\\n */\\nLongBits.fromHash = function fromHash(hash) {\\n    if (hash === zeroHash)\\n        return zero;\\n    return new LongBits(\\n        ( charCodeAt.call(hash, 0)\\n        | charCodeAt.call(hash, 1) << 8\\n        | charCodeAt.call(hash, 2) << 16\\n        | charCodeAt.call(hash, 3) << 24) >>> 0\\n    ,\\n        ( charCodeAt.call(hash, 4)\\n        | charCodeAt.call(hash, 5) << 8\\n        | charCodeAt.call(hash, 6) << 16\\n        | charCodeAt.call(hash, 7) << 24) >>> 0\\n    );\\n};\\n\\n/**\\n * Converts this long bits to a 8 characters long hash.\\n * @returns {string} Hash\\n */\\nLongBits.prototype.toHash = function toHash() {\\n    return String.fromCharCode(\\n        this.lo        & 255,\\n        this.lo >>> 8  & 255,\\n        this.lo >>> 16 & 255,\\n        this.lo >>> 24      ,\\n        this.hi        & 255,\\n        this.hi >>> 8  & 255,\\n        this.hi >>> 16 & 255,\\n        this.hi >>> 24\\n    );\\n};\\n\\n/**\\n * Zig-zag encodes this long bits.\\n * @returns {util.LongBits} `this`\\n */\\nLongBits.prototype.zzEncode = function zzEncode() {\\n    var mask =   this.hi >> 31;\\n    this.hi  = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\\n    this.lo  = ( this.lo << 1                   ^ mask) >>> 0;\\n    return this;\\n};\\n\\n/**\\n * Zig-zag decodes this long bits.\\n * @returns {util.LongBits} `this`\\n */\\nLongBits.prototype.zzDecode = function zzDecode() {\\n    var mask = -(this.lo & 1);\\n    this.lo  = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\\n    this.hi  = ( this.hi >>> 1                  ^ mask) >>> 0;\\n    return this;\\n};\\n\\n/**\\n * Calculates the length of this longbits when encoded as a varint.\\n * @returns {number} Length\\n */\\nLongBits.prototype.length = function length() {\\n    var part0 =  this.lo,\\n        part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\\n        part2 =  this.hi >>> 24;\\n    return part2 === 0\\n         ? part1 === 0\\n           ? part0 < 16384\\n             ? part0 < 128 ? 1 : 2\\n             : part0 < 2097152 ? 3 : 4\\n           : part1 < 16384\\n             ? part1 < 128 ? 5 : 6\\n             : part1 < 2097152 ? 7 : 8\\n         : part2 < 128 ? 9 : 10;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/util/longbits.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/util/minimal.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/protobufjs/src/util/minimal.js ***!\n  \\*****************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\nvar util = exports;\\n\\n// used to return a Promise where callback is omitted\\nutil.asPromise = __webpack_require__(/*! @protobufjs/aspromise */ \\\"./node_modules/@protobufjs/aspromise/index.js\\\");\\n\\n// converts to / from base64 encoded strings\\nutil.base64 = __webpack_require__(/*! @protobufjs/base64 */ \\\"./node_modules/@protobufjs/base64/index.js\\\");\\n\\n// base class of rpc.Service\\nutil.EventEmitter = __webpack_require__(/*! @protobufjs/eventemitter */ \\\"./node_modules/@protobufjs/eventemitter/index.js\\\");\\n\\n// float handling accross browsers\\nutil.float = __webpack_require__(/*! @protobufjs/float */ \\\"./node_modules/@protobufjs/float/index.js\\\");\\n\\n// requires modules optionally and hides the call from bundlers\\nutil.inquire = __webpack_require__(/*! @protobufjs/inquire */ \\\"./node_modules/@protobufjs/inquire/index.js\\\");\\n\\n// converts to / from utf8 encoded strings\\nutil.utf8 = __webpack_require__(/*! @protobufjs/utf8 */ \\\"./node_modules/@protobufjs/utf8/index.js\\\");\\n\\n// provides a node-like buffer pool in the browser\\nutil.pool = __webpack_require__(/*! @protobufjs/pool */ \\\"./node_modules/@protobufjs/pool/index.js\\\");\\n\\n// utility to work with the low and high bits of a 64 bit value\\nutil.LongBits = __webpack_require__(/*! ./longbits */ \\\"./node_modules/protobufjs/src/util/longbits.js\\\");\\n\\n/**\\n * Whether running within node or not.\\n * @memberof util\\n * @type {boolean}\\n */\\nutil.isNode = Boolean(typeof __webpack_require__.g !== \\\"undefined\\\"\\n                   && __webpack_require__.g\\n                   && __webpack_require__.g.process\\n                   && __webpack_require__.g.process.versions\\n                   && __webpack_require__.g.process.versions.node);\\n\\n/**\\n * Global object reference.\\n * @memberof util\\n * @type {Object}\\n */\\nutil.global = util.isNode && __webpack_require__.g\\n           || typeof window !== \\\"undefined\\\" && window\\n           || typeof self   !== \\\"undefined\\\" && self\\n           || this; // eslint-disable-line no-invalid-this\\n\\n/**\\n * An immuable empty array.\\n * @memberof util\\n * @type {Array.<*>}\\n * @const\\n */\\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\\n\\n/**\\n * An immutable empty object.\\n * @type {Object}\\n * @const\\n */\\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\\n\\n/**\\n * Tests if the specified value is an integer.\\n * @function\\n * @param {*} value Value to test\\n * @returns {boolean} `true` if the value is an integer\\n */\\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\\n    return typeof value === \\\"number\\\" && isFinite(value) && Math.floor(value) === value;\\n};\\n\\n/**\\n * Tests if the specified value is a string.\\n * @param {*} value Value to test\\n * @returns {boolean} `true` if the value is a string\\n */\\nutil.isString = function isString(value) {\\n    return typeof value === \\\"string\\\" || value instanceof String;\\n};\\n\\n/**\\n * Tests if the specified value is a non-null object.\\n * @param {*} value Value to test\\n * @returns {boolean} `true` if the value is a non-null object\\n */\\nutil.isObject = function isObject(value) {\\n    return value && typeof value === \\\"object\\\";\\n};\\n\\n/**\\n * Checks if a property on a message is considered to be present.\\n * This is an alias of {@link util.isSet}.\\n * @function\\n * @param {Object} obj Plain object or message instance\\n * @param {string} prop Property name\\n * @returns {boolean} `true` if considered to be present, otherwise `false`\\n */\\nutil.isset =\\n\\n/**\\n * Checks if a property on a message is considered to be present.\\n * @param {Object} obj Plain object or message instance\\n * @param {string} prop Property name\\n * @returns {boolean} `true` if considered to be present, otherwise `false`\\n */\\nutil.isSet = function isSet(obj, prop) {\\n    var value = obj[prop];\\n    if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\\n        return typeof value !== \\\"object\\\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\\n    return false;\\n};\\n\\n/**\\n * Any compatible Buffer instance.\\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\\n * @interface Buffer\\n * @extends Uint8Array\\n */\\n\\n/**\\n * Node's Buffer class if available.\\n * @type {Constructor<Buffer>}\\n */\\nutil.Buffer = (function() {\\n    try {\\n        var Buffer = util.inquire(\\\"buffer\\\").Buffer;\\n        // refuse to use non-node buffers if not explicitly assigned (perf reasons):\\n        return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\\n    } catch (e) {\\n        /* istanbul ignore next */\\n        return null;\\n    }\\n})();\\n\\n// Internal alias of or polyfull for Buffer.from.\\nutil._Buffer_from = null;\\n\\n// Internal alias of or polyfill for Buffer.allocUnsafe.\\nutil._Buffer_allocUnsafe = null;\\n\\n/**\\n * Creates a new buffer of whatever type supported by the environment.\\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\\n * @returns {Uint8Array|Buffer} Buffer\\n */\\nutil.newBuffer = function newBuffer(sizeOrArray) {\\n    /* istanbul ignore next */\\n    return typeof sizeOrArray === \\\"number\\\"\\n        ? util.Buffer\\n            ? util._Buffer_allocUnsafe(sizeOrArray)\\n            : new util.Array(sizeOrArray)\\n        : util.Buffer\\n            ? util._Buffer_from(sizeOrArray)\\n            : typeof Uint8Array === \\\"undefined\\\"\\n                ? sizeOrArray\\n                : new Uint8Array(sizeOrArray);\\n};\\n\\n/**\\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\\n * @type {Constructor<Uint8Array>}\\n */\\nutil.Array = typeof Uint8Array !== \\\"undefined\\\" ? Uint8Array /* istanbul ignore next */ : Array;\\n\\n/**\\n * Any compatible Long instance.\\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\\n * @interface Long\\n * @property {number} low Low bits\\n * @property {number} high High bits\\n * @property {boolean} unsigned Whether unsigned or not\\n */\\n\\n/**\\n * Long.js's Long class if available.\\n * @type {Constructor<Long>}\\n */\\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\\n         || /* istanbul ignore next */ util.global.Long\\n         || util.inquire(\\\"long\\\");\\n\\n/**\\n * Regular expression used to verify 2 bit (`bool`) map keys.\\n * @type {RegExp}\\n * @const\\n */\\nutil.key2Re = /^true|false|0|1$/;\\n\\n/**\\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\\n * @type {RegExp}\\n * @const\\n */\\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\\n\\n/**\\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\\n * @type {RegExp}\\n * @const\\n */\\nutil.key64Re = /^(?:[\\\\\\\\x00-\\\\\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\\n\\n/**\\n * Converts a number or long to an 8 characters long hash string.\\n * @param {Long|number} value Value to convert\\n * @returns {string} Hash\\n */\\nutil.longToHash = function longToHash(value) {\\n    return value\\n        ? util.LongBits.from(value).toHash()\\n        : util.LongBits.zeroHash;\\n};\\n\\n/**\\n * Converts an 8 characters long hash string to a long or number.\\n * @param {string} hash Hash\\n * @param {boolean} [unsigned=false] Whether unsigned or not\\n * @returns {Long|number} Original value\\n */\\nutil.longFromHash = function longFromHash(hash, unsigned) {\\n    var bits = util.LongBits.fromHash(hash);\\n    if (util.Long)\\n        return util.Long.fromBits(bits.lo, bits.hi, unsigned);\\n    return bits.toNumber(Boolean(unsigned));\\n};\\n\\n/**\\n * Merges the properties of the source object into the destination object.\\n * @memberof util\\n * @param {Object.<string,*>} dst Destination object\\n * @param {Object.<string,*>} src Source object\\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\\n * @returns {Object.<string,*>} Destination object\\n */\\nfunction merge(dst, src, ifNotSet) { // used by converters\\n    for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\\n        if (dst[keys[i]] === undefined || !ifNotSet)\\n            dst[keys[i]] = src[keys[i]];\\n    return dst;\\n}\\n\\nutil.merge = merge;\\n\\n/**\\n * Converts the first character of a string to lower case.\\n * @param {string} str String to convert\\n * @returns {string} Converted string\\n */\\nutil.lcFirst = function lcFirst(str) {\\n    return str.charAt(0).toLowerCase() + str.substring(1);\\n};\\n\\n/**\\n * Creates a custom error constructor.\\n * @memberof util\\n * @param {string} name Error name\\n * @returns {Constructor<Error>} Custom error constructor\\n */\\nfunction newError(name) {\\n\\n    function CustomError(message, properties) {\\n\\n        if (!(this instanceof CustomError))\\n            return new CustomError(message, properties);\\n\\n        // Error.call(this, message);\\n        // ^ just returns a new error instance because the ctor can be called as a function\\n\\n        Object.defineProperty(this, \\\"message\\\", { get: function() { return message; } });\\n\\n        /* istanbul ignore next */\\n        if (Error.captureStackTrace) // node\\n            Error.captureStackTrace(this, CustomError);\\n        else\\n            Object.defineProperty(this, \\\"stack\\\", { value: new Error().stack || \\\"\\\" });\\n\\n        if (properties)\\n            merge(this, properties);\\n    }\\n\\n    (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\\n\\n    Object.defineProperty(CustomError.prototype, \\\"name\\\", { get: function() { return name; } });\\n\\n    CustomError.prototype.toString = function toString() {\\n        return this.name + \\\": \\\" + this.message;\\n    };\\n\\n    return CustomError;\\n}\\n\\nutil.newError = newError;\\n\\n/**\\n * Constructs a new protocol error.\\n * @classdesc Error subclass indicating a protocol specifc error.\\n * @memberof util\\n * @extends Error\\n * @template T extends Message<T>\\n * @constructor\\n * @param {string} message Error message\\n * @param {Object.<string,*>} [properties] Additional properties\\n * @example\\n * try {\\n *     MyMessage.decode(someBuffer); // throws if required fields are missing\\n * } catch (e) {\\n *     if (e instanceof ProtocolError && e.instance)\\n *         console.log(\\\"decoded so far: \\\" + JSON.stringify(e.instance));\\n * }\\n */\\nutil.ProtocolError = newError(\\\"ProtocolError\\\");\\n\\n/**\\n * So far decoded message instance.\\n * @name util.ProtocolError#instance\\n * @type {Message<T>}\\n */\\n\\n/**\\n * A OneOf getter as returned by {@link util.oneOfGetter}.\\n * @typedef OneOfGetter\\n * @type {function}\\n * @returns {string|undefined} Set field name, if any\\n */\\n\\n/**\\n * Builds a getter for a oneof's present field name.\\n * @param {string[]} fieldNames Field names\\n * @returns {OneOfGetter} Unbound getter\\n */\\nutil.oneOfGetter = function getOneOf(fieldNames) {\\n    var fieldMap = {};\\n    for (var i = 0; i < fieldNames.length; ++i)\\n        fieldMap[fieldNames[i]] = 1;\\n\\n    /**\\n     * @returns {string|undefined} Set field name, if any\\n     * @this Object\\n     * @ignore\\n     */\\n    return function() { // eslint-disable-line consistent-return\\n        for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\\n            if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\\n                return keys[i];\\n    };\\n};\\n\\n/**\\n * A OneOf setter as returned by {@link util.oneOfSetter}.\\n * @typedef OneOfSetter\\n * @type {function}\\n * @param {string|undefined} value Field name\\n * @returns {undefined}\\n */\\n\\n/**\\n * Builds a setter for a oneof's present field name.\\n * @param {string[]} fieldNames Field names\\n * @returns {OneOfSetter} Unbound setter\\n */\\nutil.oneOfSetter = function setOneOf(fieldNames) {\\n\\n    /**\\n     * @param {string} name Field name\\n     * @returns {undefined}\\n     * @this Object\\n     * @ignore\\n     */\\n    return function(name) {\\n        for (var i = 0; i < fieldNames.length; ++i)\\n            if (fieldNames[i] !== name)\\n                delete this[fieldNames[i]];\\n    };\\n};\\n\\n/**\\n * Default conversion options used for {@link Message#toJSON} implementations.\\n *\\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\\n *\\n * - Longs become strings\\n * - Enums become string keys\\n * - Bytes become base64 encoded strings\\n * - (Sub-)Messages become plain objects\\n * - Maps become plain objects with all string keys\\n * - Repeated fields become arrays\\n * - NaN and Infinity for float and double fields become strings\\n *\\n * @type {IConversionOptions}\\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\\n */\\nutil.toJSONOptions = {\\n    longs: String,\\n    enums: String,\\n    bytes: String,\\n    json: true\\n};\\n\\n// Sets up buffer utility according to the environment (called in index-minimal)\\nutil._configure = function() {\\n    var Buffer = util.Buffer;\\n    /* istanbul ignore if */\\n    if (!Buffer) {\\n        util._Buffer_from = util._Buffer_allocUnsafe = null;\\n        return;\\n    }\\n    // because node 4.x buffers are incompatible & immutable\\n    // see: https://github.com/dcodeIO/protobuf.js/pull/665\\n    util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\\n        /* istanbul ignore next */\\n        function Buffer_from(value, encoding) {\\n            return new Buffer(value, encoding);\\n        };\\n    util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\\n        /* istanbul ignore next */\\n        function Buffer_allocUnsafe(size) {\\n            return new Buffer(size);\\n        };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/util/minimal.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/writer.js\":\n/*!***********************************************!*\\\n  !*** ./node_modules/protobufjs/src/writer.js ***!\n  \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = Writer;\\n\\nvar util      = __webpack_require__(/*! ./util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\nvar BufferWriter; // cyclic\\n\\nvar LongBits  = util.LongBits,\\n    base64    = util.base64,\\n    utf8      = util.utf8;\\n\\n/**\\n * Constructs a new writer operation instance.\\n * @classdesc Scheduled writer operation.\\n * @constructor\\n * @param {function(*, Uint8Array, number)} fn Function to call\\n * @param {number} len Value byte length\\n * @param {*} val Value to write\\n * @ignore\\n */\\nfunction Op(fn, len, val) {\\n\\n    /**\\n     * Function to call.\\n     * @type {function(Uint8Array, number, *)}\\n     */\\n    this.fn = fn;\\n\\n    /**\\n     * Value byte length.\\n     * @type {number}\\n     */\\n    this.len = len;\\n\\n    /**\\n     * Next operation.\\n     * @type {Writer.Op|undefined}\\n     */\\n    this.next = undefined;\\n\\n    /**\\n     * Value to write.\\n     * @type {*}\\n     */\\n    this.val = val; // type varies\\n}\\n\\n/* istanbul ignore next */\\nfunction noop() {} // eslint-disable-line no-empty-function\\n\\n/**\\n * Constructs a new writer state instance.\\n * @classdesc Copied writer state.\\n * @memberof Writer\\n * @constructor\\n * @param {Writer} writer Writer to copy state from\\n * @ignore\\n */\\nfunction State(writer) {\\n\\n    /**\\n     * Current head.\\n     * @type {Writer.Op}\\n     */\\n    this.head = writer.head;\\n\\n    /**\\n     * Current tail.\\n     * @type {Writer.Op}\\n     */\\n    this.tail = writer.tail;\\n\\n    /**\\n     * Current buffer length.\\n     * @type {number}\\n     */\\n    this.len = writer.len;\\n\\n    /**\\n     * Next state.\\n     * @type {State|null}\\n     */\\n    this.next = writer.states;\\n}\\n\\n/**\\n * Constructs a new writer instance.\\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\\n * @constructor\\n */\\nfunction Writer() {\\n\\n    /**\\n     * Current length.\\n     * @type {number}\\n     */\\n    this.len = 0;\\n\\n    /**\\n     * Operations head.\\n     * @type {Object}\\n     */\\n    this.head = new Op(noop, 0, 0);\\n\\n    /**\\n     * Operations tail\\n     * @type {Object}\\n     */\\n    this.tail = this.head;\\n\\n    /**\\n     * Linked forked states.\\n     * @type {Object|null}\\n     */\\n    this.states = null;\\n\\n    // When a value is written, the writer calculates its byte length and puts it into a linked\\n    // list of operations to perform when finish() is called. This both allows us to allocate\\n    // buffers of the exact required size and reduces the amount of work we have to do compared\\n    // to first calculating over objects and then encoding over objects. In our case, the encoding\\n    // part is just a linked list walk calling operations with already prepared values.\\n}\\n\\nvar create = function create() {\\n    return util.Buffer\\n        ? function create_buffer_setup() {\\n            return (Writer.create = function create_buffer() {\\n                return new BufferWriter();\\n            })();\\n        }\\n        /* istanbul ignore next */\\n        : function create_array() {\\n            return new Writer();\\n        };\\n};\\n\\n/**\\n * Creates a new writer.\\n * @function\\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\\n */\\nWriter.create = create();\\n\\n/**\\n * Allocates a buffer of the specified size.\\n * @param {number} size Buffer size\\n * @returns {Uint8Array} Buffer\\n */\\nWriter.alloc = function alloc(size) {\\n    return new util.Array(size);\\n};\\n\\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\\n/* istanbul ignore else */\\nif (util.Array !== Array)\\n    Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\\n\\n/**\\n * Pushes a new operation to the queue.\\n * @param {function(Uint8Array, number, *)} fn Function to call\\n * @param {number} len Value byte length\\n * @param {number} val Value to write\\n * @returns {Writer} `this`\\n * @private\\n */\\nWriter.prototype._push = function push(fn, len, val) {\\n    this.tail = this.tail.next = new Op(fn, len, val);\\n    this.len += len;\\n    return this;\\n};\\n\\nfunction writeByte(val, buf, pos) {\\n    buf[pos] = val & 255;\\n}\\n\\nfunction writeVarint32(val, buf, pos) {\\n    while (val > 127) {\\n        buf[pos++] = val & 127 | 128;\\n        val >>>= 7;\\n    }\\n    buf[pos] = val;\\n}\\n\\n/**\\n * Constructs a new varint writer operation instance.\\n * @classdesc Scheduled varint writer operation.\\n * @extends Op\\n * @constructor\\n * @param {number} len Value byte length\\n * @param {number} val Value to write\\n * @ignore\\n */\\nfunction VarintOp(len, val) {\\n    this.len = len;\\n    this.next = undefined;\\n    this.val = val;\\n}\\n\\nVarintOp.prototype = Object.create(Op.prototype);\\nVarintOp.prototype.fn = writeVarint32;\\n\\n/**\\n * Writes an unsigned 32 bit value as a varint.\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.uint32 = function write_uint32(value) {\\n    // here, the call to this.push has been inlined and a varint specific Op subclass is used.\\n    // uint32 is by far the most frequently used operation and benefits significantly from this.\\n    this.len += (this.tail = this.tail.next = new VarintOp(\\n        (value = value >>> 0)\\n                < 128       ? 1\\n        : value < 16384     ? 2\\n        : value < 2097152   ? 3\\n        : value < 268435456 ? 4\\n        :                     5,\\n    value)).len;\\n    return this;\\n};\\n\\n/**\\n * Writes a signed 32 bit value as a varint.\\n * @function\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.int32 = function write_int32(value) {\\n    return value < 0\\n        ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\\n        : this.uint32(value);\\n};\\n\\n/**\\n * Writes a 32 bit value as a varint, zig-zag encoded.\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.sint32 = function write_sint32(value) {\\n    return this.uint32((value << 1 ^ value >> 31) >>> 0);\\n};\\n\\nfunction writeVarint64(val, buf, pos) {\\n    while (val.hi) {\\n        buf[pos++] = val.lo & 127 | 128;\\n        val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\\n        val.hi >>>= 7;\\n    }\\n    while (val.lo > 127) {\\n        buf[pos++] = val.lo & 127 | 128;\\n        val.lo = val.lo >>> 7;\\n    }\\n    buf[pos++] = val.lo;\\n}\\n\\n/**\\n * Writes an unsigned 64 bit value as a varint.\\n * @param {Long|number|string} value Value to write\\n * @returns {Writer} `this`\\n * @throws {TypeError} If `value` is a string and no long library is present.\\n */\\nWriter.prototype.uint64 = function write_uint64(value) {\\n    var bits = LongBits.from(value);\\n    return this._push(writeVarint64, bits.length(), bits);\\n};\\n\\n/**\\n * Writes a signed 64 bit value as a varint.\\n * @function\\n * @param {Long|number|string} value Value to write\\n * @returns {Writer} `this`\\n * @throws {TypeError} If `value` is a string and no long library is present.\\n */\\nWriter.prototype.int64 = Writer.prototype.uint64;\\n\\n/**\\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\\n * @param {Long|number|string} value Value to write\\n * @returns {Writer} `this`\\n * @throws {TypeError} If `value` is a string and no long library is present.\\n */\\nWriter.prototype.sint64 = function write_sint64(value) {\\n    var bits = LongBits.from(value).zzEncode();\\n    return this._push(writeVarint64, bits.length(), bits);\\n};\\n\\n/**\\n * Writes a boolish value as a varint.\\n * @param {boolean} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.bool = function write_bool(value) {\\n    return this._push(writeByte, 1, value ? 1 : 0);\\n};\\n\\nfunction writeFixed32(val, buf, pos) {\\n    buf[pos    ] =  val         & 255;\\n    buf[pos + 1] =  val >>> 8   & 255;\\n    buf[pos + 2] =  val >>> 16  & 255;\\n    buf[pos + 3] =  val >>> 24;\\n}\\n\\n/**\\n * Writes an unsigned 32 bit value as fixed 32 bits.\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.fixed32 = function write_fixed32(value) {\\n    return this._push(writeFixed32, 4, value >>> 0);\\n};\\n\\n/**\\n * Writes a signed 32 bit value as fixed 32 bits.\\n * @function\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\\n\\n/**\\n * Writes an unsigned 64 bit value as fixed 64 bits.\\n * @param {Long|number|string} value Value to write\\n * @returns {Writer} `this`\\n * @throws {TypeError} If `value` is a string and no long library is present.\\n */\\nWriter.prototype.fixed64 = function write_fixed64(value) {\\n    var bits = LongBits.from(value);\\n    return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\\n};\\n\\n/**\\n * Writes a signed 64 bit value as fixed 64 bits.\\n * @function\\n * @param {Long|number|string} value Value to write\\n * @returns {Writer} `this`\\n * @throws {TypeError} If `value` is a string and no long library is present.\\n */\\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\\n\\n/**\\n * Writes a float (32 bit).\\n * @function\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.float = function write_float(value) {\\n    return this._push(util.float.writeFloatLE, 4, value);\\n};\\n\\n/**\\n * Writes a double (64 bit float).\\n * @function\\n * @param {number} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.double = function write_double(value) {\\n    return this._push(util.float.writeDoubleLE, 8, value);\\n};\\n\\nvar writeBytes = util.Array.prototype.set\\n    ? function writeBytes_set(val, buf, pos) {\\n        buf.set(val, pos); // also works for plain array values\\n    }\\n    /* istanbul ignore next */\\n    : function writeBytes_for(val, buf, pos) {\\n        for (var i = 0; i < val.length; ++i)\\n            buf[pos + i] = val[i];\\n    };\\n\\n/**\\n * Writes a sequence of bytes.\\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.bytes = function write_bytes(value) {\\n    var len = value.length >>> 0;\\n    if (!len)\\n        return this._push(writeByte, 1, 0);\\n    if (util.isString(value)) {\\n        var buf = Writer.alloc(len = base64.length(value));\\n        base64.decode(value, buf, 0);\\n        value = buf;\\n    }\\n    return this.uint32(len)._push(writeBytes, len, value);\\n};\\n\\n/**\\n * Writes a string.\\n * @param {string} value Value to write\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.string = function write_string(value) {\\n    var len = utf8.length(value);\\n    return len\\n        ? this.uint32(len)._push(utf8.write, len, value)\\n        : this._push(writeByte, 1, 0);\\n};\\n\\n/**\\n * Forks this writer's state by pushing it to a stack.\\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.fork = function fork() {\\n    this.states = new State(this);\\n    this.head = this.tail = new Op(noop, 0, 0);\\n    this.len = 0;\\n    return this;\\n};\\n\\n/**\\n * Resets this instance to the last state.\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.reset = function reset() {\\n    if (this.states) {\\n        this.head   = this.states.head;\\n        this.tail   = this.states.tail;\\n        this.len    = this.states.len;\\n        this.states = this.states.next;\\n    } else {\\n        this.head = this.tail = new Op(noop, 0, 0);\\n        this.len  = 0;\\n    }\\n    return this;\\n};\\n\\n/**\\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\\n * @returns {Writer} `this`\\n */\\nWriter.prototype.ldelim = function ldelim() {\\n    var head = this.head,\\n        tail = this.tail,\\n        len  = this.len;\\n    this.reset().uint32(len);\\n    if (len) {\\n        this.tail.next = head.next; // skip noop\\n        this.tail = tail;\\n        this.len += len;\\n    }\\n    return this;\\n};\\n\\n/**\\n * Finishes the write operation.\\n * @returns {Uint8Array} Finished buffer\\n */\\nWriter.prototype.finish = function finish() {\\n    var head = this.head.next, // skip noop\\n        buf  = this.constructor.alloc(this.len),\\n        pos  = 0;\\n    while (head) {\\n        head.fn(head.val, buf, pos);\\n        pos += head.len;\\n        head = head.next;\\n    }\\n    // this.head = this.tail = null;\\n    return buf;\\n};\\n\\nWriter._configure = function(BufferWriter_) {\\n    BufferWriter = BufferWriter_;\\n    Writer.create = create();\\n    BufferWriter._configure();\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/writer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/protobufjs/src/writer_buffer.js\":\n/*!******************************************************!*\\\n  !*** ./node_modules/protobufjs/src/writer_buffer.js ***!\n  \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\nmodule.exports = BufferWriter;\\n\\n// extends Writer\\nvar Writer = __webpack_require__(/*! ./writer */ \\\"./node_modules/protobufjs/src/writer.js\\\");\\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\\n\\nvar util = __webpack_require__(/*! ./util/minimal */ \\\"./node_modules/protobufjs/src/util/minimal.js\\\");\\n\\n/**\\n * Constructs a new buffer writer instance.\\n * @classdesc Wire format writer using node buffers.\\n * @extends Writer\\n * @constructor\\n */\\nfunction BufferWriter() {\\n    Writer.call(this);\\n}\\n\\nBufferWriter._configure = function () {\\n    /**\\n     * Allocates a buffer of the specified size.\\n     * @function\\n     * @param {number} size Buffer size\\n     * @returns {Buffer} Buffer\\n     */\\n    BufferWriter.alloc = util._Buffer_allocUnsafe;\\n\\n    BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \\\"set\\\"\\n        ? function writeBytesBuffer_set(val, buf, pos) {\\n          buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\\n          // also works for plain array values\\n        }\\n        /* istanbul ignore next */\\n        : function writeBytesBuffer_copy(val, buf, pos) {\\n          if (val.copy) // Buffer values\\n            val.copy(buf, pos, 0, val.length);\\n          else for (var i = 0; i < val.length;) // plain array values\\n            buf[pos++] = val[i++];\\n        };\\n};\\n\\n\\n/**\\n * @override\\n */\\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\\n    if (util.isString(value))\\n        value = util._Buffer_from(value, \\\"base64\\\");\\n    var len = value.length >>> 0;\\n    this.uint32(len);\\n    if (len)\\n        this._push(BufferWriter.writeBytesBuffer, len, value);\\n    return this;\\n};\\n\\nfunction writeStringBuffer(val, buf, pos) {\\n    if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\\n        util.utf8.write(val, buf, pos);\\n    else if (buf.utf8Write)\\n        buf.utf8Write(val, pos);\\n    else\\n        buf.write(val, pos);\\n}\\n\\n/**\\n * @override\\n */\\nBufferWriter.prototype.string = function write_string_buffer(value) {\\n    var len = util.Buffer.byteLength(value);\\n    this.uint32(len);\\n    if (len)\\n        this._push(writeStringBuffer, len, value);\\n    return this;\\n};\\n\\n\\n/**\\n * Finishes the write operation.\\n * @name BufferWriter#finish\\n * @function\\n * @returns {Buffer} Finished buffer\\n */\\n\\nBufferWriter._configure();\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/protobufjs/src/writer_buffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/raw-loader/dist/cjs.js!./worklet/dist/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/raw-loader/dist/cjs.js!./worklet/dist/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\\\"/*\\\\n * ATTENTION: The \\\\\\\"eval\\\\\\\" devtool has been used (maybe by default in mode: \\\\\\\"development\\\\\\\").\\\\n * This devtool is neither made for production nor for readable output files.\\\\n * It uses \\\\\\\"eval()\\\\\\\" calls to create a separate source file in the browser devtools.\\\\n * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)\\\\n * or disable the default devtool with \\\\\\\"devtool: false\\\\\\\".\\\\n * If you are looking for production-ready output files, see mode: \\\\\\\"production\\\\\\\" (https://webpack.js.org/configuration/mode/).\\\\n */\\\\n/******/ (() => { // webpackBootstrap\\\\n/******/ \\\\t\\\\\\\"use strict\\\\\\\";\\\\n/******/ \\\\tvar __webpack_modules__ = ({\\\\n\\\\n/***/ \\\\\\\"./worklet/src/voice-changer-worklet-processor.ts\\\\\\\":\\\\n/*!********************************************************!*\\\\\\\\\\\\n  !*** ./worklet/src/voice-changer-worklet-processor.ts ***!\\\\n  \\\\\\\\********************************************************/\\\\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\\\\n\\\\neval(\\\\\\\"__webpack_require__.r(__webpack_exports__);\\\\\\\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\\\\\\\n/* harmony export */   \\\\\\\\\\\\\\\"RequestType\\\\\\\\\\\\\\\": () => (/* binding */ RequestType),\\\\\\\\n/* harmony export */   \\\\\\\\\\\\\\\"ResponseType\\\\\\\\\\\\\\\": () => (/* binding */ ResponseType)\\\\\\\\n/* harmony export */ });\\\\\\\\nconst RequestType = {\\\\\\\\n    \\\\\\\\\\\\\\\"voice\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"voice\\\\\\\\\\\\\\\",\\\\\\\\n    \\\\\\\\\\\\\\\"config\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"config\\\\\\\\\\\\\\\",\\\\\\\\n    \\\\\\\\\\\\\\\"startRecording\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"startRecording\\\\\\\\\\\\\\\",\\\\\\\\n    \\\\\\\\\\\\\\\"stopRecording\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"stopRecording\\\\\\\\\\\\\\\"\\\\\\\\n};\\\\\\\\nconst ResponseType = {\\\\\\\\n    \\\\\\\\\\\\\\\"volume\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"volume\\\\\\\\\\\\\\\",\\\\\\\\n    \\\\\\\\\\\\\\\"recordData\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"recordData\\\\\\\\\\\\\\\"\\\\\\\\n};\\\\\\\\nclass VoiceChangerWorkletProcessor extends AudioWorkletProcessor {\\\\\\\\n    /**\\\\\\\\n     * @constructor\\\\\\\\n     */\\\\\\\\n    constructor() {\\\\\\\\n        super();\\\\\\\\n        this.BLOCK_SIZE = 128;\\\\\\\\n        this.initialized = false;\\\\\\\\n        this.volume = 0;\\\\\\\\n        this.numTrancateTreshold = 150;\\\\\\\\n        this.volTrancateThreshold = 0.0005;\\\\\\\\n        this.volTrancateLength = 32;\\\\\\\\n        this.volTrancateCount = 0;\\\\\\\\n        this.isRecording = false;\\\\\\\\n        this.playBuffer = [];\\\\\\\\n        this.recordingBuffer = [];\\\\\\\\n        this.calcVol = (data, prevVol) => {\\\\\\\\n            const sum = data.reduce((prev, cur) => {\\\\\\\\n                return prev + cur * cur;\\\\\\\\n            }, 0);\\\\\\\\n            const rms = Math.sqrt(sum / data.length);\\\\\\\\n            return Math.max(rms, prevVol * 0.95);\\\\\\\\n        };\\\\\\\\n        this.initialized = true;\\\\\\\\n        this.port.onmessage = this.handleMessage.bind(this);\\\\\\\\n    }\\\\\\\\n    handleMessage(event) {\\\\\\\\n        const request = event.data;\\\\\\\\n        if (request.requestType === \\\\\\\\\\\\\\\"config\\\\\\\\\\\\\\\") {\\\\\\\\n            this.numTrancateTreshold = request.numTrancateTreshold;\\\\\\\\n            this.volTrancateLength = request.volTrancateLength;\\\\\\\\n            this.volTrancateThreshold = request.volTrancateThreshold;\\\\\\\\n            console.log(\\\\\\\\\\\\\\\"[worklet] worklet configured\\\\\\\\\\\\\\\", request);\\\\\\\\n            return;\\\\\\\\n        }\\\\\\\\n        else if (request.requestType === \\\\\\\\\\\\\\\"startRecording\\\\\\\\\\\\\\\") {\\\\\\\\n            if (this.isRecording) {\\\\\\\\n                console.warn(\\\\\\\\\\\\\\\"[worklet] recoring is already started\\\\\\\\\\\\\\\");\\\\\\\\n                return;\\\\\\\\n            }\\\\\\\\n            this.isRecording = true;\\\\\\\\n            this.recordingBuffer = [];\\\\\\\\n            return;\\\\\\\\n        }\\\\\\\\n        else if (request.requestType === \\\\\\\\\\\\\\\"stopRecording\\\\\\\\\\\\\\\") {\\\\\\\\n            if (!this.isRecording) {\\\\\\\\n                console.warn(\\\\\\\\\\\\\\\"[worklet] recoring is not started\\\\\\\\\\\\\\\");\\\\\\\\n                return;\\\\\\\\n            }\\\\\\\\n            this.isRecording = false;\\\\\\\\n            const recordResponse = {\\\\\\\\n                responseType: ResponseType.recordData,\\\\\\\\n                recordData: this.recordingBuffer\\\\\\\\n            };\\\\\\\\n            this.port.postMessage(recordResponse);\\\\\\\\n            this.recordingBuffer = [];\\\\\\\\n            return;\\\\\\\\n        }\\\\\\\\n        const arrayBuffer = request.voice;\\\\\\\\n        // データは(int16)で受信\\\\\\\\n        const i16Data = new Int16Array(arrayBuffer);\\\\\\\\n        const f32Data = new Float32Array(i16Data.length);\\\\\\\\n        // console.log(`[worklet] f32DataLength${f32Data.length} i16DataLength${i16Data.length}`)\\\\\\\\n        i16Data.forEach((x, i) => {\\\\\\\\n            const float = (x >= 0x8000) ? -(0x10000 - x) / 0x8000 : x / 0x7FFF;\\\\\\\\n            f32Data[i] = float;\\\\\\\\n        });\\\\\\\\n        // console.log(\\\\\\\\\\\\\\\"[worklet] i16Data\\\\\\\\\\\\\\\", i16Data)\\\\\\\\n        // console.log(\\\\\\\\\\\\\\\"[worklet] f32Data\\\\\\\\\\\\\\\", f32Data)\\\\\\\\n        if (this.playBuffer.length > this.numTrancateTreshold) {\\\\\\\\n            console.log(\\\\\\\\\\\\\\\"[worklet] Buffer truncated\\\\\\\\\\\\\\\");\\\\\\\\n            while (this.playBuffer.length > 2) {\\\\\\\\n                this.playBuffer.shift();\\\\\\\\n            }\\\\\\\\n        }\\\\\\\\n        // アップサンプリングしてPlayバッファに蓄積\\\\\\\\n        let f32Block;\\\\\\\\n        for (let i = 0; i < f32Data.length; i++) {\\\\\\\\n            const frameIndexInBlock = (i * 2) % this.BLOCK_SIZE; //\\\\\\\\n            if (frameIndexInBlock === 0) {\\\\\\\\n                f32Block = new Float32Array(this.BLOCK_SIZE);\\\\\\\\n            }\\\\\\\\n            const currentFrame = f32Data[i];\\\\\\\\n            const nextFrame = i + 1 < f32Data.length ? f32Data[i + 1] : f32Data[i];\\\\\\\\n            f32Block[frameIndexInBlock] = currentFrame;\\\\\\\\n            f32Block[frameIndexInBlock + 1] = (currentFrame + nextFrame) / 2;\\\\\\\\n            if (f32Block.length === frameIndexInBlock + 2) {\\\\\\\\n                this.playBuffer.push(f32Block);\\\\\\\\n                if (this.isRecording) {\\\\\\\\n                    this.recordingBuffer.push(f32Block);\\\\\\\\n                }\\\\\\\\n            }\\\\\\\\n        }\\\\\\\\n    }\\\\\\\\n    process(_inputs, outputs, _parameters) {\\\\\\\\n        if (!this.initialized) {\\\\\\\\n            console.warn(\\\\\\\\\\\\\\\"[worklet] worklet_process not ready\\\\\\\\\\\\\\\");\\\\\\\\n            return true;\\\\\\\\n        }\\\\\\\\n        if (this.playBuffer.length === 0) {\\\\\\\\n            // console.log(\\\\\\\\\\\\\\\"[worklet] no play buffer\\\\\\\\\\\\\\\")\\\\\\\\n            return true;\\\\\\\\n        }\\\\\\\\n        //// 一定期間無音状態が続いている場合はスキップ。\\\\\\\\n        let voice;\\\\\\\\n        while (true) {\\\\\\\\n            voice = this.playBuffer.shift();\\\\\\\\n            if (!voice) {\\\\\\\\n                break;\\\\\\\\n            }\\\\\\\\n            this.volume = this.calcVol(voice, this.volume);\\\\\\\\n            if (this.volume < this.volTrancateThreshold) {\\\\\\\\n                this.volTrancateCount += 1;\\\\\\\\n            }\\\\\\\\n            else {\\\\\\\\n                this.volTrancateCount = 0;\\\\\\\\n            }\\\\\\\\n            // V.1.5.0よりsilent skipで音飛びするようになったので無効化\\\\\\\\n            if (this.volTrancateCount < this.volTrancateLength || this.volTrancateLength < 0) {\\\\\\\\n                break;\\\\\\\\n            }\\\\\\\\n            else {\\\\\\\\n                break;\\\\\\\\n                // console.log(\\\\\\\\\\\\\\\"silent...skip\\\\\\\\\\\\\\\")\\\\\\\\n            }\\\\\\\\n        }\\\\\\\\n        if (voice) {\\\\\\\\n            const volumeResponse = {\\\\\\\\n                responseType: ResponseType.volume,\\\\\\\\n                volume: this.volume\\\\\\\\n            };\\\\\\\\n            this.port.postMessage(volumeResponse);\\\\\\\\n            outputs[0][0].set(voice);\\\\\\\\n        }\\\\\\\\n        return true;\\\\\\\\n    }\\\\\\\\n}\\\\\\\\nregisterProcessor(\\\\\\\\\\\\\\\"voice-changer-worklet-processor\\\\\\\\\\\\\\\", VoiceChangerWorkletProcessor);\\\\\\\\n\\\\\\\\n\\\\\\\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./worklet/src/voice-changer-worklet-processor.ts?\\\\\\\");\\\\n\\\\n/***/ })\\\\n\\\\n/******/ \\\\t});\\\\n/************************************************************************/\\\\n/******/ \\\\t// The require scope\\\\n/******/ \\\\tvar __webpack_require__ = {};\\\\n/******/ \\\\t\\\\n/************************************************************************/\\\\n/******/ \\\\t/* webpack/runtime/define property getters */\\\\n/******/ \\\\t(() => {\\\\n/******/ \\\\t\\\\t// define getter functions for harmony exports\\\\n/******/ \\\\t\\\\t__webpack_require__.d = (exports, definition) => {\\\\n/******/ \\\\t\\\\t\\\\tfor(var key in definition) {\\\\n/******/ \\\\t\\\\t\\\\t\\\\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\\\\n/******/ \\\\t\\\\t\\\\t\\\\t\\\\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\\\\n/******/ \\\\t\\\\t\\\\t\\\\t}\\\\n/******/ \\\\t\\\\t\\\\t}\\\\n/******/ \\\\t\\\\t};\\\\n/******/ \\\\t})();\\\\n/******/ \\\\t\\\\n/******/ \\\\t/* webpack/runtime/hasOwnProperty shorthand */\\\\n/******/ \\\\t(() => {\\\\n/******/ \\\\t\\\\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\\\\n/******/ \\\\t})();\\\\n/******/ \\\\t\\\\n/******/ \\\\t/* webpack/runtime/make namespace object */\\\\n/******/ \\\\t(() => {\\\\n/******/ \\\\t\\\\t// define __esModule on exports\\\\n/******/ \\\\t\\\\t__webpack_require__.r = (exports) => {\\\\n/******/ \\\\t\\\\t\\\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\\\n/******/ \\\\t\\\\t\\\\t\\\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\\\n/******/ \\\\t\\\\t\\\\t}\\\\n/******/ \\\\t\\\\t\\\\tObject.defineProperty(exports, '__esModule', { value: true });\\\\n/******/ \\\\t\\\\t};\\\\n/******/ \\\\t})();\\\\n/******/ \\\\t\\\\n/************************************************************************/\\\\n/******/ \\\\t\\\\n/******/ \\\\t// startup\\\\n/******/ \\\\t// Load entry module and return exports\\\\n/******/ \\\\t// This entry module can't be inlined because the eval devtool is used.\\\\n/******/ \\\\tvar __webpack_exports__ = {};\\\\n/******/ \\\\t__webpack_modules__[\\\\\\\"./worklet/src/voice-changer-worklet-processor.ts\\\\\\\"](0, __webpack_exports__, __webpack_require__);\\\\n/******/ \\\\t\\\\n/******/ })()\\\\n;\\\");\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./worklet/dist/index.js?./node_modules/raw-loader/dist/cjs.js\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js ***!\n  \\*******************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { AbortError, codes } = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst eos = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nconst { ERR_INVALID_ARG_TYPE } = codes\\n\\n// This method is inlined here for readable-stream\\n// It also does not allow for signal to not exist on the stream\\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\\nconst validateAbortSignal = (signal, name) => {\\n  if (typeof signal !== 'object' || !('aborted' in signal)) {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\\n  }\\n}\\nfunction isNodeStream(obj) {\\n  return !!(obj && typeof obj.pipe === 'function')\\n}\\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\\n  validateAbortSignal(signal, 'signal')\\n  if (!isNodeStream(stream)) {\\n    throw new ERR_INVALID_ARG_TYPE('stream', 'stream.Stream', stream)\\n  }\\n  return module.exports.addAbortSignalNoValidate(signal, stream)\\n}\\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\\n  if (typeof signal !== 'object' || !('aborted' in signal)) {\\n    return stream\\n  }\\n  const onAbort = () => {\\n    stream.destroy(\\n      new AbortError(undefined, {\\n        cause: signal.reason\\n      })\\n    )\\n  }\\n  if (signal.aborted) {\\n    onAbort()\\n  } else {\\n    signal.addEventListener('abort', onAbort)\\n    eos(stream, () => signal.removeEventListener('abort', onAbort))\\n  }\\n  return stream\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/buffer_list.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!\n  \\**************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { Buffer } = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst { inspect } = __webpack_require__(/*! ../../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nmodule.exports = class BufferList {\\n  constructor() {\\n    this.head = null\\n    this.tail = null\\n    this.length = 0\\n  }\\n  push(v) {\\n    const entry = {\\n      data: v,\\n      next: null\\n    }\\n    if (this.length > 0) this.tail.next = entry\\n    else this.head = entry\\n    this.tail = entry\\n    ++this.length\\n  }\\n  unshift(v) {\\n    const 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  shift() {\\n    if (this.length === 0) return\\n    const ret = this.head.data\\n    if (this.length === 1) this.head = this.tail = null\\n    else this.head = this.head.next\\n    --this.length\\n    return ret\\n  }\\n  clear() {\\n    this.head = this.tail = null\\n    this.length = 0\\n  }\\n  join(s) {\\n    if (this.length === 0) return ''\\n    let p = this.head\\n    let ret = '' + p.data\\n    while ((p = p.next) !== null) ret += s + p.data\\n    return ret\\n  }\\n  concat(n) {\\n    if (this.length === 0) return Buffer.alloc(0)\\n    const ret = Buffer.allocUnsafe(n >>> 0)\\n    let p = this.head\\n    let i = 0\\n    while (p) {\\n      TypedArrayPrototypeSet(ret, p.data, 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  consume(n, hasStrings) {\\n    const data = this.head.data\\n    if (n < data.length) {\\n      // `slice` is the same for buffers and strings.\\n      const slice = data.slice(0, n)\\n      this.head.data = data.slice(n)\\n      return slice\\n    }\\n    if (n === data.length) {\\n      // First chunk is a perfect match.\\n      return this.shift()\\n    }\\n    // Result spans more than one buffer.\\n    return hasStrings ? this._getString(n) : this._getBuffer(n)\\n  }\\n  first() {\\n    return this.head.data\\n  }\\n  *[SymbolIterator]() {\\n    for (let p = this.head; p; p = p.next) {\\n      yield p.data\\n    }\\n  }\\n\\n  // Consumes a specified amount of characters from the buffered data.\\n  _getString(n) {\\n    let ret = ''\\n    let p = this.head\\n    let c = 0\\n    do {\\n      const str = p.data\\n      if (n > str.length) {\\n        ret += str\\n        n -= str.length\\n      } else {\\n        if (n === str.length) {\\n          ret += str\\n          ++c\\n          if (p.next) this.head = p.next\\n          else this.head = this.tail = null\\n        } else {\\n          ret += StringPrototypeSlice(str, 0, n)\\n          this.head = p\\n          p.data = StringPrototypeSlice(str, n)\\n        }\\n        break\\n      }\\n      ++c\\n    } while ((p = p.next) !== null)\\n    this.length -= c\\n    return ret\\n  }\\n\\n  // Consumes a specified amount of bytes from the buffered data.\\n  _getBuffer(n) {\\n    const ret = Buffer.allocUnsafe(n)\\n    const retLen = n\\n    let p = this.head\\n    let c = 0\\n    do {\\n      const buf = p.data\\n      if (n > buf.length) {\\n        TypedArrayPrototypeSet(ret, buf, retLen - n)\\n        n -= buf.length\\n      } else {\\n        if (n === buf.length) {\\n          TypedArrayPrototypeSet(ret, buf, retLen - n)\\n          ++c\\n          if (p.next) this.head = p.next\\n          else this.head = this.tail = null\\n        } else {\\n          TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\\n          this.head = p\\n          p.data = buf.slice(n)\\n        }\\n        break\\n      }\\n      ++c\\n    } while ((p = p.next) !== null)\\n    this.length -= c\\n    return ret\\n  }\\n\\n  // Make sure the linked list only shows the minimal necessary information.\\n  [Symbol.for('nodejs.util.inspect.custom')](_, options) {\\n    return inspect(this, {\\n      ...options,\\n      // Only inspect one level.\\n      depth: 0,\\n      // It should not recurse.\\n      customInspect: false\\n    })\\n  }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/buffer_list.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/compose.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/compose.js ***!\n  \\**********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { pipeline } = __webpack_require__(/*! ./pipeline */ \\\"./node_modules/readable-stream/lib/internal/streams/pipeline.js\\\")\\nconst Duplex = __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\nconst { destroyer } = __webpack_require__(/*! ./destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst { isNodeStream, isReadable, isWritable } = __webpack_require__(/*! ./utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst {\\n  AbortError,\\n  codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nmodule.exports = function compose(...streams) {\\n  if (streams.length === 0) {\\n    throw new ERR_MISSING_ARGS('streams')\\n  }\\n  if (streams.length === 1) {\\n    return Duplex.from(streams[0])\\n  }\\n  const orgStreams = [...streams]\\n  if (typeof streams[0] === 'function') {\\n    streams[0] = Duplex.from(streams[0])\\n  }\\n  if (typeof streams[streams.length - 1] === 'function') {\\n    const idx = streams.length - 1\\n    streams[idx] = Duplex.from(streams[idx])\\n  }\\n  for (let n = 0; n < streams.length; ++n) {\\n    if (!isNodeStream(streams[n])) {\\n      // TODO(ronag): Add checks for non streams.\\n      continue\\n    }\\n    if (n < streams.length - 1 && !isReadable(streams[n])) {\\n      throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\\n    }\\n    if (n > 0 && !isWritable(streams[n])) {\\n      throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\\n    }\\n  }\\n  let ondrain\\n  let onfinish\\n  let onreadable\\n  let onclose\\n  let d\\n  function onfinished(err) {\\n    const cb = onclose\\n    onclose = null\\n    if (cb) {\\n      cb(err)\\n    } else if (err) {\\n      d.destroy(err)\\n    } else if (!readable && !writable) {\\n      d.destroy()\\n    }\\n  }\\n  const head = streams[0]\\n  const tail = pipeline(streams, onfinished)\\n  const writable = !!isWritable(head)\\n  const readable = !!isReadable(tail)\\n\\n  // TODO(ronag): Avoid double buffering.\\n  // Implement Writable/Readable/Duplex traits.\\n  // See, https://github.com/nodejs/node/pull/33515.\\n  d = new Duplex({\\n    // TODO (ronag): highWaterMark?\\n    writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\\n    readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\\n    writable,\\n    readable\\n  })\\n  if (writable) {\\n    d._write = function (chunk, encoding, callback) {\\n      if (head.write(chunk, encoding)) {\\n        callback()\\n      } else {\\n        ondrain = callback\\n      }\\n    }\\n    d._final = function (callback) {\\n      head.end()\\n      onfinish = callback\\n    }\\n    head.on('drain', function () {\\n      if (ondrain) {\\n        const cb = ondrain\\n        ondrain = null\\n        cb()\\n      }\\n    })\\n    tail.on('finish', function () {\\n      if (onfinish) {\\n        const cb = onfinish\\n        onfinish = null\\n        cb()\\n      }\\n    })\\n  }\\n  if (readable) {\\n    tail.on('readable', function () {\\n      if (onreadable) {\\n        const cb = onreadable\\n        onreadable = null\\n        cb()\\n      }\\n    })\\n    tail.on('end', function () {\\n      d.push(null)\\n    })\\n    d._read = function () {\\n      while (true) {\\n        const buf = tail.read()\\n        if (buf === null) {\\n          onreadable = d._read\\n          return\\n        }\\n        if (!d.push(buf)) {\\n          return\\n        }\\n      }\\n    }\\n  }\\n  d._destroy = function (err, callback) {\\n    if (!err && onclose !== null) {\\n      err = new AbortError()\\n    }\\n    onreadable = null\\n    ondrain = null\\n    onfinish = null\\n    if (onclose === null) {\\n      callback(err)\\n    } else {\\n      onclose = callback\\n      destroyer(tail, err)\\n    }\\n  }\\n  return d\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/compose.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***!\n  \\**********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n\\nconst {\\n  aggregateTwoErrors,\\n  codes: { ERR_MULTIPLE_CALLBACK },\\n  AbortError\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { Symbol } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = __webpack_require__(/*! ./utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst kDestroy = Symbol('kDestroy')\\nconst kConstruct = Symbol('kConstruct')\\nfunction checkError(err, w, r) {\\n  if (err) {\\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\\n    err.stack // eslint-disable-line no-unused-expressions\\n\\n    if (w && !w.errored) {\\n      w.errored = err\\n    }\\n    if (r && !r.errored) {\\n      r.errored = err\\n    }\\n  }\\n}\\n\\n// Backwards compat. cb() is undocumented and unused in core but\\n// unfortunately might be used by modules.\\nfunction destroy(err, cb) {\\n  const r = this._readableState\\n  const w = this._writableState\\n  // With duplex streams we use the writable side for state.\\n  const s = w || r\\n  if ((w && w.destroyed) || (r && r.destroyed)) {\\n    if (typeof cb === 'function') {\\n      cb()\\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  checkError(err, w, r)\\n  if (w) {\\n    w.destroyed = true\\n  }\\n  if (r) {\\n    r.destroyed = true\\n  }\\n\\n  // If still constructing then defer calling _destroy.\\n  if (!s.constructed) {\\n    this.once(kDestroy, function (er) {\\n      _destroy(this, aggregateTwoErrors(er, err), cb)\\n    })\\n  } else {\\n    _destroy(this, err, cb)\\n  }\\n  return this\\n}\\nfunction _destroy(self, err, cb) {\\n  let called = false\\n  function onDestroy(err) {\\n    if (called) {\\n      return\\n    }\\n    called = true\\n    const r = self._readableState\\n    const w = self._writableState\\n    checkError(err, w, r)\\n    if (w) {\\n      w.closed = true\\n    }\\n    if (r) {\\n      r.closed = true\\n    }\\n    if (typeof cb === 'function') {\\n      cb(err)\\n    }\\n    if (err) {\\n      process.nextTick(emitErrorCloseNT, self, err)\\n    } else {\\n      process.nextTick(emitCloseNT, self)\\n    }\\n  }\\n  try {\\n    self._destroy(err || null, onDestroy)\\n  } catch (err) {\\n    onDestroy(err)\\n  }\\n}\\nfunction emitErrorCloseNT(self, err) {\\n  emitErrorNT(self, err)\\n  emitCloseNT(self)\\n}\\nfunction emitCloseNT(self) {\\n  const r = self._readableState\\n  const w = self._writableState\\n  if (w) {\\n    w.closeEmitted = true\\n  }\\n  if (r) {\\n    r.closeEmitted = true\\n  }\\n  if ((w && w.emitClose) || (r && r.emitClose)) {\\n    self.emit('close')\\n  }\\n}\\nfunction emitErrorNT(self, err) {\\n  const r = self._readableState\\n  const w = self._writableState\\n  if ((w && w.errorEmitted) || (r && r.errorEmitted)) {\\n    return\\n  }\\n  if (w) {\\n    w.errorEmitted = true\\n  }\\n  if (r) {\\n    r.errorEmitted = true\\n  }\\n  self.emit('error', err)\\n}\\nfunction undestroy() {\\n  const r = this._readableState\\n  const w = this._writableState\\n  if (r) {\\n    r.constructed = true\\n    r.closed = false\\n    r.closeEmitted = false\\n    r.destroyed = false\\n    r.errored = null\\n    r.errorEmitted = false\\n    r.reading = false\\n    r.ended = r.readable === false\\n    r.endEmitted = r.readable === false\\n  }\\n  if (w) {\\n    w.constructed = true\\n    w.destroyed = false\\n    w.closed = false\\n    w.closeEmitted = false\\n    w.errored = null\\n    w.errorEmitted = false\\n    w.finalCalled = false\\n    w.prefinished = false\\n    w.ended = w.writable === false\\n    w.ending = w.writable === false\\n    w.finished = w.writable === false\\n  }\\n}\\nfunction errorOrDestroy(stream, err, sync) {\\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  const r = stream._readableState\\n  const w = stream._writableState\\n  if ((w && w.destroyed) || (r && r.destroyed)) {\\n    return this\\n  }\\n  if ((r && r.autoDestroy) || (w && w.autoDestroy)) stream.destroy(err)\\n  else if (err) {\\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\\n    err.stack // eslint-disable-line no-unused-expressions\\n\\n    if (w && !w.errored) {\\n      w.errored = err\\n    }\\n    if (r && !r.errored) {\\n      r.errored = err\\n    }\\n    if (sync) {\\n      process.nextTick(emitErrorNT, stream, err)\\n    } else {\\n      emitErrorNT(stream, err)\\n    }\\n  }\\n}\\nfunction construct(stream, cb) {\\n  if (typeof stream._construct !== 'function') {\\n    return\\n  }\\n  const r = stream._readableState\\n  const w = stream._writableState\\n  if (r) {\\n    r.constructed = false\\n  }\\n  if (w) {\\n    w.constructed = false\\n  }\\n  stream.once(kConstruct, cb)\\n  if (stream.listenerCount(kConstruct) > 1) {\\n    // Duplex\\n    return\\n  }\\n  process.nextTick(constructNT, stream)\\n}\\nfunction constructNT(stream) {\\n  let called = false\\n  function onConstruct(err) {\\n    if (called) {\\n      errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\\n      return\\n    }\\n    called = true\\n    const r = stream._readableState\\n    const w = stream._writableState\\n    const s = w || r\\n    if (r) {\\n      r.constructed = true\\n    }\\n    if (w) {\\n      w.constructed = true\\n    }\\n    if (s.destroyed) {\\n      stream.emit(kDestroy, err)\\n    } else if (err) {\\n      errorOrDestroy(stream, err, true)\\n    } else {\\n      process.nextTick(emitConstructNT, stream)\\n    }\\n  }\\n  try {\\n    stream._construct(onConstruct)\\n  } catch (err) {\\n    onConstruct(err)\\n  }\\n}\\nfunction emitConstructNT(stream) {\\n  stream.emit(kConstruct)\\n}\\nfunction isRequest(stream) {\\n  return stream && stream.setHeader && typeof stream.abort === 'function'\\n}\\nfunction emitCloseLegacy(stream) {\\n  stream.emit('close')\\n}\\nfunction emitErrorCloseLegacy(stream, err) {\\n  stream.emit('error', err)\\n  process.nextTick(emitCloseLegacy, stream)\\n}\\n\\n// Normalize destroy for legacy.\\nfunction destroyer(stream, err) {\\n  if (!stream || isDestroyed(stream)) {\\n    return\\n  }\\n  if (!err && !isFinished(stream)) {\\n    err = new AbortError()\\n  }\\n\\n  // TODO: Remove isRequest branches.\\n  if (isServerRequest(stream)) {\\n    stream.socket = null\\n    stream.destroy(err)\\n  } else if (isRequest(stream)) {\\n    stream.abort()\\n  } else if (isRequest(stream.req)) {\\n    stream.req.abort()\\n  } else if (typeof stream.destroy === 'function') {\\n    stream.destroy(err)\\n  } else if (typeof stream.close === 'function') {\\n    // TODO: Don't lose err?\\n    stream.close()\\n  } else if (err) {\\n    process.nextTick(emitErrorCloseLegacy, stream, err)\\n  } else {\\n    process.nextTick(emitCloseLegacy, stream)\\n  }\\n  if (!stream.destroyed) {\\n    stream[kDestroyed] = true\\n  }\\n}\\nmodule.exports = {\\n  construct,\\n  destroyer,\\n  destroy,\\n  undestroy,\\n  errorOrDestroy\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/destroy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/duplex.js ***!\n  \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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 prototype inheritance, this class\\n// prototypically inherits from Readable, and then parasitically from\\n// Writable.\\n\\n\\n\\nconst {\\n  ObjectDefineProperties,\\n  ObjectGetOwnPropertyDescriptor,\\n  ObjectKeys,\\n  ObjectSetPrototypeOf\\n} = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nmodule.exports = Duplex\\nconst Readable = __webpack_require__(/*! ./readable */ \\\"./node_modules/readable-stream/lib/internal/streams/readable.js\\\")\\nconst Writable = __webpack_require__(/*! ./writable */ \\\"./node_modules/readable-stream/lib/internal/streams/writable.js\\\")\\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\\nObjectSetPrototypeOf(Duplex, Readable)\\n{\\n  const keys = ObjectKeys(Writable.prototype)\\n  // Allow the keys array to be GC'ed.\\n  for (let i = 0; i < keys.length; i++) {\\n    const method = keys[i]\\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  if (options) {\\n    this.allowHalfOpen = options.allowHalfOpen !== false\\n    if (options.readable === false) {\\n      this._readableState.readable = false\\n      this._readableState.ended = true\\n      this._readableState.endEmitted = true\\n    }\\n    if (options.writable === false) {\\n      this._writableState.writable = false\\n      this._writableState.ending = true\\n      this._writableState.ended = true\\n      this._writableState.finished = true\\n    }\\n  } else {\\n    this.allowHalfOpen = true\\n  }\\n}\\nObjectDefineProperties(Duplex.prototype, {\\n  writable: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\\n  },\\n  writableHighWaterMark: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\\n  },\\n  writableObjectMode: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\\n  },\\n  writableBuffer: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\\n  },\\n  writableLength: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\\n  },\\n  writableFinished: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\\n  },\\n  writableCorked: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\\n  },\\n  writableEnded: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\\n  },\\n  writableNeedDrain: {\\n    __proto__: null,\\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\\n  },\\n  destroyed: {\\n    __proto__: null,\\n    get() {\\n      if (this._readableState === undefined || this._writableState === undefined) {\\n        return false\\n      }\\n      return this._readableState.destroyed && this._writableState.destroyed\\n    },\\n    set(value) {\\n      // Backward compatibility, the user is explicitly\\n      // managing destroyed.\\n      if (this._readableState && this._writableState) {\\n        this._readableState.destroyed = value\\n        this._writableState.destroyed = value\\n      }\\n    }\\n  }\\n})\\nlet webStreamsAdapters\\n\\n// Lazy to avoid circular references\\nfunction lazyWebStreams() {\\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\\n  return webStreamsAdapters\\n}\\nDuplex.fromWeb = function (pair, options) {\\n  return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\\n}\\nDuplex.toWeb = function (duplex) {\\n  return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\\n}\\nlet duplexify\\nDuplex.from = function (body) {\\n  if (!duplexify) {\\n    duplexify = __webpack_require__(/*! ./duplexify */ \\\"./node_modules/readable-stream/lib/internal/streams/duplexify.js\\\")\\n  }\\n  return duplexify(body, 'body')\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/duplex.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/duplexify.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/duplexify.js ***!\n  \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n\\n;('use strict')\\nconst bufferModule = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst {\\n  isReadable,\\n  isWritable,\\n  isIterable,\\n  isNodeStream,\\n  isReadableNodeStream,\\n  isWritableNodeStream,\\n  isDuplexNodeStream\\n} = __webpack_require__(/*! ./utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst eos = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nconst {\\n  AbortError,\\n  codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { destroyer } = __webpack_require__(/*! ./destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst Duplex = __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\nconst Readable = __webpack_require__(/*! ./readable */ \\\"./node_modules/readable-stream/lib/internal/streams/readable.js\\\")\\nconst { createDeferredPromise } = __webpack_require__(/*! ../../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nconst from = __webpack_require__(/*! ./from */ \\\"./node_modules/readable-stream/lib/internal/streams/from.js\\\")\\nconst Blob = globalThis.Blob || bufferModule.Blob\\nconst isBlob =\\n  typeof Blob !== 'undefined'\\n    ? function isBlob(b) {\\n        return b instanceof Blob\\n      }\\n    : function isBlob(b) {\\n        return false\\n      }\\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \\\"./node_modules/abort-controller/browser.js\\\").AbortController)\\nconst { FunctionPrototypeCall } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\n\\n// This is needed for pre node 17.\\nclass Duplexify extends Duplex {\\n  constructor(options) {\\n    super(options)\\n\\n    // https://github.com/nodejs/node/pull/34385\\n\\n    if ((options === null || options === undefined ? undefined : options.readable) === false) {\\n      this._readableState.readable = false\\n      this._readableState.ended = true\\n      this._readableState.endEmitted = true\\n    }\\n    if ((options === null || options === undefined ? undefined : options.writable) === false) {\\n      this._writableState.writable = false\\n      this._writableState.ending = true\\n      this._writableState.ended = true\\n      this._writableState.finished = true\\n    }\\n  }\\n}\\nmodule.exports = function duplexify(body, name) {\\n  if (isDuplexNodeStream(body)) {\\n    return body\\n  }\\n  if (isReadableNodeStream(body)) {\\n    return _duplexify({\\n      readable: body\\n    })\\n  }\\n  if (isWritableNodeStream(body)) {\\n    return _duplexify({\\n      writable: body\\n    })\\n  }\\n  if (isNodeStream(body)) {\\n    return _duplexify({\\n      writable: false,\\n      readable: false\\n    })\\n  }\\n\\n  // TODO: Webstreams\\n  // if (isReadableStream(body)) {\\n  //   return _duplexify({ readable: Readable.fromWeb(body) });\\n  // }\\n\\n  // TODO: Webstreams\\n  // if (isWritableStream(body)) {\\n  //   return _duplexify({ writable: Writable.fromWeb(body) });\\n  // }\\n\\n  if (typeof body === 'function') {\\n    const { value, write, final, destroy } = fromAsyncGen(body)\\n    if (isIterable(value)) {\\n      return from(Duplexify, value, {\\n        // TODO (ronag): highWaterMark?\\n        objectMode: true,\\n        write,\\n        final,\\n        destroy\\n      })\\n    }\\n    const then = value === null || value === undefined ? undefined : value.then\\n    if (typeof then === 'function') {\\n      let d\\n      const promise = FunctionPrototypeCall(\\n        then,\\n        value,\\n        (val) => {\\n          if (val != null) {\\n            throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\\n          }\\n        },\\n        (err) => {\\n          destroyer(d, err)\\n        }\\n      )\\n      return (d = new Duplexify({\\n        // TODO (ronag): highWaterMark?\\n        objectMode: true,\\n        readable: false,\\n        write,\\n        final(cb) {\\n          final(async () => {\\n            try {\\n              await promise\\n              process.nextTick(cb, null)\\n            } catch (err) {\\n              process.nextTick(cb, err)\\n            }\\n          })\\n        },\\n        destroy\\n      }))\\n    }\\n    throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\\n  }\\n  if (isBlob(body)) {\\n    return duplexify(body.arrayBuffer())\\n  }\\n  if (isIterable(body)) {\\n    return from(Duplexify, body, {\\n      // TODO (ronag): highWaterMark?\\n      objectMode: true,\\n      writable: false\\n    })\\n  }\\n\\n  // TODO: Webstreams.\\n  // if (\\n  //   isReadableStream(body?.readable) &&\\n  //   isWritableStream(body?.writable)\\n  // ) {\\n  //   return Duplexify.fromWeb(body);\\n  // }\\n\\n  if (\\n    typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\\n    typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\\n  ) {\\n    const readable =\\n      body !== null && body !== undefined && body.readable\\n        ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\\n          ? body === null || body === undefined\\n            ? undefined\\n            : body.readable\\n          : duplexify(body.readable)\\n        : undefined\\n    const writable =\\n      body !== null && body !== undefined && body.writable\\n        ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\\n          ? body === null || body === undefined\\n            ? undefined\\n            : body.writable\\n          : duplexify(body.writable)\\n        : undefined\\n    return _duplexify({\\n      readable,\\n      writable\\n    })\\n  }\\n  const then = body === null || body === undefined ? undefined : body.then\\n  if (typeof then === 'function') {\\n    let d\\n    FunctionPrototypeCall(\\n      then,\\n      body,\\n      (val) => {\\n        if (val != null) {\\n          d.push(val)\\n        }\\n        d.push(null)\\n      },\\n      (err) => {\\n        destroyer(d, err)\\n      }\\n    )\\n    return (d = new Duplexify({\\n      objectMode: true,\\n      writable: false,\\n      read() {}\\n    }))\\n  }\\n  throw new ERR_INVALID_ARG_TYPE(\\n    name,\\n    [\\n      'Blob',\\n      'ReadableStream',\\n      'WritableStream',\\n      'Stream',\\n      'Iterable',\\n      'AsyncIterable',\\n      'Function',\\n      '{ readable, writable } pair',\\n      'Promise'\\n    ],\\n    body\\n  )\\n}\\nfunction fromAsyncGen(fn) {\\n  let { promise, resolve } = createDeferredPromise()\\n  const ac = new AbortController()\\n  const signal = ac.signal\\n  const value = fn(\\n    (async function* () {\\n      while (true) {\\n        const _promise = promise\\n        promise = null\\n        const { chunk, done, cb } = await _promise\\n        process.nextTick(cb)\\n        if (done) return\\n        if (signal.aborted)\\n          throw new AbortError(undefined, {\\n            cause: signal.reason\\n          })\\n        ;({ promise, resolve } = createDeferredPromise())\\n        yield chunk\\n      }\\n    })(),\\n    {\\n      signal\\n    }\\n  )\\n  return {\\n    value,\\n    write(chunk, encoding, cb) {\\n      const _resolve = resolve\\n      resolve = null\\n      _resolve({\\n        chunk,\\n        done: false,\\n        cb\\n      })\\n    },\\n    final(cb) {\\n      const _resolve = resolve\\n      resolve = null\\n      _resolve({\\n        done: true,\\n        cb\\n      })\\n    },\\n    destroy(err, cb) {\\n      ac.abort()\\n      cb(err)\\n    }\\n  }\\n}\\nfunction _duplexify(pair) {\\n  const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\\n  const w = pair.writable\\n  let readable = !!isReadable(r)\\n  let writable = !!isWritable(w)\\n  let ondrain\\n  let onfinish\\n  let onreadable\\n  let onclose\\n  let d\\n  function onfinished(err) {\\n    const cb = onclose\\n    onclose = null\\n    if (cb) {\\n      cb(err)\\n    } else if (err) {\\n      d.destroy(err)\\n    } else if (!readable && !writable) {\\n      d.destroy()\\n    }\\n  }\\n\\n  // TODO(ronag): Avoid double buffering.\\n  // Implement Writable/Readable/Duplex traits.\\n  // See, https://github.com/nodejs/node/pull/33515.\\n  d = new Duplexify({\\n    // TODO (ronag): highWaterMark?\\n    readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\\n    writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\\n    readable,\\n    writable\\n  })\\n  if (writable) {\\n    eos(w, (err) => {\\n      writable = false\\n      if (err) {\\n        destroyer(r, err)\\n      }\\n      onfinished(err)\\n    })\\n    d._write = function (chunk, encoding, callback) {\\n      if (w.write(chunk, encoding)) {\\n        callback()\\n      } else {\\n        ondrain = callback\\n      }\\n    }\\n    d._final = function (callback) {\\n      w.end()\\n      onfinish = callback\\n    }\\n    w.on('drain', function () {\\n      if (ondrain) {\\n        const cb = ondrain\\n        ondrain = null\\n        cb()\\n      }\\n    })\\n    w.on('finish', function () {\\n      if (onfinish) {\\n        const cb = onfinish\\n        onfinish = null\\n        cb()\\n      }\\n    })\\n  }\\n  if (readable) {\\n    eos(r, (err) => {\\n      readable = false\\n      if (err) {\\n        destroyer(r, err)\\n      }\\n      onfinished(err)\\n    })\\n    r.on('readable', function () {\\n      if (onreadable) {\\n        const cb = onreadable\\n        onreadable = null\\n        cb()\\n      }\\n    })\\n    r.on('end', function () {\\n      d.push(null)\\n    })\\n    d._read = function () {\\n      while (true) {\\n        const buf = r.read()\\n        if (buf === null) {\\n          onreadable = d._read\\n          return\\n        }\\n        if (!d.push(buf)) {\\n          return\\n        }\\n      }\\n    }\\n  }\\n  d._destroy = function (err, callback) {\\n    if (!err && onclose !== null) {\\n      err = new AbortError()\\n    }\\n    onreadable = null\\n    ondrain = null\\n    onfinish = null\\n    if (onclose === null) {\\n      callback(err)\\n    } else {\\n      onclose = callback\\n      destroyer(w, err)\\n      destroyer(r, err)\\n    }\\n  }\\n  return d\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/duplexify.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\":\n/*!****************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!\n  \\****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n// Ported from https://github.com/mafintosh/end-of-stream with\\n// permission from the author, Mathias Buus (@mafintosh).\\n\\n;('use strict')\\nconst { AbortError, codes } = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\\nconst { kEmptyObject, once } = __webpack_require__(/*! ../../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nconst { validateAbortSignal, validateFunction, validateObject } = __webpack_require__(/*! ../validators */ \\\"./node_modules/readable-stream/lib/internal/validators.js\\\")\\nconst { Promise } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst {\\n  isClosed,\\n  isReadable,\\n  isReadableNodeStream,\\n  isReadableFinished,\\n  isReadableErrored,\\n  isWritable,\\n  isWritableNodeStream,\\n  isWritableFinished,\\n  isWritableErrored,\\n  isNodeStream,\\n  willEmitClose: _willEmitClose\\n} = __webpack_require__(/*! ./utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nfunction isRequest(stream) {\\n  return stream.setHeader && typeof stream.abort === 'function'\\n}\\nconst nop = () => {}\\nfunction eos(stream, options, callback) {\\n  var _options$readable, _options$writable\\n  if (arguments.length === 2) {\\n    callback = options\\n    options = kEmptyObject\\n  } else if (options == null) {\\n    options = kEmptyObject\\n  } else {\\n    validateObject(options, 'options')\\n  }\\n  validateFunction(callback, 'callback')\\n  validateAbortSignal(options.signal, 'options.signal')\\n  callback = once(callback)\\n  const readable =\\n    (_options$readable = options.readable) !== null && _options$readable !== undefined\\n      ? _options$readable\\n      : isReadableNodeStream(stream)\\n  const writable =\\n    (_options$writable = options.writable) !== null && _options$writable !== undefined\\n      ? _options$writable\\n      : isWritableNodeStream(stream)\\n  if (!isNodeStream(stream)) {\\n    // TODO: Webstreams.\\n    throw new ERR_INVALID_ARG_TYPE('stream', 'Stream', stream)\\n  }\\n  const wState = stream._writableState\\n  const rState = stream._readableState\\n  const onlegacyfinish = () => {\\n    if (!stream.writable) {\\n      onfinish()\\n    }\\n  }\\n\\n  // TODO (ronag): Improve soft detection to include core modules and\\n  // common ecosystem modules that do properly emit 'close' but fail\\n  // this generic check.\\n  let willEmitClose =\\n    _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\\n  let writableFinished = isWritableFinished(stream, false)\\n  const onfinish = () => {\\n    writableFinished = true\\n    // Stream should not be destroyed here. If it is that\\n    // means that user space is doing something differently and\\n    // we cannot trust willEmitClose.\\n    if (stream.destroyed) {\\n      willEmitClose = false\\n    }\\n    if (willEmitClose && (!stream.readable || readable)) {\\n      return\\n    }\\n    if (!readable || readableFinished) {\\n      callback.call(stream)\\n    }\\n  }\\n  let readableFinished = isReadableFinished(stream, false)\\n  const onend = () => {\\n    readableFinished = true\\n    // Stream should not be destroyed here. If it is that\\n    // means that user space is doing something differently and\\n    // we cannot trust willEmitClose.\\n    if (stream.destroyed) {\\n      willEmitClose = false\\n    }\\n    if (willEmitClose && (!stream.writable || writable)) {\\n      return\\n    }\\n    if (!writable || writableFinished) {\\n      callback.call(stream)\\n    }\\n  }\\n  const onerror = (err) => {\\n    callback.call(stream, err)\\n  }\\n  let closed = isClosed(stream)\\n  const onclose = () => {\\n    closed = true\\n    const errored = isWritableErrored(stream) || isReadableErrored(stream)\\n    if (errored && typeof errored !== 'boolean') {\\n      return callback.call(stream, errored)\\n    }\\n    if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\\n      if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\\n    }\\n    if (writable && !writableFinished) {\\n      if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\\n    }\\n    callback.call(stream)\\n  }\\n  const onrequest = () => {\\n    stream.req.on('finish', onfinish)\\n  }\\n  if (isRequest(stream)) {\\n    stream.on('complete', onfinish)\\n    if (!willEmitClose) {\\n      stream.on('abort', onclose)\\n    }\\n    if (stream.req) {\\n      onrequest()\\n    } else {\\n      stream.on('request', onrequest)\\n    }\\n  } else if (writable && !wState) {\\n    // legacy streams\\n    stream.on('end', onlegacyfinish)\\n    stream.on('close', onlegacyfinish)\\n  }\\n\\n  // Not all streams will emit 'close' after 'aborted'.\\n  if (!willEmitClose && typeof stream.aborted === 'boolean') {\\n    stream.on('aborted', onclose)\\n  }\\n  stream.on('end', onend)\\n  stream.on('finish', onfinish)\\n  if (options.error !== false) {\\n    stream.on('error', onerror)\\n  }\\n  stream.on('close', onclose)\\n  if (closed) {\\n    process.nextTick(onclose)\\n  } else if (\\n    (wState !== null && wState !== undefined && wState.errorEmitted) ||\\n    (rState !== null && rState !== undefined && rState.errorEmitted)\\n  ) {\\n    if (!willEmitClose) {\\n      process.nextTick(onclose)\\n    }\\n  } else if (\\n    !readable &&\\n    (!willEmitClose || isReadable(stream)) &&\\n    (writableFinished || isWritable(stream) === false)\\n  ) {\\n    process.nextTick(onclose)\\n  } else if (\\n    !writable &&\\n    (!willEmitClose || isWritable(stream)) &&\\n    (readableFinished || isReadable(stream) === false)\\n  ) {\\n    process.nextTick(onclose)\\n  } else if (rState && stream.req && stream.aborted) {\\n    process.nextTick(onclose)\\n  }\\n  const cleanup = () => {\\n    callback = nop\\n    stream.removeListener('aborted', onclose)\\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  if (options.signal && !closed) {\\n    const abort = () => {\\n      // Keep it because cleanup removes it.\\n      const endCallback = callback\\n      cleanup()\\n      endCallback.call(\\n        stream,\\n        new AbortError(undefined, {\\n          cause: options.signal.reason\\n        })\\n      )\\n    }\\n    if (options.signal.aborted) {\\n      process.nextTick(abort)\\n    } else {\\n      const originalCallback = callback\\n      callback = once((...args) => {\\n        options.signal.removeEventListener('abort', abort)\\n        originalCallback.apply(stream, args)\\n      })\\n      options.signal.addEventListener('abort', abort)\\n    }\\n  }\\n  return cleanup\\n}\\nfunction finished(stream, opts) {\\n  return new Promise((resolve, reject) => {\\n    eos(stream, opts, (err) => {\\n      if (err) {\\n        reject(err)\\n      } else {\\n        resolve()\\n      }\\n    })\\n  })\\n}\\nmodule.exports = eos\\nmodule.exports.finished = finished\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/from.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/from.js ***!\n  \\*******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\n/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n\\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { Buffer } = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = (__webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\").codes)\\nfunction from(Readable, iterable, opts) {\\n  let iterator\\n  if (typeof iterable === 'string' || iterable instanceof Buffer) {\\n    return new Readable({\\n      objectMode: true,\\n      ...opts,\\n      read() {\\n        this.push(iterable)\\n        this.push(null)\\n      }\\n    })\\n  }\\n  let isAsync\\n  if (iterable && iterable[SymbolAsyncIterator]) {\\n    isAsync = true\\n    iterator = iterable[SymbolAsyncIterator]()\\n  } else if (iterable && iterable[SymbolIterator]) {\\n    isAsync = false\\n    iterator = iterable[SymbolIterator]()\\n  } else {\\n    throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\\n  }\\n  const readable = new Readable({\\n    objectMode: true,\\n    highWaterMark: 1,\\n    // TODO(ronag): What options should be allowed?\\n    ...opts\\n  })\\n\\n  // Flag to protect against _read\\n  // being called before last iteration completion.\\n  let reading = false\\n  readable._read = function () {\\n    if (!reading) {\\n      reading = true\\n      next()\\n    }\\n  }\\n  readable._destroy = function (error, cb) {\\n    PromisePrototypeThen(\\n      close(error),\\n      () => process.nextTick(cb, error),\\n      // nextTick is here in case cb throws\\n      (e) => process.nextTick(cb, e || error)\\n    )\\n  }\\n  async function close(error) {\\n    const hadError = error !== undefined && error !== null\\n    const hasThrow = typeof iterator.throw === 'function'\\n    if (hadError && hasThrow) {\\n      const { value, done } = await iterator.throw(error)\\n      await value\\n      if (done) {\\n        return\\n      }\\n    }\\n    if (typeof iterator.return === 'function') {\\n      const { value } = await iterator.return()\\n      await value\\n    }\\n  }\\n  async function next() {\\n    for (;;) {\\n      try {\\n        const { value, done } = isAsync ? await iterator.next() : iterator.next()\\n        if (done) {\\n          readable.push(null)\\n        } else {\\n          const res = value && typeof value.then === 'function' ? await value : value\\n          if (res === null) {\\n            reading = false\\n            throw new ERR_STREAM_NULL_VALUES()\\n          } else if (readable.push(res)) {\\n            continue\\n          } else {\\n            reading = false\\n          }\\n        }\\n      } catch (err) {\\n        readable.destroy(err)\\n      }\\n      break\\n    }\\n  }\\n  return readable\\n}\\nmodule.exports = from\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/from.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/legacy.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/legacy.js ***!\n  \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { ArrayIsArray, ObjectSetPrototypeOf } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \\\"./node_modules/events/events.js\\\")\\nfunction Stream(opts) {\\n  EE.call(this, opts)\\n}\\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\\nObjectSetPrototypeOf(Stream, EE)\\nStream.prototype.pipe = function (dest, options) {\\n  const source = this\\n  function ondata(chunk) {\\n    if (dest.writable && dest.write(chunk) === false && source.pause) {\\n      source.pause()\\n    }\\n  }\\n  source.on('data', ondata)\\n  function ondrain() {\\n    if (source.readable && source.resume) {\\n      source.resume()\\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  let didOnEnd = false\\n  function onend() {\\n    if (didOnEnd) return\\n    didOnEnd = true\\n    dest.end()\\n  }\\n  function onclose() {\\n    if (didOnEnd) return\\n    didOnEnd = true\\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      this.emit('error', er)\\n    }\\n  }\\n  prependListener(source, 'error', onerror)\\n  prependListener(dest, '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    source.removeListener('end', onend)\\n    source.removeListener('close', onclose)\\n    source.removeListener('error', onerror)\\n    dest.removeListener('error', onerror)\\n    source.removeListener('end', cleanup)\\n    source.removeListener('close', cleanup)\\n    dest.removeListener('close', cleanup)\\n  }\\n  source.on('end', cleanup)\\n  source.on('close', cleanup)\\n  dest.on('close', cleanup)\\n  dest.emit('pipe', source)\\n\\n  // Allow for unix-like usage: A.pipe(B).pipe(C)\\n  return dest\\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)\\n  else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\\n  else emitter._events[event] = [fn, emitter._events[event]]\\n}\\nmodule.exports = {\\n  Stream,\\n  prependListener\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/legacy.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/operators.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/operators.js ***!\n  \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \\\"./node_modules/abort-controller/browser.js\\\").AbortController)\\nconst {\\n  codes: { ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\\n  AbortError\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { validateAbortSignal, validateInteger, validateObject } = __webpack_require__(/*! ../validators */ \\\"./node_modules/readable-stream/lib/internal/validators.js\\\")\\nconst kWeakHandler = (__webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\").Symbol)('kWeak')\\nconst { finished } = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nconst {\\n  ArrayPrototypePush,\\n  MathFloor,\\n  Number,\\n  NumberIsNaN,\\n  Promise,\\n  PromiseReject,\\n  PromisePrototypeThen,\\n  Symbol\\n} = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst kEmpty = Symbol('kEmpty')\\nconst kEof = Symbol('kEof')\\nfunction map(fn, options) {\\n  if (typeof fn !== 'function') {\\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\\n  }\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  let concurrency = 1\\n  if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\\n    concurrency = MathFloor(options.concurrency)\\n  }\\n  validateInteger(concurrency, 'concurrency', 1)\\n  return async function* map() {\\n    var _options$signal, _options$signal2\\n    const ac = new AbortController()\\n    const stream = this\\n    const queue = []\\n    const signal = ac.signal\\n    const signalOpt = {\\n      signal\\n    }\\n    const abort = () => ac.abort()\\n    if (\\n      options !== null &&\\n      options !== undefined &&\\n      (_options$signal = options.signal) !== null &&\\n      _options$signal !== undefined &&\\n      _options$signal.aborted\\n    ) {\\n      abort()\\n    }\\n    options === null || options === undefined\\n      ? undefined\\n      : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\\n      ? undefined\\n      : _options$signal2.addEventListener('abort', abort)\\n    let next\\n    let resume\\n    let done = false\\n    function onDone() {\\n      done = true\\n    }\\n    async function pump() {\\n      try {\\n        for await (let val of stream) {\\n          var _val\\n          if (done) {\\n            return\\n          }\\n          if (signal.aborted) {\\n            throw new AbortError()\\n          }\\n          try {\\n            val = fn(val, signalOpt)\\n          } catch (err) {\\n            val = PromiseReject(err)\\n          }\\n          if (val === kEmpty) {\\n            continue\\n          }\\n          if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\\n            val.catch(onDone)\\n          }\\n          queue.push(val)\\n          if (next) {\\n            next()\\n            next = null\\n          }\\n          if (!done && queue.length && queue.length >= concurrency) {\\n            await new Promise((resolve) => {\\n              resume = resolve\\n            })\\n          }\\n        }\\n        queue.push(kEof)\\n      } catch (err) {\\n        const val = PromiseReject(err)\\n        PromisePrototypeThen(val, undefined, onDone)\\n        queue.push(val)\\n      } finally {\\n        var _options$signal3\\n        done = true\\n        if (next) {\\n          next()\\n          next = null\\n        }\\n        options === null || options === undefined\\n          ? undefined\\n          : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\\n          ? undefined\\n          : _options$signal3.removeEventListener('abort', abort)\\n      }\\n    }\\n    pump()\\n    try {\\n      while (true) {\\n        while (queue.length > 0) {\\n          const val = await queue[0]\\n          if (val === kEof) {\\n            return\\n          }\\n          if (signal.aborted) {\\n            throw new AbortError()\\n          }\\n          if (val !== kEmpty) {\\n            yield val\\n          }\\n          queue.shift()\\n          if (resume) {\\n            resume()\\n            resume = null\\n          }\\n        }\\n        await new Promise((resolve) => {\\n          next = resolve\\n        })\\n      }\\n    } finally {\\n      ac.abort()\\n      done = true\\n      if (resume) {\\n        resume()\\n        resume = null\\n      }\\n    }\\n  }.call(this)\\n}\\nfunction asIndexedPairs(options = undefined) {\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  return async function* asIndexedPairs() {\\n    let index = 0\\n    for await (const val of this) {\\n      var _options$signal4\\n      if (\\n        options !== null &&\\n        options !== undefined &&\\n        (_options$signal4 = options.signal) !== null &&\\n        _options$signal4 !== undefined &&\\n        _options$signal4.aborted\\n      ) {\\n        throw new AbortError({\\n          cause: options.signal.reason\\n        })\\n      }\\n      yield [index++, val]\\n    }\\n  }.call(this)\\n}\\nasync function some(fn, options = undefined) {\\n  for await (const unused of filter.call(this, fn, options)) {\\n    return true\\n  }\\n  return false\\n}\\nasync function every(fn, options = undefined) {\\n  if (typeof fn !== 'function') {\\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\\n  }\\n  // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\\n  return !(await some.call(\\n    this,\\n    async (...args) => {\\n      return !(await fn(...args))\\n    },\\n    options\\n  ))\\n}\\nasync function find(fn, options) {\\n  for await (const result of filter.call(this, fn, options)) {\\n    return result\\n  }\\n  return undefined\\n}\\nasync function forEach(fn, options) {\\n  if (typeof fn !== 'function') {\\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\\n  }\\n  async function forEachFn(value, options) {\\n    await fn(value, options)\\n    return kEmpty\\n  }\\n  // eslint-disable-next-line no-unused-vars\\n  for await (const unused of map.call(this, forEachFn, options));\\n}\\nfunction filter(fn, options) {\\n  if (typeof fn !== 'function') {\\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\\n  }\\n  async function filterFn(value, options) {\\n    if (await fn(value, options)) {\\n      return value\\n    }\\n    return kEmpty\\n  }\\n  return map.call(this, filterFn, options)\\n}\\n\\n// Specific to provide better error to reduce since the argument is only\\n// missing if the stream has no items in it - but the code is still appropriate\\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\\n  constructor() {\\n    super('reduce')\\n    this.message = 'Reduce of an empty stream requires an initial value'\\n  }\\n}\\nasync function reduce(reducer, initialValue, options) {\\n  var _options$signal5\\n  if (typeof reducer !== 'function') {\\n    throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\\n  }\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  let hasInitialValue = arguments.length > 1\\n  if (\\n    options !== null &&\\n    options !== undefined &&\\n    (_options$signal5 = options.signal) !== null &&\\n    _options$signal5 !== undefined &&\\n    _options$signal5.aborted\\n  ) {\\n    const err = new AbortError(undefined, {\\n      cause: options.signal.reason\\n    })\\n    this.once('error', () => {}) // The error is already propagated\\n    await finished(this.destroy(err))\\n    throw err\\n  }\\n  const ac = new AbortController()\\n  const signal = ac.signal\\n  if (options !== null && options !== undefined && options.signal) {\\n    const opts = {\\n      once: true,\\n      [kWeakHandler]: this\\n    }\\n    options.signal.addEventListener('abort', () => ac.abort(), opts)\\n  }\\n  let gotAnyItemFromStream = false\\n  try {\\n    for await (const value of this) {\\n      var _options$signal6\\n      gotAnyItemFromStream = true\\n      if (\\n        options !== null &&\\n        options !== undefined &&\\n        (_options$signal6 = options.signal) !== null &&\\n        _options$signal6 !== undefined &&\\n        _options$signal6.aborted\\n      ) {\\n        throw new AbortError()\\n      }\\n      if (!hasInitialValue) {\\n        initialValue = value\\n        hasInitialValue = true\\n      } else {\\n        initialValue = await reducer(initialValue, value, {\\n          signal\\n        })\\n      }\\n    }\\n    if (!gotAnyItemFromStream && !hasInitialValue) {\\n      throw new ReduceAwareErrMissingArgs()\\n    }\\n  } finally {\\n    ac.abort()\\n  }\\n  return initialValue\\n}\\nasync function toArray(options) {\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  const result = []\\n  for await (const val of this) {\\n    var _options$signal7\\n    if (\\n      options !== null &&\\n      options !== undefined &&\\n      (_options$signal7 = options.signal) !== null &&\\n      _options$signal7 !== undefined &&\\n      _options$signal7.aborted\\n    ) {\\n      throw new AbortError(undefined, {\\n        cause: options.signal.reason\\n      })\\n    }\\n    ArrayPrototypePush(result, val)\\n  }\\n  return result\\n}\\nfunction flatMap(fn, options) {\\n  const values = map.call(this, fn, options)\\n  return async function* flatMap() {\\n    for await (const val of values) {\\n      yield* val\\n    }\\n  }.call(this)\\n}\\nfunction toIntegerOrInfinity(number) {\\n  // We coerce here to align with the spec\\n  // https://github.com/tc39/proposal-iterator-helpers/issues/169\\n  number = Number(number)\\n  if (NumberIsNaN(number)) {\\n    return 0\\n  }\\n  if (number < 0) {\\n    throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\\n  }\\n  return number\\n}\\nfunction drop(number, options = undefined) {\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  number = toIntegerOrInfinity(number)\\n  return async function* drop() {\\n    var _options$signal8\\n    if (\\n      options !== null &&\\n      options !== undefined &&\\n      (_options$signal8 = options.signal) !== null &&\\n      _options$signal8 !== undefined &&\\n      _options$signal8.aborted\\n    ) {\\n      throw new AbortError()\\n    }\\n    for await (const val of this) {\\n      var _options$signal9\\n      if (\\n        options !== null &&\\n        options !== undefined &&\\n        (_options$signal9 = options.signal) !== null &&\\n        _options$signal9 !== undefined &&\\n        _options$signal9.aborted\\n      ) {\\n        throw new AbortError()\\n      }\\n      if (number-- <= 0) {\\n        yield val\\n      }\\n    }\\n  }.call(this)\\n}\\nfunction take(number, options = undefined) {\\n  if (options != null) {\\n    validateObject(options, 'options')\\n  }\\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\\n    validateAbortSignal(options.signal, 'options.signal')\\n  }\\n  number = toIntegerOrInfinity(number)\\n  return async function* take() {\\n    var _options$signal10\\n    if (\\n      options !== null &&\\n      options !== undefined &&\\n      (_options$signal10 = options.signal) !== null &&\\n      _options$signal10 !== undefined &&\\n      _options$signal10.aborted\\n    ) {\\n      throw new AbortError()\\n    }\\n    for await (const val of this) {\\n      var _options$signal11\\n      if (\\n        options !== null &&\\n        options !== undefined &&\\n        (_options$signal11 = options.signal) !== null &&\\n        _options$signal11 !== undefined &&\\n        _options$signal11.aborted\\n      ) {\\n        throw new AbortError()\\n      }\\n      if (number-- > 0) {\\n        yield val\\n      } else {\\n        return\\n      }\\n    }\\n  }.call(this)\\n}\\nmodule.exports.streamReturningOperators = {\\n  asIndexedPairs,\\n  drop,\\n  filter,\\n  flatMap,\\n  map,\\n  take\\n}\\nmodule.exports.promiseReturningOperators = {\\n  every,\\n  forEach,\\n  reduce,\\n  toArray,\\n  some,\\n  find\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/operators.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/passthrough.js\":\n/*!**************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/passthrough.js ***!\n  \\**************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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\\nconst { ObjectSetPrototypeOf } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nmodule.exports = PassThrough\\nconst Transform = __webpack_require__(/*! ./transform */ \\\"./node_modules/readable-stream/lib/internal/streams/transform.js\\\")\\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\\nObjectSetPrototypeOf(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\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/passthrough.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/pipeline.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/pipeline.js ***!\n  \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n// Ported from https://github.com/mafintosh/pump with\\n// permission from the author, Mathias Buus (@mafintosh).\\n\\n;('use strict')\\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst eos = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nconst { once } = __webpack_require__(/*! ../../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst Duplex = __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\nconst {\\n  aggregateTwoErrors,\\n  codes: {\\n    ERR_INVALID_ARG_TYPE,\\n    ERR_INVALID_RETURN_VALUE,\\n    ERR_MISSING_ARGS,\\n    ERR_STREAM_DESTROYED,\\n    ERR_STREAM_PREMATURE_CLOSE\\n  },\\n  AbortError\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { validateFunction, validateAbortSignal } = __webpack_require__(/*! ../validators */ \\\"./node_modules/readable-stream/lib/internal/validators.js\\\")\\nconst { isIterable, isReadable, isReadableNodeStream, isNodeStream } = __webpack_require__(/*! ./utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \\\"./node_modules/abort-controller/browser.js\\\").AbortController)\\nlet PassThrough\\nlet Readable\\nfunction destroyer(stream, reading, writing) {\\n  let finished = false\\n  stream.on('close', () => {\\n    finished = true\\n  })\\n  const cleanup = eos(\\n    stream,\\n    {\\n      readable: reading,\\n      writable: writing\\n    },\\n    (err) => {\\n      finished = !err\\n    }\\n  )\\n  return {\\n    destroy: (err) => {\\n      if (finished) return\\n      finished = true\\n      destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\\n    },\\n    cleanup\\n  }\\n}\\nfunction popCallback(streams) {\\n  // Streams should never be an empty array. It should always contain at least\\n  // a single stream. Therefore optimize for the average case instead of\\n  // checking for length === 0 as well.\\n  validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\\n  return streams.pop()\\n}\\nfunction makeAsyncIterable(val) {\\n  if (isIterable(val)) {\\n    return val\\n  } else if (isReadableNodeStream(val)) {\\n    // Legacy streams are not Iterable.\\n    return fromReadable(val)\\n  }\\n  throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\\n}\\nasync function* fromReadable(val) {\\n  if (!Readable) {\\n    Readable = __webpack_require__(/*! ./readable */ \\\"./node_modules/readable-stream/lib/internal/streams/readable.js\\\")\\n  }\\n  yield* Readable.prototype[SymbolAsyncIterator].call(val)\\n}\\nasync function pump(iterable, writable, finish, { end }) {\\n  let error\\n  let onresolve = null\\n  const resume = (err) => {\\n    if (err) {\\n      error = err\\n    }\\n    if (onresolve) {\\n      const callback = onresolve\\n      onresolve = null\\n      callback()\\n    }\\n  }\\n  const wait = () =>\\n    new Promise((resolve, reject) => {\\n      if (error) {\\n        reject(error)\\n      } else {\\n        onresolve = () => {\\n          if (error) {\\n            reject(error)\\n          } else {\\n            resolve()\\n          }\\n        }\\n      }\\n    })\\n  writable.on('drain', resume)\\n  const cleanup = eos(\\n    writable,\\n    {\\n      readable: false\\n    },\\n    resume\\n  )\\n  try {\\n    if (writable.writableNeedDrain) {\\n      await wait()\\n    }\\n    for await (const chunk of iterable) {\\n      if (!writable.write(chunk)) {\\n        await wait()\\n      }\\n    }\\n    if (end) {\\n      writable.end()\\n    }\\n    await wait()\\n    finish()\\n  } catch (err) {\\n    finish(error !== err ? aggregateTwoErrors(error, err) : err)\\n  } finally {\\n    cleanup()\\n    writable.off('drain', resume)\\n  }\\n}\\nfunction pipeline(...streams) {\\n  return pipelineImpl(streams, once(popCallback(streams)))\\n}\\nfunction pipelineImpl(streams, callback, opts) {\\n  if (streams.length === 1 && ArrayIsArray(streams[0])) {\\n    streams = streams[0]\\n  }\\n  if (streams.length < 2) {\\n    throw new ERR_MISSING_ARGS('streams')\\n  }\\n  const ac = new AbortController()\\n  const signal = ac.signal\\n  const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\\n\\n  // Need to cleanup event listeners if last stream is readable\\n  // https://github.com/nodejs/node/issues/35452\\n  const lastStreamCleanup = []\\n  validateAbortSignal(outerSignal, 'options.signal')\\n  function abort() {\\n    finishImpl(new AbortError())\\n  }\\n  outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\\n  let error\\n  let value\\n  const destroys = []\\n  let finishCount = 0\\n  function finish(err) {\\n    finishImpl(err, --finishCount === 0)\\n  }\\n  function finishImpl(err, final) {\\n    if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\\n      error = err\\n    }\\n    if (!error && !final) {\\n      return\\n    }\\n    while (destroys.length) {\\n      destroys.shift()(error)\\n    }\\n    outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\\n    ac.abort()\\n    if (final) {\\n      if (!error) {\\n        lastStreamCleanup.forEach((fn) => fn())\\n      }\\n      process.nextTick(callback, error, value)\\n    }\\n  }\\n  let ret\\n  for (let i = 0; i < streams.length; i++) {\\n    const stream = streams[i]\\n    const reading = i < streams.length - 1\\n    const writing = i > 0\\n    const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\\n    const isLastStream = i === streams.length - 1\\n    if (isNodeStream(stream)) {\\n      if (end) {\\n        const { destroy, cleanup } = destroyer(stream, reading, writing)\\n        destroys.push(destroy)\\n        if (isReadable(stream) && isLastStream) {\\n          lastStreamCleanup.push(cleanup)\\n        }\\n      }\\n\\n      // Catch stream errors that occur after pipe/pump has completed.\\n      function onError(err) {\\n        if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\\n          finish(err)\\n        }\\n      }\\n      stream.on('error', onError)\\n      if (isReadable(stream) && isLastStream) {\\n        lastStreamCleanup.push(() => {\\n          stream.removeListener('error', onError)\\n        })\\n      }\\n    }\\n    if (i === 0) {\\n      if (typeof stream === 'function') {\\n        ret = stream({\\n          signal\\n        })\\n        if (!isIterable(ret)) {\\n          throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\\n        }\\n      } else if (isIterable(stream) || isReadableNodeStream(stream)) {\\n        ret = stream\\n      } else {\\n        ret = Duplex.from(stream)\\n      }\\n    } else if (typeof stream === 'function') {\\n      ret = makeAsyncIterable(ret)\\n      ret = stream(ret, {\\n        signal\\n      })\\n      if (reading) {\\n        if (!isIterable(ret, true)) {\\n          throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\\n        }\\n      } else {\\n        var _ret\\n        if (!PassThrough) {\\n          PassThrough = __webpack_require__(/*! ./passthrough */ \\\"./node_modules/readable-stream/lib/internal/streams/passthrough.js\\\")\\n        }\\n\\n        // If the last argument to pipeline is not a stream\\n        // we must create a proxy stream so that pipeline(...)\\n        // always returns a stream which can be further\\n        // composed through `.pipe(stream)`.\\n\\n        const pt = new PassThrough({\\n          objectMode: true\\n        })\\n\\n        // Handle Promises/A+ spec, `then` could be a getter that throws on\\n        // second use.\\n        const then = (_ret = ret) === null || _ret === undefined ? undefined : _ret.then\\n        if (typeof then === 'function') {\\n          finishCount++\\n          then.call(\\n            ret,\\n            (val) => {\\n              value = val\\n              if (val != null) {\\n                pt.write(val)\\n              }\\n              if (end) {\\n                pt.end()\\n              }\\n              process.nextTick(finish)\\n            },\\n            (err) => {\\n              pt.destroy(err)\\n              process.nextTick(finish, err)\\n            }\\n          )\\n        } else if (isIterable(ret, true)) {\\n          finishCount++\\n          pump(ret, pt, finish, {\\n            end\\n          })\\n        } else {\\n          throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\\n        }\\n        ret = pt\\n        const { destroy, cleanup } = destroyer(ret, false, true)\\n        destroys.push(destroy)\\n        if (isLastStream) {\\n          lastStreamCleanup.push(cleanup)\\n        }\\n      }\\n    } else if (isNodeStream(stream)) {\\n      if (isReadableNodeStream(ret)) {\\n        finishCount += 2\\n        const cleanup = pipe(ret, stream, finish, {\\n          end\\n        })\\n        if (isReadable(stream) && isLastStream) {\\n          lastStreamCleanup.push(cleanup)\\n        }\\n      } else if (isIterable(ret)) {\\n        finishCount++\\n        pump(ret, stream, finish, {\\n          end\\n        })\\n      } else {\\n        throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], ret)\\n      }\\n      ret = stream\\n    } else {\\n      ret = Duplex.from(stream)\\n    }\\n  }\\n  if (\\n    (signal !== null && signal !== undefined && signal.aborted) ||\\n    (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\\n  ) {\\n    process.nextTick(abort)\\n  }\\n  return ret\\n}\\nfunction pipe(src, dst, finish, { end }) {\\n  let ended = false\\n  dst.on('close', () => {\\n    if (!ended) {\\n      // Finish if the destination closes before the source has completed.\\n      finish(new ERR_STREAM_PREMATURE_CLOSE())\\n    }\\n  })\\n  src.pipe(dst, {\\n    end\\n  })\\n  if (end) {\\n    // Compat. Before node v10.12.0 stdio used to throw an error so\\n    // pipe() did/does not end() stdio destinations.\\n    // Now they allow it but \\\"secretly\\\" don't close the underlying fd.\\n    src.once('end', () => {\\n      ended = true\\n      dst.end()\\n    })\\n  } else {\\n    finish()\\n  }\\n  eos(\\n    src,\\n    {\\n      readable: true,\\n      writable: false\\n    },\\n    (err) => {\\n      const rState = src._readableState\\n      if (\\n        err &&\\n        err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\\n        rState &&\\n        rState.ended &&\\n        !rState.errored &&\\n        !rState.errorEmitted\\n      ) {\\n        // Some readable streams will emit 'close' before 'end'. However, since\\n        // this is on the readable side 'end' should still be emitted if the\\n        // stream has been ended and no error emitted. This should be allowed in\\n        // favor of backwards compatibility. Since the stream is piped to a\\n        // destination this should not result in any observable difference.\\n        // We don't need to check if this is a writable premature close since\\n        // eos will only fail with premature close on the reading side for\\n        // duplex streams.\\n        src.once('end', finish).once('error', finish)\\n      } else {\\n        finish(err)\\n      }\\n    }\\n  )\\n  return eos(\\n    dst,\\n    {\\n      readable: false,\\n      writable: true\\n    },\\n    finish\\n  )\\n}\\nmodule.exports = {\\n  pipelineImpl,\\n  pipeline\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/pipeline.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/readable.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/readable.js ***!\n  \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n;('use strict')\\nconst {\\n  ArrayPrototypeIndexOf,\\n  NumberIsInteger,\\n  NumberIsNaN,\\n  NumberParseInt,\\n  ObjectDefineProperties,\\n  ObjectKeys,\\n  ObjectSetPrototypeOf,\\n  Promise,\\n  SafeSet,\\n  SymbolAsyncIterator,\\n  Symbol\\n} = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nmodule.exports = Readable\\nReadable.ReadableState = ReadableState\\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \\\"./node_modules/events/events.js\\\")\\nconst { Stream, prependListener } = __webpack_require__(/*! ./legacy */ \\\"./node_modules/readable-stream/lib/internal/streams/legacy.js\\\")\\nconst { Buffer } = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst { addAbortSignal } = __webpack_require__(/*! ./add-abort-signal */ \\\"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\\\")\\nconst eos = __webpack_require__(/*! ./end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nlet debug = (__webpack_require__(/*! ../../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\").debuglog)('stream', (fn) => {\\n  debug = fn\\n})\\nconst BufferList = __webpack_require__(/*! ./buffer_list */ \\\"./node_modules/readable-stream/lib/internal/streams/buffer_list.js\\\")\\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst { getHighWaterMark, getDefaultHighWaterMark } = __webpack_require__(/*! ./state */ \\\"./node_modules/readable-stream/lib/internal/streams/state.js\\\")\\nconst {\\n  aggregateTwoErrors,\\n  codes: {\\n    ERR_INVALID_ARG_TYPE,\\n    ERR_METHOD_NOT_IMPLEMENTED,\\n    ERR_OUT_OF_RANGE,\\n    ERR_STREAM_PUSH_AFTER_EOF,\\n    ERR_STREAM_UNSHIFT_AFTER_END_EVENT\\n  }\\n} = __webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { validateObject } = __webpack_require__(/*! ../validators */ \\\"./node_modules/readable-stream/lib/internal/validators.js\\\")\\nconst kPaused = Symbol('kPaused')\\nconst { StringDecoder } = __webpack_require__(/*! string_decoder */ \\\"./node_modules/string_decoder/lib/string_decoder.js\\\")\\nconst from = __webpack_require__(/*! ./from */ \\\"./node_modules/readable-stream/lib/internal/streams/from.js\\\")\\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\\nObjectSetPrototypeOf(Readable, Stream)\\nconst nop = () => {}\\nconst { errorOrDestroy } = destroyImpl\\nfunction ReadableState(options, stream, isDuplex) {\\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 __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\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 && options.objectMode)\\n  if (isDuplex) this.objectMode = this.objectMode || !!(options && 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 = options\\n    ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\\n    : getDefaultHighWaterMark(false)\\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 = []\\n  this.flowing = null\\n  this.ended = false\\n  this.endEmitted = false\\n  this.reading = false\\n\\n  // Stream is still being constructed and cannot be\\n  // destroyed until construction finished or failed.\\n  // Async construction is opt in, therefore we start as\\n  // constructed.\\n  this.constructed = true\\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[kPaused] = null\\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 || options.emitClose !== false\\n\\n  // Should .destroy() be called after 'end' (and potentially 'finish').\\n  this.autoDestroy = !options || options.autoDestroy !== false\\n\\n  // Has it been destroyed.\\n  this.destroyed = false\\n\\n  // Indicates whether the stream has errored. When true no further\\n  // _read calls, 'data' or 'readable' events should occur. This is needed\\n  // since when autoDestroy is disabled we need a way to tell whether the\\n  // stream has failed.\\n  this.errored = null\\n\\n  // Indicates whether the stream has finished destroying.\\n  this.closed = false\\n\\n  // True if close has been emitted or would have been emitted\\n  // depending on emitClose.\\n  this.closeEmitted = 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 && options.defaultEncoding) || 'utf8'\\n\\n  // Ref the piped dest which we need a drain event on it\\n  // type: null | Writable | Set<Writable>.\\n  this.awaitDrainWriters = null\\n  this.multiAwaitDrain = false\\n\\n  // If true, a maybeReadMore has been scheduled.\\n  this.readingMore = false\\n  this.dataEmitted = false\\n  this.decoder = null\\n  this.encoding = null\\n  if (options && options.encoding) {\\n    this.decoder = new StringDecoder(options.encoding)\\n    this.encoding = options.encoding\\n  }\\n}\\nfunction Readable(options) {\\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  const isDuplex = this instanceof __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\n  this._readableState = new ReadableState(options, this, isDuplex)\\n  if (options) {\\n    if (typeof options.read === 'function') this._read = options.read\\n    if (typeof options.destroy === 'function') this._destroy = options.destroy\\n    if (typeof options.construct === 'function') this._construct = options.construct\\n    if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\\n  }\\n  Stream.call(this, options)\\n  destroyImpl.construct(this, () => {\\n    if (this._readableState.needReadable) {\\n      maybeReadMore(this, this._readableState)\\n    }\\n  })\\n}\\nReadable.prototype.destroy = destroyImpl.destroy\\nReadable.prototype._undestroy = destroyImpl.undestroy\\nReadable.prototype._destroy = function (err, cb) {\\n  cb(err)\\n}\\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\\n  this.destroy(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  return readableAddChunk(this, chunk, encoding, false)\\n}\\n\\n// Unshift should *always* be something directly out of read().\\nReadable.prototype.unshift = function (chunk, encoding) {\\n  return readableAddChunk(this, chunk, encoding, true)\\n}\\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\\n  debug('readableAddChunk', chunk)\\n  const state = stream._readableState\\n  let err\\n  if (!state.objectMode) {\\n    if (typeof chunk === 'string') {\\n      encoding = encoding || state.defaultEncoding\\n      if (state.encoding !== encoding) {\\n        if (addToFront && state.encoding) {\\n          // When unshifting, if state.encoding is set, we have to save\\n          // the string in the BufferList with the state encoding.\\n          chunk = Buffer.from(chunk, encoding).toString(state.encoding)\\n        } else {\\n          chunk = Buffer.from(chunk, encoding)\\n          encoding = ''\\n        }\\n      }\\n    } else if (chunk instanceof Buffer) {\\n      encoding = ''\\n    } else if (Stream._isUint8Array(chunk)) {\\n      chunk = Stream._uint8ArrayToBuffer(chunk)\\n      encoding = ''\\n    } else if (chunk != null) {\\n      err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\\n    }\\n  }\\n  if (err) {\\n    errorOrDestroy(stream, err)\\n  } else if (chunk === null) {\\n    state.reading = false\\n    onEofChunk(stream, state)\\n  } else if (state.objectMode || (chunk && chunk.length > 0)) {\\n    if (addToFront) {\\n      if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\\n      else if (state.destroyed || state.errored) return false\\n      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 || state.errored) {\\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)\\n        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  // 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 && stream.listenerCount('data') > 0) {\\n    // Use the guard to avoid creating `Set()` repeatedly\\n    // when we have multiple pipes.\\n    if (state.multiAwaitDrain) {\\n      state.awaitDrainWriters.clear()\\n    } else {\\n      state.awaitDrainWriters = null\\n    }\\n    state.dataEmitted = true\\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)\\n    else state.buffer.push(chunk)\\n    if (state.needReadable) emitReadable(stream)\\n  }\\n  maybeReadMore(stream, state)\\n}\\nReadable.prototype.isPaused = function () {\\n  const state = this._readableState\\n  return state[kPaused] === true || state.flowing === false\\n}\\n\\n// Backwards compatibility.\\nReadable.prototype.setEncoding = function (enc) {\\n  const 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  const buffer = this._readableState.buffer\\n  // Iterate over current buffer to convert already stored Buffers:\\n  let content = ''\\n  for (const data of buffer) {\\n    content += decoder.write(data)\\n  }\\n  buffer.clear()\\n  if (content !== '') buffer.push(content)\\n  this._readableState.length = content.length\\n  return this\\n}\\n\\n// Don't raise the hwm > 1GB.\\nconst MAX_HWM = 0x40000000\\nfunction computeNewHighWaterMark(n) {\\n  if (n > MAX_HWM) {\\n    throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\\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 (NumberIsNaN(n)) {\\n    // Only flow one buffer at a time.\\n    if (state.flowing && state.length) return state.buffer.first().length\\n    return state.length\\n  }\\n  if (n <= state.length) return n\\n  return state.ended ? state.length : 0\\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  // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\\n  // in this scenario, so we are doing it manually.\\n  if (n === undefined) {\\n    n = NaN\\n  } else if (!NumberIsInteger(n)) {\\n    n = NumberParseInt(n, 10)\\n  }\\n  const state = this._readableState\\n  const nOrig = n\\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 !== 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    n === 0 &&\\n    state.needReadable &&\\n    ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\\n  ) {\\n    debug('read: emitReadable', state.length, state.ended)\\n    if (state.length === 0 && state.ended) endReadable(this)\\n    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  let 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, if we're already\\n  // reading, then it's unnecessary, if we're constructing we have to wait,\\n  // and if we're destroyed or errored, then it's not allowed,\\n  if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\\n    doRead = false\\n    debug('reading, ended or constructing', 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\\n    // Call internal read method\\n    try {\\n      this._read(state.highWaterMark)\\n    } catch (err) {\\n      errorOrDestroy(this, err)\\n    }\\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  let ret\\n  if (n > 0) ret = fromList(n, state)\\n  else ret = null\\n  if (ret === null) {\\n    state.needReadable = state.length <= state.highWaterMark\\n    n = 0\\n  } else {\\n    state.length -= n\\n    if (state.multiAwaitDrain) {\\n      state.awaitDrainWriters.clear()\\n    } else {\\n      state.awaitDrainWriters = null\\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  if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\\n    state.dataEmitted = true\\n    this.emit('data', ret)\\n  }\\n  return ret\\n}\\nfunction onEofChunk(stream, state) {\\n  debug('onEofChunk')\\n  if (state.ended) return\\n  if (state.decoder) {\\n    const 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    state.emittedReadable = true\\n    // We have to emit readable now that we are EOF. Modules\\n    // in the ecosystem (e.g. dicer) rely on this event being sync.\\n    emitReadable_(stream)\\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  const 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  const state = stream._readableState\\n  debug('emitReadable_', state.destroyed, state.length, state.ended)\\n  if (!state.destroyed && !state.errored && (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 && state.constructed) {\\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 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 (\\n    !state.reading &&\\n    !state.ended &&\\n    (state.length < state.highWaterMark || (state.flowing && state.length === 0))\\n  ) {\\n    const 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  throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\\n}\\nReadable.prototype.pipe = function (dest, pipeOpts) {\\n  const src = this\\n  const state = this._readableState\\n  if (state.pipes.length === 1) {\\n    if (!state.multiAwaitDrain) {\\n      state.multiAwaitDrain = true\\n      state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\\n    }\\n  }\\n  state.pipes.push(dest)\\n  debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\\n  const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\\n  const endFn = doEnd ? onend : unpipe\\n  if (state.endEmitted) process.nextTick(endFn)\\n  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  let ondrain\\n  let 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    if (ondrain) {\\n      dest.removeListener('drain', ondrain)\\n    }\\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 (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\\n  }\\n  function pause() {\\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 (!cleanedUp) {\\n      if (state.pipes.length === 1 && state.pipes[0] === dest) {\\n        debug('false write response, pause', 0)\\n        state.awaitDrainWriters = dest\\n        state.multiAwaitDrain = false\\n      } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\\n        debug('false write response, pause', state.awaitDrainWriters.size)\\n        state.awaitDrainWriters.add(dest)\\n      }\\n      src.pause()\\n    }\\n    if (!ondrain) {\\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      ondrain = pipeOnDrain(src, dest)\\n      dest.on('drain', ondrain)\\n    }\\n  }\\n  src.on('data', ondata)\\n  function ondata(chunk) {\\n    debug('ondata')\\n    const ret = dest.write(chunk)\\n    debug('dest.write', ret)\\n    if (ret === false) {\\n      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 (dest.listenerCount('error') === 0) {\\n      const s = dest._writableState || dest._readableState\\n      if (s && !s.errorEmitted) {\\n        // User incorrectly emitted 'error' directly on the stream.\\n        errorOrDestroy(dest, er)\\n      } else {\\n        dest.emit('error', er)\\n      }\\n    }\\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\\n  if (dest.writableNeedDrain === true) {\\n    if (state.flowing) {\\n      pause()\\n    }\\n  } else if (!state.flowing) {\\n    debug('pipe resume')\\n    src.resume()\\n  }\\n  return dest\\n}\\nfunction pipeOnDrain(src, dest) {\\n  return function pipeOnDrainFunctionResult() {\\n    const state = src._readableState\\n\\n    // `ondrain` will call directly,\\n    // `this` maybe not a reference to dest,\\n    // so we use the real dest here.\\n    if (state.awaitDrainWriters === dest) {\\n      debug('pipeOnDrain', 1)\\n      state.awaitDrainWriters = null\\n    } else if (state.multiAwaitDrain) {\\n      debug('pipeOnDrain', state.awaitDrainWriters.size)\\n      state.awaitDrainWriters.delete(dest)\\n    }\\n    if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\\n      src.resume()\\n    }\\n  }\\n}\\nReadable.prototype.unpipe = function (dest) {\\n  const state = this._readableState\\n  const unpipeInfo = {\\n    hasUnpiped: false\\n  }\\n\\n  // If we're not piping anywhere, then do nothing.\\n  if (state.pipes.length === 0) return this\\n  if (!dest) {\\n    // remove all.\\n    const dests = state.pipes\\n    state.pipes = []\\n    this.pause()\\n    for (let i = 0; i < dests.length; i++)\\n      dests[i].emit('unpipe', this, {\\n        hasUnpiped: false\\n      })\\n    return this\\n  }\\n\\n  // Try to find the right one.\\n  const index = ArrayPrototypeIndexOf(state.pipes, dest)\\n  if (index === -1) return this\\n  state.pipes.splice(index, 1)\\n  if (state.pipes.length === 0) this.pause()\\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  const res = Stream.prototype.on.call(this, ev, fn)\\n  const 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  const 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.off = Readable.prototype.removeListener\\nReadable.prototype.removeAllListeners = function (ev) {\\n  const 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  const state = self._readableState\\n  state.readableListening = self.listenerCount('readable') > 0\\n  if (state.resumeScheduled && state[kPaused] === false) {\\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  } else if (!state.readableListening) {\\n    state.flowing = null\\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  const 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[kPaused] = 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[kPaused] = true\\n  return this\\n}\\nfunction flow(stream) {\\n  const 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  let paused = false\\n\\n  // TODO (ronag): Should this.destroy(err) emit\\n  // 'error' on the wrapped stream? Would require\\n  // a static factory method, e.g. Readable.wrap(stream).\\n\\n  stream.on('data', (chunk) => {\\n    if (!this.push(chunk) && stream.pause) {\\n      paused = true\\n      stream.pause()\\n    }\\n  })\\n  stream.on('end', () => {\\n    this.push(null)\\n  })\\n  stream.on('error', (err) => {\\n    errorOrDestroy(this, err)\\n  })\\n  stream.on('close', () => {\\n    this.destroy()\\n  })\\n  stream.on('destroy', () => {\\n    this.destroy()\\n  })\\n  this._read = () => {\\n    if (paused && stream.resume) {\\n      paused = false\\n      stream.resume()\\n    }\\n  }\\n\\n  // Proxy all the other methods. Important when wrapping filters and duplexes.\\n  const streamKeys = ObjectKeys(stream)\\n  for (let j = 1; j < streamKeys.length; j++) {\\n    const i = streamKeys[j]\\n    if (this[i] === undefined && typeof stream[i] === 'function') {\\n      this[i] = stream[i].bind(stream)\\n    }\\n  }\\n  return this\\n}\\nReadable.prototype[SymbolAsyncIterator] = function () {\\n  return streamToAsyncIterator(this)\\n}\\nReadable.prototype.iterator = function (options) {\\n  if (options !== undefined) {\\n    validateObject(options, 'options')\\n  }\\n  return streamToAsyncIterator(this, options)\\n}\\nfunction streamToAsyncIterator(stream, options) {\\n  if (typeof stream.read !== 'function') {\\n    stream = Readable.wrap(stream, {\\n      objectMode: true\\n    })\\n  }\\n  const iter = createAsyncIterator(stream, options)\\n  iter.stream = stream\\n  return iter\\n}\\nasync function* createAsyncIterator(stream, options) {\\n  let callback = nop\\n  function next(resolve) {\\n    if (this === stream) {\\n      callback()\\n      callback = nop\\n    } else {\\n      callback = resolve\\n    }\\n  }\\n  stream.on('readable', next)\\n  let error\\n  const cleanup = eos(\\n    stream,\\n    {\\n      writable: false\\n    },\\n    (err) => {\\n      error = err ? aggregateTwoErrors(error, err) : null\\n      callback()\\n      callback = nop\\n    }\\n  )\\n  try {\\n    while (true) {\\n      const chunk = stream.destroyed ? null : stream.read()\\n      if (chunk !== null) {\\n        yield chunk\\n      } else if (error) {\\n        throw error\\n      } else if (error === null) {\\n        return\\n      } else {\\n        await new Promise(next)\\n      }\\n    }\\n  } catch (err) {\\n    error = aggregateTwoErrors(error, err)\\n    throw error\\n  } finally {\\n    if (\\n      (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\\n      (error === undefined || stream._readableState.autoDestroy)\\n    ) {\\n      destroyImpl.destroyer(stream, null)\\n    } else {\\n      stream.off('readable', next)\\n      cleanup()\\n    }\\n  }\\n}\\n\\n// Making it explicit these properties are not enumerable\\n// because otherwise some prototype manipulation in\\n// userland will fail.\\nObjectDefineProperties(Readable.prototype, {\\n  readable: {\\n    __proto__: null,\\n    get() {\\n      const r = this._readableState\\n      // r.readable === false means that this is part of a Duplex stream\\n      // where the readable side was disabled upon construction.\\n      // Compat. The user might manually disable readable side through\\n      // deprecated setter.\\n      return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\\n    },\\n    set(val) {\\n      // Backwards compat.\\n      if (this._readableState) {\\n        this._readableState.readable = !!val\\n      }\\n    }\\n  },\\n  readableDidRead: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return this._readableState.dataEmitted\\n    }\\n  },\\n  readableAborted: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return !!(\\n        this._readableState.readable !== false &&\\n        (this._readableState.destroyed || this._readableState.errored) &&\\n        !this._readableState.endEmitted\\n      )\\n    }\\n  },\\n  readableHighWaterMark: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return this._readableState.highWaterMark\\n    }\\n  },\\n  readableBuffer: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return this._readableState && this._readableState.buffer\\n    }\\n  },\\n  readableFlowing: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return this._readableState.flowing\\n    },\\n    set: function (state) {\\n      if (this._readableState) {\\n        this._readableState.flowing = state\\n      }\\n    }\\n  },\\n  readableLength: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState.length\\n    }\\n  },\\n  readableObjectMode: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState ? this._readableState.objectMode : false\\n    }\\n  },\\n  readableEncoding: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState ? this._readableState.encoding : null\\n    }\\n  },\\n  errored: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState ? this._readableState.errored : null\\n    }\\n  },\\n  closed: {\\n    __proto__: null,\\n    get() {\\n      return this._readableState ? this._readableState.closed : false\\n    }\\n  },\\n  destroyed: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState ? this._readableState.destroyed : false\\n    },\\n    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  },\\n  readableEnded: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._readableState ? this._readableState.endEmitted : false\\n    }\\n  }\\n})\\nObjectDefineProperties(ReadableState.prototype, {\\n  // Legacy getter for `pipesCount`.\\n  pipesCount: {\\n    __proto__: null,\\n    get() {\\n      return this.pipes.length\\n    }\\n  },\\n  // Legacy property for `paused`.\\n  paused: {\\n    __proto__: null,\\n    get() {\\n      return this[kPaused] !== false\\n    },\\n    set(value) {\\n      this[kPaused] = !!value\\n    }\\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  let ret\\n  if (state.objectMode) ret = state.buffer.shift()\\n  else if (!n || n >= state.length) {\\n    // Read it all, truncate the list.\\n    if (state.decoder) ret = state.buffer.join('')\\n    else if (state.buffer.length === 1) ret = state.buffer.first()\\n    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  const 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.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\\n    state.endEmitted = true\\n    stream.emit('end')\\n    if (stream.writable && stream.allowHalfOpen === false) {\\n      process.nextTick(endWritableNT, stream)\\n    } else 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      const wState = stream._writableState\\n      const autoDestroy =\\n        !wState ||\\n        (wState.autoDestroy &&\\n          // We don't expect the writable to ever 'finish'\\n          // if writable is explicitly set to false.\\n          (wState.finished || wState.writable === false))\\n      if (autoDestroy) {\\n        stream.destroy()\\n      }\\n    }\\n  }\\n}\\nfunction endWritableNT(stream) {\\n  const writable = stream.writable && !stream.writableEnded && !stream.destroyed\\n  if (writable) {\\n    stream.end()\\n  }\\n}\\nReadable.from = function (iterable, opts) {\\n  return from(Readable, iterable, opts)\\n}\\nlet webStreamsAdapters\\n\\n// Lazy to avoid circular references\\nfunction lazyWebStreams() {\\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\\n  return webStreamsAdapters\\n}\\nReadable.fromWeb = function (readableStream, options) {\\n  return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\\n}\\nReadable.toWeb = function (streamReadable, options) {\\n  return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\\n}\\nReadable.wrap = function (src, options) {\\n  var _ref, _src$readableObjectMo\\n  return new Readable({\\n    objectMode:\\n      (_ref =\\n        (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\\n          ? _src$readableObjectMo\\n          : src.objectMode) !== null && _ref !== undefined\\n        ? _ref\\n        : true,\\n    ...options,\\n    destroy(err, callback) {\\n      destroyImpl.destroyer(src, err)\\n      callback(err)\\n    }\\n  }).wrap(src)\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/readable.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/state.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/state.js ***!\n  \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { MathFloor, NumberIsInteger } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { ERR_INVALID_ARG_VALUE } = (__webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\").codes)\\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\\n}\\nfunction getDefaultHighWaterMark(objectMode) {\\n  return objectMode ? 16 : 16 * 1024\\n}\\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\\n  const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\\n  if (hwm != null) {\\n    if (!NumberIsInteger(hwm) || hwm < 0) {\\n      const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\\n      throw new ERR_INVALID_ARG_VALUE(name, hwm)\\n    }\\n    return MathFloor(hwm)\\n  }\\n\\n  // Default value\\n  return getDefaultHighWaterMark(state.objectMode)\\n}\\nmodule.exports = {\\n  getHighWaterMark,\\n  getDefaultHighWaterMark\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/state.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/transform.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/transform.js ***!\n  \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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\\nconst { ObjectSetPrototypeOf, Symbol } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nmodule.exports = Transform\\nconst { ERR_METHOD_NOT_IMPLEMENTED } = (__webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\").codes)\\nconst Duplex = __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\nconst { getHighWaterMark } = __webpack_require__(/*! ./state */ \\\"./node_modules/readable-stream/lib/internal/streams/state.js\\\")\\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\\nObjectSetPrototypeOf(Transform, Duplex)\\nconst kCallback = Symbol('kCallback')\\nfunction Transform(options) {\\n  if (!(this instanceof Transform)) return new Transform(options)\\n\\n  // TODO (ronag): This should preferably always be\\n  // applied but would be semver-major. Or even better;\\n  // make Transform a Readable with the Writable interface.\\n  const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\\n  if (readableHighWaterMark === 0) {\\n    // A Duplex will buffer both on the writable and readable side while\\n    // a Transform just wants to buffer hwm number of elements. To avoid\\n    // buffering twice we disable buffering on the writable side.\\n    options = {\\n      ...options,\\n      highWaterMark: null,\\n      readableHighWaterMark,\\n      // TODO (ronag): 0 is not optimal since we have\\n      // a \\\"bug\\\" where we check needDrain before calling _write and not after.\\n      // Refs: https://github.com/nodejs/node/pull/32887\\n      // Refs: https://github.com/nodejs/node/pull/35941\\n      writableHighWaterMark: options.writableHighWaterMark || 0\\n    }\\n  }\\n  Duplex.call(this, options)\\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  this[kCallback] = null\\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  // Backwards compat. Some Transform streams incorrectly implement _final\\n  // instead of or in addition to _flush. By using 'prefinish' instead of\\n  // implementing _final we continue supporting this unfortunate use case.\\n  this.on('prefinish', prefinish)\\n}\\nfunction final(cb) {\\n  if (typeof this._flush === 'function' && !this.destroyed) {\\n    this._flush((er, data) => {\\n      if (er) {\\n        if (cb) {\\n          cb(er)\\n        } else {\\n          this.destroy(er)\\n        }\\n        return\\n      }\\n      if (data != null) {\\n        this.push(data)\\n      }\\n      this.push(null)\\n      if (cb) {\\n        cb()\\n      }\\n    })\\n  } else {\\n    this.push(null)\\n    if (cb) {\\n      cb()\\n    }\\n  }\\n}\\nfunction prefinish() {\\n  if (this._final !== final) {\\n    final.call(this)\\n  }\\n}\\nTransform.prototype._final = final\\nTransform.prototype._transform = function (chunk, encoding, callback) {\\n  throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\\n}\\nTransform.prototype._write = function (chunk, encoding, callback) {\\n  const rState = this._readableState\\n  const wState = this._writableState\\n  const length = rState.length\\n  this._transform(chunk, encoding, (err, val) => {\\n    if (err) {\\n      callback(err)\\n      return\\n    }\\n    if (val != null) {\\n      this.push(val)\\n    }\\n    if (\\n      wState.ended ||\\n      // Backwards compat.\\n      length === rState.length ||\\n      // Backwards compat.\\n      rState.length < rState.highWaterMark\\n    ) {\\n      callback()\\n    } else {\\n      this[kCallback] = callback\\n    }\\n  })\\n}\\nTransform.prototype._read = function () {\\n  if (this[kCallback]) {\\n    const callback = this[kCallback]\\n    this[kCallback] = null\\n    callback()\\n  }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/transform.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/utils.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/utils.js ***!\n  \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { Symbol, SymbolAsyncIterator, SymbolIterator } = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst kDestroyed = Symbol('kDestroyed')\\nconst kIsErrored = Symbol('kIsErrored')\\nconst kIsReadable = Symbol('kIsReadable')\\nconst kIsDisturbed = Symbol('kIsDisturbed')\\nfunction isReadableNodeStream(obj, strict = false) {\\n  var _obj$_readableState\\n  return !!(\\n    (\\n      obj &&\\n      typeof obj.pipe === 'function' &&\\n      typeof obj.on === 'function' &&\\n      (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\\n      (!obj._writableState ||\\n        ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\\n          ? undefined\\n          : _obj$_readableState.readable) !== false) &&\\n      // Duplex\\n      (!obj._writableState || obj._readableState)\\n    ) // Writable has .pipe.\\n  )\\n}\\n\\nfunction isWritableNodeStream(obj) {\\n  var _obj$_writableState\\n  return !!(\\n    (\\n      obj &&\\n      typeof obj.write === 'function' &&\\n      typeof obj.on === 'function' &&\\n      (!obj._readableState ||\\n        ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\\n          ? undefined\\n          : _obj$_writableState.writable) !== false)\\n    ) // Duplex\\n  )\\n}\\n\\nfunction isDuplexNodeStream(obj) {\\n  return !!(\\n    obj &&\\n    typeof obj.pipe === 'function' &&\\n    obj._readableState &&\\n    typeof obj.on === 'function' &&\\n    typeof obj.write === 'function'\\n  )\\n}\\nfunction isNodeStream(obj) {\\n  return (\\n    obj &&\\n    (obj._readableState ||\\n      obj._writableState ||\\n      (typeof obj.write === 'function' && typeof obj.on === 'function') ||\\n      (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\\n  )\\n}\\nfunction isIterable(obj, isAsync) {\\n  if (obj == null) return false\\n  if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\\n  if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\\n  return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\\n}\\nfunction isDestroyed(stream) {\\n  if (!isNodeStream(stream)) return null\\n  const wState = stream._writableState\\n  const rState = stream._readableState\\n  const state = wState || rState\\n  return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\\n}\\n\\n// Have been end():d.\\nfunction isWritableEnded(stream) {\\n  if (!isWritableNodeStream(stream)) return null\\n  if (stream.writableEnded === true) return true\\n  const wState = stream._writableState\\n  if (wState !== null && wState !== undefined && wState.errored) return false\\n  if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\\n  return wState.ended\\n}\\n\\n// Have emitted 'finish'.\\nfunction isWritableFinished(stream, strict) {\\n  if (!isWritableNodeStream(stream)) return null\\n  if (stream.writableFinished === true) return true\\n  const wState = stream._writableState\\n  if (wState !== null && wState !== undefined && wState.errored) return false\\n  if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\\n  return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\\n}\\n\\n// Have been push(null):d.\\nfunction isReadableEnded(stream) {\\n  if (!isReadableNodeStream(stream)) return null\\n  if (stream.readableEnded === true) return true\\n  const rState = stream._readableState\\n  if (!rState || rState.errored) return false\\n  if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\\n  return rState.ended\\n}\\n\\n// Have emitted 'end'.\\nfunction isReadableFinished(stream, strict) {\\n  if (!isReadableNodeStream(stream)) return null\\n  const rState = stream._readableState\\n  if (rState !== null && rState !== undefined && rState.errored) return false\\n  if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\\n  return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\\n}\\nfunction isReadable(stream) {\\n  if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\\n  if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\\n  if (isDestroyed(stream)) return false\\n  return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\\n}\\nfunction isWritable(stream) {\\n  if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\\n  if (isDestroyed(stream)) return false\\n  return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\\n}\\nfunction isFinished(stream, opts) {\\n  if (!isNodeStream(stream)) {\\n    return null\\n  }\\n  if (isDestroyed(stream)) {\\n    return true\\n  }\\n  if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\\n    return false\\n  }\\n  if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\\n    return false\\n  }\\n  return true\\n}\\nfunction isWritableErrored(stream) {\\n  var _stream$_writableStat, _stream$_writableStat2\\n  if (!isNodeStream(stream)) {\\n    return null\\n  }\\n  if (stream.writableErrored) {\\n    return stream.writableErrored\\n  }\\n  return (_stream$_writableStat =\\n    (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\\n      ? undefined\\n      : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\\n    ? _stream$_writableStat\\n    : null\\n}\\nfunction isReadableErrored(stream) {\\n  var _stream$_readableStat, _stream$_readableStat2\\n  if (!isNodeStream(stream)) {\\n    return null\\n  }\\n  if (stream.readableErrored) {\\n    return stream.readableErrored\\n  }\\n  return (_stream$_readableStat =\\n    (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\\n      ? undefined\\n      : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\\n    ? _stream$_readableStat\\n    : null\\n}\\nfunction isClosed(stream) {\\n  if (!isNodeStream(stream)) {\\n    return null\\n  }\\n  if (typeof stream.closed === 'boolean') {\\n    return stream.closed\\n  }\\n  const wState = stream._writableState\\n  const rState = stream._readableState\\n  if (\\n    typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\\n    typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\\n  ) {\\n    return (\\n      (wState === null || wState === undefined ? undefined : wState.closed) ||\\n      (rState === null || rState === undefined ? undefined : rState.closed)\\n    )\\n  }\\n  if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\\n    return stream._closed\\n  }\\n  return null\\n}\\nfunction isOutgoingMessage(stream) {\\n  return (\\n    typeof stream._closed === 'boolean' &&\\n    typeof stream._defaultKeepAlive === 'boolean' &&\\n    typeof stream._removedConnection === 'boolean' &&\\n    typeof stream._removedContLen === 'boolean'\\n  )\\n}\\nfunction isServerResponse(stream) {\\n  return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\\n}\\nfunction isServerRequest(stream) {\\n  var _stream$req\\n  return (\\n    typeof stream._consuming === 'boolean' &&\\n    typeof stream._dumped === 'boolean' &&\\n    ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\\n      undefined\\n  )\\n}\\nfunction willEmitClose(stream) {\\n  if (!isNodeStream(stream)) return null\\n  const wState = stream._writableState\\n  const rState = stream._readableState\\n  const state = wState || rState\\n  return (\\n    (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\\n  )\\n}\\nfunction isDisturbed(stream) {\\n  var _stream$kIsDisturbed\\n  return !!(\\n    stream &&\\n    ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\\n      ? _stream$kIsDisturbed\\n      : stream.readableDidRead || stream.readableAborted)\\n  )\\n}\\nfunction isErrored(stream) {\\n  var _ref,\\n    _ref2,\\n    _ref3,\\n    _ref4,\\n    _ref5,\\n    _stream$kIsErrored,\\n    _stream$_readableStat3,\\n    _stream$_writableStat3,\\n    _stream$_readableStat4,\\n    _stream$_writableStat4\\n  return !!(\\n    stream &&\\n    ((_ref =\\n      (_ref2 =\\n        (_ref3 =\\n          (_ref4 =\\n            (_ref5 =\\n              (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\\n                ? _stream$kIsErrored\\n                : stream.readableErrored) !== null && _ref5 !== undefined\\n              ? _ref5\\n              : stream.writableErrored) !== null && _ref4 !== undefined\\n            ? _ref4\\n            : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\\n            ? undefined\\n            : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\\n          ? _ref3\\n          : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\\n          ? undefined\\n          : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\\n        ? _ref2\\n        : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\\n        ? undefined\\n        : _stream$_readableStat4.errored) !== null && _ref !== undefined\\n      ? _ref\\n      : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\\n      ? undefined\\n      : _stream$_writableStat4.errored)\\n  )\\n}\\nmodule.exports = {\\n  kDestroyed,\\n  isDisturbed,\\n  kIsDisturbed,\\n  isErrored,\\n  kIsErrored,\\n  isReadable,\\n  kIsReadable,\\n  isClosed,\\n  isDestroyed,\\n  isDuplexNodeStream,\\n  isFinished,\\n  isIterable,\\n  isReadableNodeStream,\\n  isReadableEnded,\\n  isReadableFinished,\\n  isReadableErrored,\\n  isNodeStream,\\n  isWritable,\\n  isWritableNodeStream,\\n  isWritableEnded,\\n  isWritableFinished,\\n  isWritableErrored,\\n  isServerRequest,\\n  isServerResponse,\\n  willEmitClose\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/utils.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/streams/writable.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/streams/writable.js ***!\n  \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst process = __webpack_require__(/*! process/ */ \\\"./node_modules/process/browser.js\\\")\\n\\n/* replacement end */\\n// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n// A bit simpler than readable streams.\\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\\n// the drain event emission and buffering.\\n\\n;('use strict')\\nconst {\\n  ArrayPrototypeSlice,\\n  Error,\\n  FunctionPrototypeSymbolHasInstance,\\n  ObjectDefineProperty,\\n  ObjectDefineProperties,\\n  ObjectSetPrototypeOf,\\n  StringPrototypeToLowerCase,\\n  Symbol,\\n  SymbolHasInstance\\n} = __webpack_require__(/*! ../../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nmodule.exports = Writable\\nWritable.WritableState = WritableState\\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \\\"./node_modules/events/events.js\\\")\\nconst Stream = (__webpack_require__(/*! ./legacy */ \\\"./node_modules/readable-stream/lib/internal/streams/legacy.js\\\").Stream)\\nconst { Buffer } = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst { addAbortSignal } = __webpack_require__(/*! ./add-abort-signal */ \\\"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\\\")\\nconst { getHighWaterMark, getDefaultHighWaterMark } = __webpack_require__(/*! ./state */ \\\"./node_modules/readable-stream/lib/internal/streams/state.js\\\")\\nconst {\\n  ERR_INVALID_ARG_TYPE,\\n  ERR_METHOD_NOT_IMPLEMENTED,\\n  ERR_MULTIPLE_CALLBACK,\\n  ERR_STREAM_CANNOT_PIPE,\\n  ERR_STREAM_DESTROYED,\\n  ERR_STREAM_ALREADY_FINISHED,\\n  ERR_STREAM_NULL_VALUES,\\n  ERR_STREAM_WRITE_AFTER_END,\\n  ERR_UNKNOWN_ENCODING\\n} = (__webpack_require__(/*! ../../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\").codes)\\nconst { errorOrDestroy } = destroyImpl\\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\\nObjectSetPrototypeOf(Writable, Stream)\\nfunction nop() {}\\nconst kOnFinished = Symbol('kOnFinished')\\nfunction WritableState(options, stream, isDuplex) {\\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 __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\n\\n  // Object stream flag to indicate whether or not this stream\\n  // contains buffers or objects.\\n  this.objectMode = !!(options && options.objectMode)\\n  if (isDuplex) this.objectMode = this.objectMode || !!(options && 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 = options\\n    ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\\n    : getDefaultHighWaterMark(false)\\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  const noDecode = !!(options && 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 && 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 = onwrite.bind(undefined, stream)\\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  // Storage for data passed to the afterWrite() callback in case of\\n  // synchronous _write() completion.\\n  this.afterWriteTickInfo = null\\n  resetBuffer(this)\\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  // Stream is still being constructed and cannot be\\n  // destroyed until construction finished or failed.\\n  // Async construction is opt in, therefore we start as\\n  // constructed.\\n  this.constructed = true\\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 || options.emitClose !== false\\n\\n  // Should .destroy() be called after 'finish' (and potentially 'end').\\n  this.autoDestroy = !options || options.autoDestroy !== false\\n\\n  // Indicates whether the stream has errored. When true all write() calls\\n  // should return false. This is needed since when autoDestroy\\n  // is disabled we need a way to tell whether the stream has failed.\\n  this.errored = null\\n\\n  // Indicates whether the stream has finished destroying.\\n  this.closed = false\\n\\n  // True if close has been emitted or would have been emitted\\n  // depending on emitClose.\\n  this.closeEmitted = false\\n  this[kOnFinished] = []\\n}\\nfunction resetBuffer(state) {\\n  state.buffered = []\\n  state.bufferedIndex = 0\\n  state.allBuffers = true\\n  state.allNoop = true\\n}\\nWritableState.prototype.getBuffer = function getBuffer() {\\n  return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\\n}\\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\\n  __proto__: null,\\n  get() {\\n    return this.buffered.length - this.bufferedIndex\\n  }\\n})\\nfunction Writable(options) {\\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  const isDuplex = this instanceof __webpack_require__(/*! ./duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\n  if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\\n  this._writableState = new WritableState(options, this, isDuplex)\\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    if (typeof options.construct === 'function') this._construct = options.construct\\n    if (options.signal) addAbortSignal(options.signal, this)\\n  }\\n  Stream.call(this, options)\\n  destroyImpl.construct(this, () => {\\n    const state = this._writableState\\n    if (!state.writing) {\\n      clearBuffer(this, state)\\n    }\\n    finishMaybe(this, state)\\n  })\\n}\\nObjectDefineProperty(Writable, SymbolHasInstance, {\\n  __proto__: null,\\n  value: function (object) {\\n    if (FunctionPrototypeSymbolHasInstance(this, object)) return true\\n    if (this !== Writable) return false\\n    return object && object._writableState instanceof WritableState\\n  }\\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 _write(stream, chunk, encoding, cb) {\\n  const state = stream._writableState\\n  if (typeof encoding === 'function') {\\n    cb = encoding\\n    encoding = state.defaultEncoding\\n  } else {\\n    if (!encoding) encoding = state.defaultEncoding\\n    else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\\n    if (typeof cb !== 'function') cb = nop\\n  }\\n  if (chunk === null) {\\n    throw new ERR_STREAM_NULL_VALUES()\\n  } else if (!state.objectMode) {\\n    if (typeof chunk === 'string') {\\n      if (state.decodeStrings !== false) {\\n        chunk = Buffer.from(chunk, encoding)\\n        encoding = 'buffer'\\n      }\\n    } else if (chunk instanceof Buffer) {\\n      encoding = 'buffer'\\n    } else if (Stream._isUint8Array(chunk)) {\\n      chunk = Stream._uint8ArrayToBuffer(chunk)\\n      encoding = 'buffer'\\n    } else {\\n      throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\\n    }\\n  }\\n  let err\\n  if (state.ending) {\\n    err = new ERR_STREAM_WRITE_AFTER_END()\\n  } else if (state.destroyed) {\\n    err = new ERR_STREAM_DESTROYED('write')\\n  }\\n  if (err) {\\n    process.nextTick(cb, err)\\n    errorOrDestroy(stream, err, true)\\n    return err\\n  }\\n  state.pendingcb++\\n  return writeOrBuffer(stream, state, chunk, encoding, cb)\\n}\\nWritable.prototype.write = function (chunk, encoding, cb) {\\n  return _write(this, chunk, encoding, cb) === true\\n}\\nWritable.prototype.cork = function () {\\n  this._writableState.corked++\\n}\\nWritable.prototype.uncork = function () {\\n  const state = this._writableState\\n  if (state.corked) {\\n    state.corked--\\n    if (!state.writing) clearBuffer(this, state)\\n  }\\n}\\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\\n  // node::ParseEncoding() requires lower case.\\n  if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\\n  if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\\n  this._writableState.defaultEncoding = encoding\\n  return this\\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, chunk, encoding, callback) {\\n  const len = state.objectMode ? 1 : chunk.length\\n  state.length += len\\n\\n  // stream._write resets state.length\\n  const 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 || state.errored || !state.constructed) {\\n    state.buffered.push({\\n      chunk,\\n      encoding,\\n      callback\\n    })\\n    if (state.allBuffers && encoding !== 'buffer') {\\n      state.allBuffers = false\\n    }\\n    if (state.allNoop && callback !== nop) {\\n      state.allNoop = false\\n    }\\n  } else {\\n    state.writelen = len\\n    state.writecb = callback\\n    state.writing = true\\n    state.sync = true\\n    stream._write(chunk, encoding, state.onwrite)\\n    state.sync = false\\n  }\\n\\n  // Return false if errored or destroyed in order to break\\n  // any synchronous while(stream.write(data)) loops.\\n  return ret && !state.errored && !state.destroyed\\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'))\\n  else if (writev) stream._writev(chunk, state.onwrite)\\n  else stream._write(chunk, encoding, state.onwrite)\\n  state.sync = false\\n}\\nfunction onwriteError(stream, state, er, cb) {\\n  --state.pendingcb\\n  cb(er)\\n  // Ensure callbacks are invoked even when autoDestroy is\\n  // not enabled. Passing `er` here doesn't make sense since\\n  // it's related to one specific write, not to the buffered\\n  // writes.\\n  errorBuffer(state)\\n  // This can emit error, but error must always follow cb.\\n  errorOrDestroy(stream, er)\\n}\\nfunction onwrite(stream, er) {\\n  const state = stream._writableState\\n  const sync = state.sync\\n  const cb = state.writecb\\n  if (typeof cb !== 'function') {\\n    errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\\n    return\\n  }\\n  state.writing = false\\n  state.writecb = null\\n  state.length -= state.writelen\\n  state.writelen = 0\\n  if (er) {\\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\\n    er.stack // eslint-disable-line no-unused-expressions\\n\\n    if (!state.errored) {\\n      state.errored = er\\n    }\\n\\n    // In case of duplex streams we need to notify the readable side of the\\n    // error.\\n    if (stream._readableState && !stream._readableState.errored) {\\n      stream._readableState.errored = er\\n    }\\n    if (sync) {\\n      process.nextTick(onwriteError, stream, state, er, cb)\\n    } else {\\n      onwriteError(stream, state, er, cb)\\n    }\\n  } else {\\n    if (state.buffered.length > state.bufferedIndex) {\\n      clearBuffer(stream, state)\\n    }\\n    if (sync) {\\n      // It is a common case that the callback passed to .write() is always\\n      // the same. In that case, we do not schedule a new nextTick(), but\\n      // rather just increase a counter, to improve performance and avoid\\n      // memory allocations.\\n      if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\\n        state.afterWriteTickInfo.count++\\n      } else {\\n        state.afterWriteTickInfo = {\\n          count: 1,\\n          cb,\\n          stream,\\n          state\\n        }\\n        process.nextTick(afterWriteTick, state.afterWriteTickInfo)\\n      }\\n    } else {\\n      afterWrite(stream, state, 1, cb)\\n    }\\n  }\\n}\\nfunction afterWriteTick({ stream, state, count, cb }) {\\n  state.afterWriteTickInfo = null\\n  return afterWrite(stream, state, count, cb)\\n}\\nfunction afterWrite(stream, state, count, cb) {\\n  const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\\n  if (needDrain) {\\n    state.needDrain = false\\n    stream.emit('drain')\\n  }\\n  while (count-- > 0) {\\n    state.pendingcb--\\n    cb()\\n  }\\n  if (state.destroyed) {\\n    errorBuffer(state)\\n  }\\n  finishMaybe(stream, state)\\n}\\n\\n// If there's something in the buffer waiting, then invoke callbacks.\\nfunction errorBuffer(state) {\\n  if (state.writing) {\\n    return\\n  }\\n  for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\\n    var _state$errored\\n    const { chunk, callback } = state.buffered[n]\\n    const len = state.objectMode ? 1 : chunk.length\\n    state.length -= len\\n    callback(\\n      (_state$errored = state.errored) !== null && _state$errored !== undefined\\n        ? _state$errored\\n        : new ERR_STREAM_DESTROYED('write')\\n    )\\n  }\\n  const onfinishCallbacks = state[kOnFinished].splice(0)\\n  for (let i = 0; i < onfinishCallbacks.length; i++) {\\n    var _state$errored2\\n    onfinishCallbacks[i](\\n      (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\\n        ? _state$errored2\\n        : new ERR_STREAM_DESTROYED('end')\\n    )\\n  }\\n  resetBuffer(state)\\n}\\n\\n// If there's something in the buffer waiting, then process it.\\nfunction clearBuffer(stream, state) {\\n  if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\\n    return\\n  }\\n  const { buffered, bufferedIndex, objectMode } = state\\n  const bufferedLength = buffered.length - bufferedIndex\\n  if (!bufferedLength) {\\n    return\\n  }\\n  let i = bufferedIndex\\n  state.bufferProcessing = true\\n  if (bufferedLength > 1 && stream._writev) {\\n    state.pendingcb -= bufferedLength - 1\\n    const callback = state.allNoop\\n      ? nop\\n      : (err) => {\\n          for (let n = i; n < buffered.length; ++n) {\\n            buffered[n].callback(err)\\n          }\\n        }\\n    // Make a copy of `buffered` if it's going to be used by `callback` above,\\n    // since `doWrite` will mutate the array.\\n    const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\\n    chunks.allBuffers = state.allBuffers\\n    doWrite(stream, state, true, state.length, chunks, '', callback)\\n    resetBuffer(state)\\n  } else {\\n    do {\\n      const { chunk, encoding, callback } = buffered[i]\\n      buffered[i++] = null\\n      const len = objectMode ? 1 : chunk.length\\n      doWrite(stream, state, false, len, chunk, encoding, callback)\\n    } while (i < buffered.length && !state.writing)\\n    if (i === buffered.length) {\\n      resetBuffer(state)\\n    } else if (i > 256) {\\n      buffered.splice(0, i)\\n      state.bufferedIndex = 0\\n    } else {\\n      state.bufferedIndex = i\\n    }\\n  }\\n  state.bufferProcessing = false\\n}\\nWritable.prototype._write = function (chunk, encoding, cb) {\\n  if (this._writev) {\\n    this._writev(\\n      [\\n        {\\n          chunk,\\n          encoding\\n        }\\n      ],\\n      cb\\n    )\\n  } else {\\n    throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\\n  }\\n}\\nWritable.prototype._writev = null\\nWritable.prototype.end = function (chunk, encoding, cb) {\\n  const 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  let err\\n  if (chunk !== null && chunk !== undefined) {\\n    const ret = _write(this, chunk, encoding)\\n    if (ret instanceof Error) {\\n      err = ret\\n    }\\n  }\\n\\n  // .end() fully uncorks.\\n  if (state.corked) {\\n    state.corked = 1\\n    this.uncork()\\n  }\\n  if (err) {\\n    // Do nothing...\\n  } else if (!state.errored && !state.ending) {\\n    // This is forgiving in terms of unnecessary calls to end() and can hide\\n    // logic errors. However, usually such errors are harmless and causing a\\n    // hard error can be disproportionately destructive. It is not always\\n    // trivial for the user to determine whether end() needs to be called\\n    // or not.\\n\\n    state.ending = true\\n    finishMaybe(this, state, true)\\n    state.ended = true\\n  } else if (state.finished) {\\n    err = new ERR_STREAM_ALREADY_FINISHED('end')\\n  } else if (state.destroyed) {\\n    err = new ERR_STREAM_DESTROYED('end')\\n  }\\n  if (typeof cb === 'function') {\\n    if (err || state.finished) {\\n      process.nextTick(cb, err)\\n    } else {\\n      state[kOnFinished].push(cb)\\n    }\\n  }\\n  return this\\n}\\nfunction needFinish(state) {\\n  return (\\n    state.ending &&\\n    !state.destroyed &&\\n    state.constructed &&\\n    state.length === 0 &&\\n    !state.errored &&\\n    state.buffered.length === 0 &&\\n    !state.finished &&\\n    !state.writing &&\\n    !state.errorEmitted &&\\n    !state.closeEmitted\\n  )\\n}\\nfunction callFinal(stream, state) {\\n  let called = false\\n  function onFinish(err) {\\n    if (called) {\\n      errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\\n      return\\n    }\\n    called = true\\n    state.pendingcb--\\n    if (err) {\\n      const onfinishCallbacks = state[kOnFinished].splice(0)\\n      for (let i = 0; i < onfinishCallbacks.length; i++) {\\n        onfinishCallbacks[i](err)\\n      }\\n      errorOrDestroy(stream, err, state.sync)\\n    } else if (needFinish(state)) {\\n      state.prefinished = true\\n      stream.emit('prefinish')\\n      // Backwards compat. Don't check state.sync here.\\n      // Some streams assume 'finish' will be emitted\\n      // asynchronously relative to _final callback.\\n      state.pendingcb++\\n      process.nextTick(finish, stream, state)\\n    }\\n  }\\n  state.sync = true\\n  state.pendingcb++\\n  try {\\n    stream._final(onFinish)\\n  } catch (err) {\\n    onFinish(err)\\n  }\\n  state.sync = false\\n}\\nfunction prefinish(stream, state) {\\n  if (!state.prefinished && !state.finalCalled) {\\n    if (typeof stream._final === 'function' && !state.destroyed) {\\n      state.finalCalled = true\\n      callFinal(stream, state)\\n    } else {\\n      state.prefinished = true\\n      stream.emit('prefinish')\\n    }\\n  }\\n}\\nfunction finishMaybe(stream, state, sync) {\\n  if (needFinish(state)) {\\n    prefinish(stream, state)\\n    if (state.pendingcb === 0) {\\n      if (sync) {\\n        state.pendingcb++\\n        process.nextTick(\\n          (stream, state) => {\\n            if (needFinish(state)) {\\n              finish(stream, state)\\n            } else {\\n              state.pendingcb--\\n            }\\n          },\\n          stream,\\n          state\\n        )\\n      } else if (needFinish(state)) {\\n        state.pendingcb++\\n        finish(stream, state)\\n      }\\n    }\\n  }\\n}\\nfunction finish(stream, state) {\\n  state.pendingcb--\\n  state.finished = true\\n  const onfinishCallbacks = state[kOnFinished].splice(0)\\n  for (let i = 0; i < onfinishCallbacks.length; i++) {\\n    onfinishCallbacks[i]()\\n  }\\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    const rState = stream._readableState\\n    const autoDestroy =\\n      !rState ||\\n      (rState.autoDestroy &&\\n        // We don't expect the readable to ever 'end'\\n        // if readable is explicitly set to false.\\n        (rState.endEmitted || rState.readable === false))\\n    if (autoDestroy) {\\n      stream.destroy()\\n    }\\n  }\\n}\\nObjectDefineProperties(Writable.prototype, {\\n  closed: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.closed : false\\n    }\\n  },\\n  destroyed: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.destroyed : false\\n    },\\n    set(value) {\\n      // Backward compatibility, the user is explicitly managing destroyed.\\n      if (this._writableState) {\\n        this._writableState.destroyed = value\\n      }\\n    }\\n  },\\n  writable: {\\n    __proto__: null,\\n    get() {\\n      const w = this._writableState\\n      // w.writable === false means that this is part of a Duplex stream\\n      // where the writable side was disabled upon construction.\\n      // Compat. The user might manually disable writable side through\\n      // deprecated setter.\\n      return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\\n    },\\n    set(val) {\\n      // Backwards compatible.\\n      if (this._writableState) {\\n        this._writableState.writable = !!val\\n      }\\n    }\\n  },\\n  writableFinished: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.finished : false\\n    }\\n  },\\n  writableObjectMode: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.objectMode : false\\n    }\\n  },\\n  writableBuffer: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState && this._writableState.getBuffer()\\n    }\\n  },\\n  writableEnded: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.ending : false\\n    }\\n  },\\n  writableNeedDrain: {\\n    __proto__: null,\\n    get() {\\n      const wState = this._writableState\\n      if (!wState) return false\\n      return !wState.destroyed && !wState.ending && wState.needDrain\\n    }\\n  },\\n  writableHighWaterMark: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState && this._writableState.highWaterMark\\n    }\\n  },\\n  writableCorked: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState ? this._writableState.corked : 0\\n    }\\n  },\\n  writableLength: {\\n    __proto__: null,\\n    get() {\\n      return this._writableState && this._writableState.length\\n    }\\n  },\\n  errored: {\\n    __proto__: null,\\n    enumerable: false,\\n    get() {\\n      return this._writableState ? this._writableState.errored : null\\n    }\\n  },\\n  writableAborted: {\\n    __proto__: null,\\n    enumerable: false,\\n    get: function () {\\n      return !!(\\n        this._writableState.writable !== false &&\\n        (this._writableState.destroyed || this._writableState.errored) &&\\n        !this._writableState.finished\\n      )\\n    }\\n  }\\n})\\nconst destroy = destroyImpl.destroy\\nWritable.prototype.destroy = function (err, cb) {\\n  const state = this._writableState\\n\\n  // Invoke pending callbacks.\\n  if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\\n    process.nextTick(errorBuffer, state)\\n  }\\n  destroy.call(this, err, cb)\\n  return this\\n}\\nWritable.prototype._undestroy = destroyImpl.undestroy\\nWritable.prototype._destroy = function (err, cb) {\\n  cb(err)\\n}\\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\\n  this.destroy(err)\\n}\\nlet webStreamsAdapters\\n\\n// Lazy to avoid circular references\\nfunction lazyWebStreams() {\\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\\n  return webStreamsAdapters\\n}\\nWritable.fromWeb = function (writableStream, options) {\\n  return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\\n}\\nWritable.toWeb = function (streamWritable) {\\n  return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/streams/writable.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/internal/validators.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/internal/validators.js ***!\n  \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst {\\n  ArrayIsArray,\\n  ArrayPrototypeIncludes,\\n  ArrayPrototypeJoin,\\n  ArrayPrototypeMap,\\n  NumberIsInteger,\\n  NumberIsNaN,\\n  NumberMAX_SAFE_INTEGER,\\n  NumberMIN_SAFE_INTEGER,\\n  NumberParseInt,\\n  ObjectPrototypeHasOwnProperty,\\n  RegExpPrototypeExec,\\n  String,\\n  StringPrototypeToUpperCase,\\n  StringPrototypeTrim\\n} = __webpack_require__(/*! ../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst {\\n  hideStackFrames,\\n  codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\\n} = __webpack_require__(/*! ../ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst { normalizeEncoding } = __webpack_require__(/*! ../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nconst { isAsyncFunction, isArrayBufferView } = (__webpack_require__(/*! ../ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\").types)\\nconst signals = {}\\n\\n/**\\n * @param {*} value\\n * @returns {boolean}\\n */\\nfunction isInt32(value) {\\n  return value === (value | 0)\\n}\\n\\n/**\\n * @param {*} value\\n * @returns {boolean}\\n */\\nfunction isUint32(value) {\\n  return value === value >>> 0\\n}\\nconst octalReg = /^[0-7]+$/\\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\\n\\n/**\\n * Parse and validate values that will be converted into mode_t (the S_*\\n * constants). Only valid numbers and octal strings are allowed. They could be\\n * converted to 32-bit unsigned integers or non-negative signed integers in the\\n * C++ land, but any value higher than 0o777 will result in platform-specific\\n * behaviors.\\n *\\n * @param {*} value Values to be validated\\n * @param {string} name Name of the argument\\n * @param {number} [def] If specified, will be returned for invalid values\\n * @returns {number}\\n */\\nfunction parseFileMode(value, name, def) {\\n  if (typeof value === 'undefined') {\\n    value = def\\n  }\\n  if (typeof value === 'string') {\\n    if (RegExpPrototypeExec(octalReg, value) === null) {\\n      throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\\n    }\\n    value = NumberParseInt(value, 8)\\n  }\\n  validateUint32(value, name)\\n  return value\\n}\\n\\n/**\\n * @callback validateInteger\\n * @param {*} value\\n * @param {string} name\\n * @param {number} [min]\\n * @param {number} [max]\\n * @returns {asserts value is number}\\n */\\n\\n/** @type {validateInteger} */\\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\\n  if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\\n  if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\\n  if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\\n})\\n\\n/**\\n * @callback validateInt32\\n * @param {*} value\\n * @param {string} name\\n * @param {number} [min]\\n * @param {number} [max]\\n * @returns {asserts value is number}\\n */\\n\\n/** @type {validateInt32} */\\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\\n  // The defaults for min and max correspond to the limits of 32-bit integers.\\n  if (typeof value !== 'number') {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\\n  }\\n  if (!NumberIsInteger(value)) {\\n    throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\\n  }\\n  if (value < min || value > max) {\\n    throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\\n  }\\n})\\n\\n/**\\n * @callback validateUint32\\n * @param {*} value\\n * @param {string} name\\n * @param {number|boolean} [positive=false]\\n * @returns {asserts value is number}\\n */\\n\\n/** @type {validateUint32} */\\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\\n  if (typeof value !== 'number') {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\\n  }\\n  if (!NumberIsInteger(value)) {\\n    throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\\n  }\\n  const min = positive ? 1 : 0\\n  // 2 ** 32 === 4294967296\\n  const max = 4294967295\\n  if (value < min || value > max) {\\n    throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\\n  }\\n})\\n\\n/**\\n * @callback validateString\\n * @param {*} value\\n * @param {string} name\\n * @returns {asserts value is string}\\n */\\n\\n/** @type {validateString} */\\nfunction validateString(value, name) {\\n  if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\\n}\\n\\n/**\\n * @callback validateNumber\\n * @param {*} value\\n * @param {string} name\\n * @param {number} [min]\\n * @param {number} [max]\\n * @returns {asserts value is number}\\n */\\n\\n/** @type {validateNumber} */\\nfunction validateNumber(value, name, min = undefined, max) {\\n  if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\\n  if (\\n    (min != null && value < min) ||\\n    (max != null && value > max) ||\\n    ((min != null || max != null) && NumberIsNaN(value))\\n  ) {\\n    throw new ERR_OUT_OF_RANGE(\\n      name,\\n      `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\\n      value\\n    )\\n  }\\n}\\n\\n/**\\n * @callback validateOneOf\\n * @template T\\n * @param {T} value\\n * @param {string} name\\n * @param {T[]} oneOf\\n */\\n\\n/** @type {validateOneOf} */\\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\\n  if (!ArrayPrototypeIncludes(oneOf, value)) {\\n    const allowed = ArrayPrototypeJoin(\\n      ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\\n      ', '\\n    )\\n    const reason = 'must be one of: ' + allowed\\n    throw new ERR_INVALID_ARG_VALUE(name, value, reason)\\n  }\\n})\\n\\n/**\\n * @callback validateBoolean\\n * @param {*} value\\n * @param {string} name\\n * @returns {asserts value is boolean}\\n */\\n\\n/** @type {validateBoolean} */\\nfunction validateBoolean(value, name) {\\n  if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\\n}\\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\\n  return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\\n}\\n\\n/**\\n * @callback validateObject\\n * @param {*} value\\n * @param {string} name\\n * @param {{\\n *   allowArray?: boolean,\\n *   allowFunction?: boolean,\\n *   nullable?: boolean\\n * }} [options]\\n */\\n\\n/** @type {validateObject} */\\nconst validateObject = hideStackFrames((value, name, options = null) => {\\n  const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\\n  const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\\n  const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\\n  if (\\n    (!nullable && value === null) ||\\n    (!allowArray && ArrayIsArray(value)) ||\\n    (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\\n  ) {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\\n  }\\n})\\n\\n/**\\n * @callback validateArray\\n * @param {*} value\\n * @param {string} name\\n * @param {number} [minLength]\\n * @returns {asserts value is any[]}\\n */\\n\\n/** @type {validateArray} */\\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\\n  if (!ArrayIsArray(value)) {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\\n  }\\n  if (value.length < minLength) {\\n    const reason = `must be longer than ${minLength}`\\n    throw new ERR_INVALID_ARG_VALUE(name, value, reason)\\n  }\\n})\\n\\n// eslint-disable-next-line jsdoc/require-returns-check\\n/**\\n * @param {*} signal\\n * @param {string} [name='signal']\\n * @returns {asserts signal is keyof signals}\\n */\\nfunction validateSignalName(signal, name = 'signal') {\\n  validateString(signal, name)\\n  if (signals[signal] === undefined) {\\n    if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\\n      throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\\n    }\\n    throw new ERR_UNKNOWN_SIGNAL(signal)\\n  }\\n}\\n\\n/**\\n * @callback validateBuffer\\n * @param {*} buffer\\n * @param {string} [name='buffer']\\n * @returns {asserts buffer is ArrayBufferView}\\n */\\n\\n/** @type {validateBuffer} */\\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\\n  if (!isArrayBufferView(buffer)) {\\n    throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\\n  }\\n})\\n\\n/**\\n * @param {string} data\\n * @param {string} encoding\\n */\\nfunction validateEncoding(data, encoding) {\\n  const normalizedEncoding = normalizeEncoding(encoding)\\n  const length = data.length\\n  if (normalizedEncoding === 'hex' && length % 2 !== 0) {\\n    throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\\n  }\\n}\\n\\n/**\\n * Check that the port number is not NaN when coerced to a number,\\n * is an integer and that it falls within the legal range of port numbers.\\n * @param {*} port\\n * @param {string} [name='Port']\\n * @param {boolean} [allowZero=true]\\n * @returns {number}\\n */\\nfunction validatePort(port, name = 'Port', allowZero = true) {\\n  if (\\n    (typeof port !== 'number' && typeof port !== 'string') ||\\n    (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\\n    +port !== +port >>> 0 ||\\n    port > 0xffff ||\\n    (port === 0 && !allowZero)\\n  ) {\\n    throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\\n  }\\n  return port | 0\\n}\\n\\n/**\\n * @callback validateAbortSignal\\n * @param {*} signal\\n * @param {string} name\\n */\\n\\n/** @type {validateAbortSignal} */\\nconst validateAbortSignal = hideStackFrames((signal, name) => {\\n  if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\\n    throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\\n  }\\n})\\n\\n/**\\n * @callback validateFunction\\n * @param {*} value\\n * @param {string} name\\n * @returns {asserts value is Function}\\n */\\n\\n/** @type {validateFunction} */\\nconst validateFunction = hideStackFrames((value, name) => {\\n  if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\\n})\\n\\n/**\\n * @callback validatePlainFunction\\n * @param {*} value\\n * @param {string} name\\n * @returns {asserts value is Function}\\n */\\n\\n/** @type {validatePlainFunction} */\\nconst validatePlainFunction = hideStackFrames((value, name) => {\\n  if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\\n})\\n\\n/**\\n * @callback validateUndefined\\n * @param {*} value\\n * @param {string} name\\n * @returns {asserts value is undefined}\\n */\\n\\n/** @type {validateUndefined} */\\nconst validateUndefined = hideStackFrames((value, name) => {\\n  if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\\n})\\n\\n/**\\n * @template T\\n * @param {T} value\\n * @param {string} name\\n * @param {T[]} union\\n */\\nfunction validateUnion(value, name, union) {\\n  if (!ArrayPrototypeIncludes(union, value)) {\\n    throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\\n  }\\n}\\nmodule.exports = {\\n  isInt32,\\n  isUint32,\\n  parseFileMode,\\n  validateArray,\\n  validateBoolean,\\n  validateBuffer,\\n  validateEncoding,\\n  validateFunction,\\n  validateInt32,\\n  validateInteger,\\n  validateNumber,\\n  validateObject,\\n  validateOneOf,\\n  validatePlainFunction,\\n  validatePort,\\n  validateSignalName,\\n  validateString,\\n  validateUint32,\\n  validateUndefined,\\n  validateUnion,\\n  validateAbortSignal\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/internal/validators.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/ours/browser.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/ours/browser.js ***!\n  \\**********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst CustomStream = __webpack_require__(/*! ../stream */ \\\"./node_modules/readable-stream/lib/stream.js\\\")\\nconst promises = __webpack_require__(/*! ../stream/promises */ \\\"./node_modules/readable-stream/lib/stream/promises.js\\\")\\nconst originalDestroy = CustomStream.Readable.destroy\\nmodule.exports = CustomStream.Readable\\n\\n// Explicit export naming is needed for ESM\\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\\nmodule.exports._isUint8Array = CustomStream._isUint8Array\\nmodule.exports.isDisturbed = CustomStream.isDisturbed\\nmodule.exports.isErrored = CustomStream.isErrored\\nmodule.exports.isReadable = CustomStream.isReadable\\nmodule.exports.Readable = CustomStream.Readable\\nmodule.exports.Writable = CustomStream.Writable\\nmodule.exports.Duplex = CustomStream.Duplex\\nmodule.exports.Transform = CustomStream.Transform\\nmodule.exports.PassThrough = CustomStream.PassThrough\\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\\nmodule.exports.finished = CustomStream.finished\\nmodule.exports.destroy = CustomStream.destroy\\nmodule.exports.destroy = originalDestroy\\nmodule.exports.pipeline = CustomStream.pipeline\\nmodule.exports.compose = CustomStream.compose\\nObject.defineProperty(CustomStream, 'promises', {\\n  configurable: true,\\n  enumerable: true,\\n  get() {\\n    return promises\\n  }\\n})\\nmodule.exports.Stream = CustomStream.Stream\\n\\n// Allow default importing\\nmodule.exports[\\\"default\\\"] = module.exports\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/ours/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/ours/errors.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/ours/errors.js ***!\n  \\*********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { format, inspect, AggregateError: CustomAggregateError } = __webpack_require__(/*! ./util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\n\\n/*\\n  This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\\n\\n  https://github.com/nodejs/node/blob/master/lib/internal/errors.js\\n\\n  Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\\n  with the upstream file.\\n*/\\n\\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\\nconst kIsNodeError = Symbol('kIsNodeError')\\nconst kTypes = [\\n  'string',\\n  'function',\\n  'number',\\n  'object',\\n  // Accept 'Function' and 'Object' as alternative to the lower cased version.\\n  'Function',\\n  'Object',\\n  'boolean',\\n  'bigint',\\n  'symbol'\\n]\\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\\nconst nodeInternalPrefix = '__node_internal_'\\nconst codes = {}\\nfunction assert(value, message) {\\n  if (!value) {\\n    throw new codes.ERR_INTERNAL_ASSERTION(message)\\n  }\\n}\\n\\n// Only use this for integers! Decimal numbers do not work with this function.\\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}\\nfunction getMessage(key, msg, args) {\\n  if (typeof msg === 'function') {\\n    assert(\\n      msg.length <= args.length,\\n      // Default options do not count.\\n      `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\\n    )\\n    return msg(...args)\\n  }\\n  const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\\n  assert(\\n    expectedLength === args.length,\\n    `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\\n  )\\n  if (args.length === 0) {\\n    return msg\\n  }\\n  return format(msg, ...args)\\n}\\nfunction E(code, message, Base) {\\n  if (!Base) {\\n    Base = Error\\n  }\\n  class NodeError extends Base {\\n    constructor(...args) {\\n      super(getMessage(code, message, args))\\n    }\\n    toString() {\\n      return `${this.name} [${code}]: ${this.message}`\\n    }\\n  }\\n  Object.defineProperties(NodeError.prototype, {\\n    name: {\\n      value: Base.name,\\n      writable: true,\\n      enumerable: false,\\n      configurable: true\\n    },\\n    toString: {\\n      value() {\\n        return `${this.name} [${code}]: ${this.message}`\\n      },\\n      writable: true,\\n      enumerable: false,\\n      configurable: true\\n    }\\n  })\\n  NodeError.prototype.code = code\\n  NodeError.prototype[kIsNodeError] = true\\n  codes[code] = NodeError\\n}\\nfunction hideStackFrames(fn) {\\n  // We rename the functions that will be hidden to cut off the stacktrace\\n  // at the outermost one\\n  const hidden = nodeInternalPrefix + fn.name\\n  Object.defineProperty(fn, 'name', {\\n    value: hidden\\n  })\\n  return fn\\n}\\nfunction aggregateTwoErrors(innerError, outerError) {\\n  if (innerError && outerError && innerError !== outerError) {\\n    if (Array.isArray(outerError.errors)) {\\n      // If `outerError` is already an `AggregateError`.\\n      outerError.errors.push(innerError)\\n      return outerError\\n    }\\n    const err = new AggregateError([outerError, innerError], outerError.message)\\n    err.code = outerError.code\\n    return err\\n  }\\n  return innerError || outerError\\n}\\nclass AbortError extends Error {\\n  constructor(message = 'The operation was aborted', options = undefined) {\\n    if (options !== undefined && typeof options !== 'object') {\\n      throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\\n    }\\n    super(message, options)\\n    this.code = 'ABORT_ERR'\\n    this.name = 'AbortError'\\n  }\\n}\\nE('ERR_ASSERTION', '%s', Error)\\nE(\\n  'ERR_INVALID_ARG_TYPE',\\n  (name, expected, actual) => {\\n    assert(typeof name === 'string', \\\"'name' must be a string\\\")\\n    if (!Array.isArray(expected)) {\\n      expected = [expected]\\n    }\\n    let msg = 'The '\\n    if (name.endsWith(' argument')) {\\n      // For cases like 'first argument'\\n      msg += `${name} `\\n    } else {\\n      msg += `\\\"${name}\\\" ${name.includes('.') ? 'property' : 'argument'} `\\n    }\\n    msg += 'must be '\\n    const types = []\\n    const instances = []\\n    const other = []\\n    for (const value of expected) {\\n      assert(typeof value === 'string', 'All expected entries have to be of type string')\\n      if (kTypes.includes(value)) {\\n        types.push(value.toLowerCase())\\n      } else if (classRegExp.test(value)) {\\n        instances.push(value)\\n      } else {\\n        assert(value !== 'object', 'The value \\\"object\\\" should be written as \\\"Object\\\"')\\n        other.push(value)\\n      }\\n    }\\n\\n    // Special handle `object` in case other instances are allowed to outline\\n    // the differences between each other.\\n    if (instances.length > 0) {\\n      const pos = types.indexOf('object')\\n      if (pos !== -1) {\\n        types.splice(types, pos, 1)\\n        instances.push('Object')\\n      }\\n    }\\n    if (types.length > 0) {\\n      switch (types.length) {\\n        case 1:\\n          msg += `of type ${types[0]}`\\n          break\\n        case 2:\\n          msg += `one of type ${types[0]} or ${types[1]}`\\n          break\\n        default: {\\n          const last = types.pop()\\n          msg += `one of type ${types.join(', ')}, or ${last}`\\n        }\\n      }\\n      if (instances.length > 0 || other.length > 0) {\\n        msg += ' or '\\n      }\\n    }\\n    if (instances.length > 0) {\\n      switch (instances.length) {\\n        case 1:\\n          msg += `an instance of ${instances[0]}`\\n          break\\n        case 2:\\n          msg += `an instance of ${instances[0]} or ${instances[1]}`\\n          break\\n        default: {\\n          const last = instances.pop()\\n          msg += `an instance of ${instances.join(', ')}, or ${last}`\\n        }\\n      }\\n      if (other.length > 0) {\\n        msg += ' or '\\n      }\\n    }\\n    switch (other.length) {\\n      case 0:\\n        break\\n      case 1:\\n        if (other[0].toLowerCase() !== other[0]) {\\n          msg += 'an '\\n        }\\n        msg += `${other[0]}`\\n        break\\n      case 2:\\n        msg += `one of ${other[0]} or ${other[1]}`\\n        break\\n      default: {\\n        const last = other.pop()\\n        msg += `one of ${other.join(', ')}, or ${last}`\\n      }\\n    }\\n    if (actual == null) {\\n      msg += `. Received ${actual}`\\n    } else if (typeof actual === 'function' && actual.name) {\\n      msg += `. Received function ${actual.name}`\\n    } else if (typeof actual === 'object') {\\n      var _actual$constructor\\n      if (\\n        (_actual$constructor = actual.constructor) !== null &&\\n        _actual$constructor !== undefined &&\\n        _actual$constructor.name\\n      ) {\\n        msg += `. Received an instance of ${actual.constructor.name}`\\n      } else {\\n        const inspected = inspect(actual, {\\n          depth: -1\\n        })\\n        msg += `. Received ${inspected}`\\n      }\\n    } else {\\n      let inspected = inspect(actual, {\\n        colors: false\\n      })\\n      if (inspected.length > 25) {\\n        inspected = `${inspected.slice(0, 25)}...`\\n      }\\n      msg += `. Received type ${typeof actual} (${inspected})`\\n    }\\n    return msg\\n  },\\n  TypeError\\n)\\nE(\\n  'ERR_INVALID_ARG_VALUE',\\n  (name, value, reason = 'is invalid') => {\\n    let inspected = inspect(value)\\n    if (inspected.length > 128) {\\n      inspected = inspected.slice(0, 128) + '...'\\n    }\\n    const type = name.includes('.') ? 'property' : 'argument'\\n    return `The ${type} '${name}' ${reason}. Received ${inspected}`\\n  },\\n  TypeError\\n)\\nE(\\n  'ERR_INVALID_RETURN_VALUE',\\n  (input, name, value) => {\\n    var _value$constructor\\n    const type =\\n      value !== null &&\\n      value !== undefined &&\\n      (_value$constructor = value.constructor) !== null &&\\n      _value$constructor !== undefined &&\\n      _value$constructor.name\\n        ? `instance of ${value.constructor.name}`\\n        : `type ${typeof value}`\\n    return `Expected ${input} to be returned from the \\\"${name}\\\"` + ` function but got ${type}.`\\n  },\\n  TypeError\\n)\\nE(\\n  'ERR_MISSING_ARGS',\\n  (...args) => {\\n    assert(args.length > 0, 'At least one arg needs to be specified')\\n    let msg\\n    const len = args.length\\n    args = (Array.isArray(args) ? args : [args]).map((a) => `\\\"${a}\\\"`).join(' or ')\\n    switch (len) {\\n      case 1:\\n        msg += `The ${args[0]} argument`\\n        break\\n      case 2:\\n        msg += `The ${args[0]} and ${args[1]} arguments`\\n        break\\n      default:\\n        {\\n          const last = args.pop()\\n          msg += `The ${args.join(', ')}, and ${last} arguments`\\n        }\\n        break\\n    }\\n    return `${msg} must be specified`\\n  },\\n  TypeError\\n)\\nE(\\n  'ERR_OUT_OF_RANGE',\\n  (str, range, input) => {\\n    assert(range, 'Missing \\\"range\\\" argument')\\n    let received\\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 > 2n ** 32n || input < -(2n ** 32n)) {\\n        received = addNumericalSeparator(received)\\n      }\\n      received += 'n'\\n    } else {\\n      received = inspect(input)\\n    }\\n    return `The value of \\\"${str}\\\" is out of range. It must be ${range}. Received ${received}`\\n  },\\n  RangeError\\n)\\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\\nmodule.exports = {\\n  AbortError,\\n  aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\\n  hideStackFrames,\\n  codes\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/ours/errors.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/ours/primordials.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/ours/primordials.js ***!\n  \\**************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"\\n\\n/*\\n  This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\\n\\n  https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\\n\\n  Don't try to replace with the original file and keep it up to date with the upstream file.\\n*/\\nmodule.exports = {\\n  ArrayIsArray(self) {\\n    return Array.isArray(self)\\n  },\\n  ArrayPrototypeIncludes(self, el) {\\n    return self.includes(el)\\n  },\\n  ArrayPrototypeIndexOf(self, el) {\\n    return self.indexOf(el)\\n  },\\n  ArrayPrototypeJoin(self, sep) {\\n    return self.join(sep)\\n  },\\n  ArrayPrototypeMap(self, fn) {\\n    return self.map(fn)\\n  },\\n  ArrayPrototypePop(self, el) {\\n    return self.pop(el)\\n  },\\n  ArrayPrototypePush(self, el) {\\n    return self.push(el)\\n  },\\n  ArrayPrototypeSlice(self, start, end) {\\n    return self.slice(start, end)\\n  },\\n  Error,\\n  FunctionPrototypeCall(fn, thisArgs, ...args) {\\n    return fn.call(thisArgs, ...args)\\n  },\\n  FunctionPrototypeSymbolHasInstance(self, instance) {\\n    return Function.prototype[Symbol.hasInstance].call(self, instance)\\n  },\\n  MathFloor: Math.floor,\\n  Number,\\n  NumberIsInteger: Number.isInteger,\\n  NumberIsNaN: Number.isNaN,\\n  NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\\n  NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\\n  NumberParseInt: Number.parseInt,\\n  ObjectDefineProperties(self, props) {\\n    return Object.defineProperties(self, props)\\n  },\\n  ObjectDefineProperty(self, name, prop) {\\n    return Object.defineProperty(self, name, prop)\\n  },\\n  ObjectGetOwnPropertyDescriptor(self, name) {\\n    return Object.getOwnPropertyDescriptor(self, name)\\n  },\\n  ObjectKeys(obj) {\\n    return Object.keys(obj)\\n  },\\n  ObjectSetPrototypeOf(target, proto) {\\n    return Object.setPrototypeOf(target, proto)\\n  },\\n  Promise,\\n  PromisePrototypeCatch(self, fn) {\\n    return self.catch(fn)\\n  },\\n  PromisePrototypeThen(self, thenFn, catchFn) {\\n    return self.then(thenFn, catchFn)\\n  },\\n  PromiseReject(err) {\\n    return Promise.reject(err)\\n  },\\n  ReflectApply: Reflect.apply,\\n  RegExpPrototypeTest(self, value) {\\n    return self.test(value)\\n  },\\n  SafeSet: Set,\\n  String,\\n  StringPrototypeSlice(self, start, end) {\\n    return self.slice(start, end)\\n  },\\n  StringPrototypeToLowerCase(self) {\\n    return self.toLowerCase()\\n  },\\n  StringPrototypeToUpperCase(self) {\\n    return self.toUpperCase()\\n  },\\n  StringPrototypeTrim(self) {\\n    return self.trim()\\n  },\\n  Symbol,\\n  SymbolAsyncIterator: Symbol.asyncIterator,\\n  SymbolHasInstance: Symbol.hasInstance,\\n  SymbolIterator: Symbol.iterator,\\n  TypedArrayPrototypeSet(self, buf, len) {\\n    return self.set(buf, len)\\n  },\\n  Uint8Array\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/ours/primordials.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/ours/util.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/ours/util.js ***!\n  \\*******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst bufferModule = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\\nconst Blob = globalThis.Blob || bufferModule.Blob\\n/* eslint-disable indent */\\nconst isBlob =\\n  typeof Blob !== 'undefined'\\n    ? function isBlob(b) {\\n        // eslint-disable-next-line indent\\n        return b instanceof Blob\\n      }\\n    : function isBlob(b) {\\n        return false\\n      }\\n/* eslint-enable indent */\\n\\n// This is a simplified version of AggregateError\\nclass AggregateError extends Error {\\n  constructor(errors) {\\n    if (!Array.isArray(errors)) {\\n      throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\\n    }\\n    let message = ''\\n    for (let i = 0; i < errors.length; i++) {\\n      message += `    ${errors[i].stack}\\\\n`\\n    }\\n    super(message)\\n    this.name = 'AggregateError'\\n    this.errors = errors\\n  }\\n}\\nmodule.exports = {\\n  AggregateError,\\n  kEmptyObject: Object.freeze({}),\\n  once(callback) {\\n    let called = false\\n    return function (...args) {\\n      if (called) {\\n        return\\n      }\\n      called = true\\n      callback.apply(this, args)\\n    }\\n  },\\n  createDeferredPromise: function () {\\n    let resolve\\n    let reject\\n\\n    // eslint-disable-next-line promise/param-names\\n    const promise = new Promise((res, rej) => {\\n      resolve = res\\n      reject = rej\\n    })\\n    return {\\n      promise,\\n      resolve,\\n      reject\\n    }\\n  },\\n  promisify(fn) {\\n    return new Promise((resolve, reject) => {\\n      fn((err, ...args) => {\\n        if (err) {\\n          return reject(err)\\n        }\\n        return resolve(...args)\\n      })\\n    })\\n  },\\n  debuglog() {\\n    return function () {}\\n  },\\n  format(format, ...args) {\\n    // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\\n    return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\\n      const replacement = args.shift()\\n      if (type === 'f') {\\n        return replacement.toFixed(6)\\n      } else if (type === 'j') {\\n        return JSON.stringify(replacement)\\n      } else if (type === 's' && typeof replacement === 'object') {\\n        const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\\n        return `${ctor} {}`.trim()\\n      } else {\\n        return replacement.toString()\\n      }\\n    })\\n  },\\n  inspect(value) {\\n    // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\\n    switch (typeof value) {\\n      case 'string':\\n        if (value.includes(\\\"'\\\")) {\\n          if (!value.includes('\\\"')) {\\n            return `\\\"${value}\\\"`\\n          } else if (!value.includes('`') && !value.includes('${')) {\\n            return `\\\\`${value}\\\\``\\n          }\\n        }\\n        return `'${value}'`\\n      case 'number':\\n        if (isNaN(value)) {\\n          return 'NaN'\\n        } else if (Object.is(value, -0)) {\\n          return String(value)\\n        }\\n        return value\\n      case 'bigint':\\n        return `${String(value)}n`\\n      case 'boolean':\\n      case 'undefined':\\n        return String(value)\\n      case 'object':\\n        return '{}'\\n    }\\n  },\\n  types: {\\n    isAsyncFunction(fn) {\\n      return fn instanceof AsyncFunction\\n    },\\n    isArrayBufferView(arr) {\\n      return ArrayBuffer.isView(arr)\\n    }\\n  },\\n  isBlob\\n}\\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/ours/util.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/stream.js\":\n/*!****************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/stream.js ***!\n  \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"/* replacement start */\\n\\nconst { Buffer } = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")\\n\\n/* replacement end */\\n// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n;('use strict')\\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = __webpack_require__(/*! ./ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst {\\n  promisify: { custom: customPromisify }\\n} = __webpack_require__(/*! ./ours/util */ \\\"./node_modules/readable-stream/lib/ours/util.js\\\")\\nconst { streamReturningOperators, promiseReturningOperators } = __webpack_require__(/*! ./internal/streams/operators */ \\\"./node_modules/readable-stream/lib/internal/streams/operators.js\\\")\\nconst {\\n  codes: { ERR_ILLEGAL_CONSTRUCTOR }\\n} = __webpack_require__(/*! ./ours/errors */ \\\"./node_modules/readable-stream/lib/ours/errors.js\\\")\\nconst compose = __webpack_require__(/*! ./internal/streams/compose */ \\\"./node_modules/readable-stream/lib/internal/streams/compose.js\\\")\\nconst { pipeline } = __webpack_require__(/*! ./internal/streams/pipeline */ \\\"./node_modules/readable-stream/lib/internal/streams/pipeline.js\\\")\\nconst { destroyer } = __webpack_require__(/*! ./internal/streams/destroy */ \\\"./node_modules/readable-stream/lib/internal/streams/destroy.js\\\")\\nconst eos = __webpack_require__(/*! ./internal/streams/end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nconst internalBuffer = {}\\nconst promises = __webpack_require__(/*! ./stream/promises */ \\\"./node_modules/readable-stream/lib/stream/promises.js\\\")\\nconst utils = __webpack_require__(/*! ./internal/streams/utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst Stream = (module.exports = __webpack_require__(/*! ./internal/streams/legacy */ \\\"./node_modules/readable-stream/lib/internal/streams/legacy.js\\\").Stream)\\nStream.isDisturbed = utils.isDisturbed\\nStream.isErrored = utils.isErrored\\nStream.isReadable = utils.isReadable\\nStream.Readable = __webpack_require__(/*! ./internal/streams/readable */ \\\"./node_modules/readable-stream/lib/internal/streams/readable.js\\\")\\nfor (const key of ObjectKeys(streamReturningOperators)) {\\n  const op = streamReturningOperators[key]\\n  function fn(...args) {\\n    if (new.target) {\\n      throw ERR_ILLEGAL_CONSTRUCTOR()\\n    }\\n    return Stream.Readable.from(ReflectApply(op, this, args))\\n  }\\n  ObjectDefineProperty(fn, 'name', {\\n    __proto__: null,\\n    value: op.name\\n  })\\n  ObjectDefineProperty(fn, 'length', {\\n    __proto__: null,\\n    value: op.length\\n  })\\n  ObjectDefineProperty(Stream.Readable.prototype, key, {\\n    __proto__: null,\\n    value: fn,\\n    enumerable: false,\\n    configurable: true,\\n    writable: true\\n  })\\n}\\nfor (const key of ObjectKeys(promiseReturningOperators)) {\\n  const op = promiseReturningOperators[key]\\n  function fn(...args) {\\n    if (new.target) {\\n      throw ERR_ILLEGAL_CONSTRUCTOR()\\n    }\\n    return ReflectApply(op, this, args)\\n  }\\n  ObjectDefineProperty(fn, 'name', {\\n    __proto__: null,\\n    value: op.name\\n  })\\n  ObjectDefineProperty(fn, 'length', {\\n    __proto__: null,\\n    value: op.length\\n  })\\n  ObjectDefineProperty(Stream.Readable.prototype, key, {\\n    __proto__: null,\\n    value: fn,\\n    enumerable: false,\\n    configurable: true,\\n    writable: true\\n  })\\n}\\nStream.Writable = __webpack_require__(/*! ./internal/streams/writable */ \\\"./node_modules/readable-stream/lib/internal/streams/writable.js\\\")\\nStream.Duplex = __webpack_require__(/*! ./internal/streams/duplex */ \\\"./node_modules/readable-stream/lib/internal/streams/duplex.js\\\")\\nStream.Transform = __webpack_require__(/*! ./internal/streams/transform */ \\\"./node_modules/readable-stream/lib/internal/streams/transform.js\\\")\\nStream.PassThrough = __webpack_require__(/*! ./internal/streams/passthrough */ \\\"./node_modules/readable-stream/lib/internal/streams/passthrough.js\\\")\\nStream.pipeline = pipeline\\nconst { addAbortSignal } = __webpack_require__(/*! ./internal/streams/add-abort-signal */ \\\"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\\\")\\nStream.addAbortSignal = addAbortSignal\\nStream.finished = eos\\nStream.destroy = destroyer\\nStream.compose = compose\\nObjectDefineProperty(Stream, 'promises', {\\n  __proto__: null,\\n  configurable: true,\\n  enumerable: true,\\n  get() {\\n    return promises\\n  }\\n})\\nObjectDefineProperty(pipeline, customPromisify, {\\n  __proto__: null,\\n  enumerable: true,\\n  get() {\\n    return promises.pipeline\\n  }\\n})\\nObjectDefineProperty(eos, customPromisify, {\\n  __proto__: null,\\n  enumerable: true,\\n  get() {\\n    return promises.finished\\n  }\\n})\\n\\n// Backwards-compat with node 0.4.x\\nStream.Stream = Stream\\nStream._isUint8Array = function isUint8Array(value) {\\n  return value instanceof Uint8Array\\n}\\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\\n  return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/stream.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/readable-stream/lib/stream/promises.js\":\n/*!*************************************************************!*\\\n  !*** ./node_modules/readable-stream/lib/stream/promises.js ***!\n  \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"\\n\\nconst { ArrayPrototypePop, Promise } = __webpack_require__(/*! ../ours/primordials */ \\\"./node_modules/readable-stream/lib/ours/primordials.js\\\")\\nconst { isIterable, isNodeStream } = __webpack_require__(/*! ../internal/streams/utils */ \\\"./node_modules/readable-stream/lib/internal/streams/utils.js\\\")\\nconst { pipelineImpl: pl } = __webpack_require__(/*! ../internal/streams/pipeline */ \\\"./node_modules/readable-stream/lib/internal/streams/pipeline.js\\\")\\nconst { finished } = __webpack_require__(/*! ../internal/streams/end-of-stream */ \\\"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\\\")\\nfunction pipeline(...streams) {\\n  return new Promise((resolve, reject) => {\\n    let signal\\n    let end\\n    const lastArg = streams[streams.length - 1]\\n    if (lastArg && typeof lastArg === 'object' && !isNodeStream(lastArg) && !isIterable(lastArg)) {\\n      const options = ArrayPrototypePop(streams)\\n      signal = options.signal\\n      end = options.end\\n    }\\n    pl(\\n      streams,\\n      (err, value) => {\\n        if (err) {\\n          reject(err)\\n        } else {\\n          resolve(value)\\n        }\\n      },\\n      {\\n        signal,\\n        end\\n      }\\n    )\\n  })\\n}\\nmodule.exports = {\\n  finished,\\n  pipeline\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/readable-stream/lib/stream/promises.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/safe-buffer/index.js\":\n/*!*******************************************!*\\\n  !*** ./node_modules/safe-buffer/index.js ***!\n  \\*******************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\neval(\"/* 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://@dannadori/voice-changer-client-js/./node_modules/safe-buffer/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/string_decoder/lib/string_decoder.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/string_decoder/lib/string_decoder.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\neval(\"// 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://@dannadori/voice-changer-client-js/./node_modules/string_decoder/lib/string_decoder.js?\");\n\n/***/ }),\n\n/***/ \"./src/AudioStreamer.ts\":\n/*!******************************!*\\\n  !*** ./src/AudioStreamer.ts ***!\n  \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"AudioStreamer\\\": () => (/* binding */ AudioStreamer),\\n/* harmony export */   \\\"postVoice\\\": () => (/* binding */ postVoice)\\n/* harmony export */ });\\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ \\\"./node_modules/socket.io-client/build/esm/index.js\\\");\\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! readable-stream */ \\\"./node_modules/readable-stream/lib/ours/browser.js\\\");\\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_1__);\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./const */ \\\"./src/const.ts\\\");\\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")[\\\"Buffer\\\"];\\n\\n\\n\\nclass AudioStreamer extends readable_stream__WEBPACK_IMPORTED_MODULE_1__.Duplex {\\n    constructor(callbacks, audioStreamerListeners, options) {\\n        super(options);\\n        this.protocol = \\\"sio\\\";\\n        this.serverUrl = \\\"\\\";\\n        this.socket = null;\\n        this.voiceChangerMode = \\\"realtime\\\";\\n        this.inputChunkNum = 128;\\n        this.requestChunks = [];\\n        this.recordChunks = [];\\n        this.isRecording = false;\\n        // performance monitor\\n        this.bufferStart = 0;\\n        this.createSocketIO = () => {\\n            if (this.socket) {\\n                this.socket.close();\\n            }\\n            if (this.protocol === \\\"sio\\\") {\\n                this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__.io)(this.serverUrl + \\\"/test\\\");\\n                this.socket.on('connect_error', (err) => {\\n                    this.audioStreamerListeners.notifyException(_const__WEBPACK_IMPORTED_MODULE_2__.VOICE_CHANGER_CLIENT_EXCEPTION.ERR_SIO_CONNECT_FAILED, `[SIO] rconnection failed ${err}`);\\n                });\\n                this.socket.on('connect', () => console.log(`[SIO] sonnect to ${this.serverUrl}`));\\n                this.socket.on('response', (response) => {\\n                    const cur = Date.now();\\n                    const responseTime = cur - response[0];\\n                    const result = response[1];\\n                    if (result.byteLength < 128 * 2) {\\n                        this.audioStreamerListeners.notifyException(_const__WEBPACK_IMPORTED_MODULE_2__.VOICE_CHANGER_CLIENT_EXCEPTION.ERR_SIO_INVALID_RESPONSE, `[SIO] recevied data is too short ${result.byteLength}`);\\n                    }\\n                    else {\\n                        this.callbacks.onVoiceReceived(this.voiceChangerMode, response[1]);\\n                        this.audioStreamerListeners.notifyResponseTime(responseTime);\\n                    }\\n                });\\n            }\\n        };\\n        // Option Change\\n        this.setServerUrl = (serverUrl) => {\\n            this.serverUrl = serverUrl;\\n            console.log(`[AudioStreamer] Server Setting:${this.serverUrl} ${this.protocol}`);\\n            this.createSocketIO(); // mode check is done in the method.\\n        };\\n        this.setProtocol = (mode) => {\\n            this.protocol = mode;\\n            console.log(`[AudioStreamer] Server Setting:${this.serverUrl} ${this.protocol}`);\\n            this.createSocketIO(); // mode check is done in the method.\\n        };\\n        this.setInputChunkNum = (num) => {\\n            this.inputChunkNum = num;\\n        };\\n        this.setVoiceChangerMode = (val) => {\\n            this.voiceChangerMode = val;\\n        };\\n        this.getSettings = () => {\\n            return {\\n                serverUrl: this.serverUrl,\\n                protocol: this.protocol,\\n                inputChunkNum: this.inputChunkNum,\\n                voiceChangerMode: this.voiceChangerMode\\n            };\\n        };\\n        // Main Process\\n        //// Pipe from mic stream \\n        this._write = (chunk, _encoding, callback) => {\\n            const buffer = chunk.getChannelData(0);\\n            // console.log(\\\"SAMPLERATE:\\\", chunk.sampleRate, chunk.numberOfChannels, chunk.length, buffer)\\n            if (this.voiceChangerMode === \\\"realtime\\\") {\\n                this._write_realtime(buffer);\\n            }\\n            else {\\n                this._write_record(buffer);\\n            }\\n            callback();\\n        };\\n        this._write_realtime = (buffer) => {\\n            // bufferSize個のデータ（48Khz）が入ってくる。\\n            //// 48000Hz で入ってくるので間引いて24000Hzに変換する。\\n            //// バイトサイズは周波数変換で(x1/2), 16bit(2byte)で(x2)\\n            const arrayBuffer = new ArrayBuffer((buffer.length / 2) * 2);\\n            const dataView = new DataView(arrayBuffer);\\n            for (let i = 0; i < buffer.length; i++) {\\n                if (i % 2 == 0) {\\n                    let s = Math.max(-1, Math.min(1, buffer[i]));\\n                    s = s < 0 ? s * 0x8000 : s * 0x7FFF;\\n                    // ２分の１個目で２バイトずつ進むので((i/2)*2)\\n                    dataView.setInt16((i / 2) * 2, s, true);\\n                }\\n            }\\n            // 256byte(最低バッファサイズ256から間引いた個数x2byte)をchunkとして管理\\n            const chunkByteSize = 256; // (const.ts ★1)\\n            for (let i = 0; i < arrayBuffer.byteLength / chunkByteSize; i++) {\\n                const ab = arrayBuffer.slice(i * chunkByteSize, (i + 1) * chunkByteSize);\\n                this.requestChunks.push(ab);\\n            }\\n            //// リクエストバッファの中身が、リクエスト送信数と違う場合は処理終了。\\n            if (this.requestChunks.length < this.inputChunkNum) {\\n                return;\\n            }\\n            // リクエスト用の入れ物を作成\\n            const windowByteLength = this.requestChunks.reduce((prev, cur) => {\\n                return prev + cur.byteLength;\\n            }, 0);\\n            const newBuffer = new Uint8Array(windowByteLength);\\n            // リクエストのデータをセット\\n            this.requestChunks.reduce((prev, cur) => {\\n                newBuffer.set(new Uint8Array(cur), prev);\\n                return prev + cur.byteLength;\\n            }, 0);\\n            // console.log(\\\"send buff length\\\", newBuffer.length)\\n            this.sendBuffer(newBuffer);\\n            this.requestChunks = [];\\n            this.audioStreamerListeners.notifySendBufferingTime(Date.now() - this.bufferStart);\\n            this.bufferStart = Date.now();\\n        };\\n        this._write_record = (buffer) => {\\n            if (!this.isRecording) {\\n                return;\\n            }\\n            // buffer(for48Khz)x16bit * chunksize / 2(for24Khz)\\n            const sendBuffer = new ArrayBuffer(buffer.length * 2 / 2);\\n            const sendDataView = new DataView(sendBuffer);\\n            for (var i = 0; i < buffer.length; i++) {\\n                if (i % 2 == 0) {\\n                    let s = Math.max(-1, Math.min(1, buffer[i]));\\n                    s = s < 0 ? s * 0x8000 : s * 0x7FFF;\\n                    sendDataView.setInt16(i, s, true);\\n                    // if (i % 3000 === 0) {\\n                    //     console.log(\\\"buffer_converting\\\", s, buffer[i])\\n                    // }\\n                }\\n            }\\n            this.recordChunks.push(sendBuffer);\\n        };\\n        // Near Realtime用のトリガ\\n        this.sendRecordedData = () => {\\n            const length = this.recordChunks.reduce((prev, cur) => {\\n                return prev + cur.byteLength;\\n            }, 0);\\n            const newBuffer = new Uint8Array(length);\\n            this.recordChunks.reduce((prev, cur) => {\\n                newBuffer.set(new Uint8Array(cur), prev);\\n                return prev + cur.byteLength;\\n            }, 0);\\n            this.sendBuffer(newBuffer);\\n        };\\n        this.startRecord = () => {\\n            this.recordChunks = [];\\n            this.isRecording = true;\\n        };\\n        this.stopRecord = () => {\\n            this.isRecording = false;\\n        };\\n        this.sendBuffer = async (newBuffer) => {\\n            // if (this.serverUrl.length == 0) {\\n            //     // console.warn(\\\"no server url\\\")\\n            //     // return\\n            //     // throw \\\"no server url\\\"\\n            // }\\n            const timestamp = Date.now();\\n            // console.log(\\\"REQUEST_MESSAGE:\\\", [this.gpu, this.srcId, this.dstId, timestamp, newBuffer.buffer])\\n            // console.log(\\\"SERVER_URL\\\", this.serverUrl, this.protocol)\\n            // const convertChunkNum = this.voiceChangerMode === \\\"realtime\\\" ? this.requestParamas.convertChunkNum : 0\\n            if (this.protocol === \\\"sio\\\") {\\n                if (!this.socket) {\\n                    console.warn(`sio is not initialized`);\\n                    return;\\n                }\\n                // console.log(\\\"emit!\\\")\\n                this.socket.emit('request_message', [\\n                    // this.requestParamas.gpu,\\n                    // this.requestParamas.srcId,\\n                    // this.requestParamas.dstId,\\n                    timestamp,\\n                    // convertChunkNum,\\n                    // this.requestParamas.crossFadeLowerValue,\\n                    // this.requestParamas.crossFadeOffsetRate,\\n                    // this.requestParamas.crossFadeEndRate,\\n                    newBuffer.buffer\\n                ]);\\n            }\\n            else {\\n                const res = await postVoice(this.serverUrl + \\\"/test\\\", \\n                // this.requestParamas.gpu,\\n                // this.requestParamas.srcId,\\n                // this.requestParamas.dstId,\\n                timestamp, \\n                // convertChunkNum,\\n                // this.requestParamas.crossFadeLowerValue,\\n                // this.requestParamas.crossFadeOffsetRate,\\n                // this.requestParamas.crossFadeEndRate,\\n                newBuffer.buffer);\\n                if (res.byteLength < 128 * 2) {\\n                    this.audioStreamerListeners.notifyException(_const__WEBPACK_IMPORTED_MODULE_2__.VOICE_CHANGER_CLIENT_EXCEPTION.ERR_REST_INVALID_RESPONSE, `[REST] recevied data is too short ${res.byteLength}`);\\n                }\\n                else {\\n                    this.callbacks.onVoiceReceived(this.voiceChangerMode, res);\\n                    this.audioStreamerListeners.notifyResponseTime(Date.now() - timestamp);\\n                }\\n            }\\n        };\\n        this.callbacks = callbacks;\\n        this.audioStreamerListeners = audioStreamerListeners;\\n    }\\n}\\nconst postVoice = async (url, \\n// gpu: number,\\n// srcId: number,\\n// dstId: number,\\ntimestamp, \\n// convertChunkNum: number,\\n// crossFadeLowerValue: number,\\n// crossFadeOffsetRate: number,\\n// crossFadeEndRate: number,\\nbuffer) => {\\n    const obj = {\\n        // gpu,\\n        // srcId,\\n        // dstId,\\n        timestamp,\\n        // convertChunkNum,\\n        // crossFadeLowerValue,\\n        // crossFadeOffsetRate,\\n        // crossFadeEndRate,\\n        buffer: Buffer.from(buffer).toString('base64')\\n    };\\n    const body = JSON.stringify(obj);\\n    const res = await fetch(`${url}`, {\\n        method: \\\"POST\\\",\\n        headers: {\\n            'Accept': 'application/json',\\n            'Content-Type': 'application/json'\\n        },\\n        body: body\\n    });\\n    const receivedJson = await res.json();\\n    const changedVoiceBase64 = receivedJson[\\\"changedVoiceBase64\\\"];\\n    const buf = Buffer.from(changedVoiceBase64, \\\"base64\\\");\\n    const ab = new ArrayBuffer(buf.length);\\n    // console.log(\\\"RECIV\\\", buf.length)\\n    const view = new Uint8Array(ab);\\n    for (let i = 0; i < buf.length; ++i) {\\n        view[i] = buf[i];\\n    }\\n    return ab;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/AudioStreamer.ts?\");\n\n/***/ }),\n\n/***/ \"./src/ServerConfigurator.ts\":\n/*!***********************************!*\\\n  !*** ./src/ServerConfigurator.ts ***!\n  \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ServerConfigurator\\\": () => (/* binding */ ServerConfigurator)\\n/* harmony export */ });\\nclass ServerConfigurator {\\n    constructor() {\\n        this.serverUrl = \\\"\\\";\\n        this.getSettings = async () => {\\n            const url = this.serverUrl + \\\"/info\\\";\\n            const info = await new Promise((resolve) => {\\n                const request = new Request(url, {\\n                    method: 'GET',\\n                });\\n                fetch(request).then(async (response) => {\\n                    const json = await response.json();\\n                    resolve(json);\\n                });\\n            });\\n            return info;\\n        };\\n        this.setServerUrl = (serverUrl) => {\\n            this.serverUrl = serverUrl;\\n            console.log(`[ServerConfigurator] Server URL: ${this.serverUrl}`);\\n        };\\n        this.updateSettings = async (key, val) => {\\n            const url = this.serverUrl + \\\"/update_setteings\\\";\\n            const info = await new Promise(async (resolve) => {\\n                const formData = new FormData();\\n                formData.append(\\\"key\\\", key);\\n                formData.append(\\\"val\\\", val);\\n                const request = new Request(url, {\\n                    method: 'POST',\\n                    body: formData,\\n                });\\n                const res = await (await fetch(request)).json();\\n                resolve(res);\\n            });\\n            return info;\\n        };\\n        this.uploadFile = async (buf, filename, onprogress) => {\\n            const url = this.serverUrl + \\\"/upload_file\\\";\\n            onprogress(0, false);\\n            const size = 1024 * 1024;\\n            const fileChunks = [];\\n            let index = 0; // index値\\n            for (let cur = 0; cur < buf.byteLength; cur += size) {\\n                fileChunks.push({\\n                    hash: index++,\\n                    chunk: buf.slice(cur, cur + size),\\n                });\\n            }\\n            const chunkNum = fileChunks.length;\\n            // console.log(\\\"FILE_CHUNKS:\\\", chunkNum, fileChunks)\\n            while (true) {\\n                const promises = [];\\n                for (let i = 0; i < 10; i++) {\\n                    const chunk = fileChunks.shift();\\n                    if (!chunk) {\\n                        break;\\n                    }\\n                    const p = new Promise((resolve) => {\\n                        const formData = new FormData();\\n                        formData.append(\\\"file\\\", new Blob([chunk.chunk]));\\n                        formData.append(\\\"filename\\\", `${filename}_${chunk.hash}`);\\n                        const request = new Request(url, {\\n                            method: 'POST',\\n                            body: formData,\\n                        });\\n                        fetch(request).then(async (_response) => {\\n                            // console.log(await response.text())\\n                            resolve();\\n                        });\\n                    });\\n                    promises.push(p);\\n                }\\n                await Promise.all(promises);\\n                if (fileChunks.length == 0) {\\n                    break;\\n                }\\n                onprogress(Math.floor(((chunkNum - fileChunks.length) / (chunkNum + 1)) * 100), false);\\n            }\\n            return chunkNum;\\n        };\\n        this.concatUploadedFile = async (filename, chunkNum) => {\\n            const url = this.serverUrl + \\\"/concat_uploaded_file\\\";\\n            await new Promise((resolve) => {\\n                const formData = new FormData();\\n                formData.append(\\\"filename\\\", filename);\\n                formData.append(\\\"filenameChunkNum\\\", \\\"\\\" + chunkNum);\\n                const request = new Request(url, {\\n                    method: 'POST',\\n                    body: formData,\\n                });\\n                fetch(request).then(async (response) => {\\n                    console.log(await response.text());\\n                    resolve();\\n                });\\n            });\\n        };\\n        this.loadModel = async (configFilename, pyTorchModelFilename, onnxModelFilename) => {\\n            const url = this.serverUrl + \\\"/load_model\\\";\\n            const info = new Promise(async (resolve) => {\\n                const formData = new FormData();\\n                formData.append(\\\"pyTorchModelFilename\\\", pyTorchModelFilename || \\\"-\\\");\\n                formData.append(\\\"onnxModelFilename\\\", onnxModelFilename || \\\"-\\\");\\n                formData.append(\\\"configFilename\\\", configFilename);\\n                const request = new Request(url, {\\n                    method: 'POST',\\n                    body: formData,\\n                });\\n                const res = await (await fetch(request)).json();\\n                resolve(res);\\n            });\\n            return await info;\\n        };\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/ServerConfigurator.ts?\");\n\n/***/ }),\n\n/***/ \"./src/VoiceChangerClient.ts\":\n/*!***********************************!*\\\n  !*** ./src/VoiceChangerClient.ts ***!\n  \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"VoiceChangerClient\\\": () => (/* binding */ VoiceChangerClient)\\n/* harmony export */ });\\n/* harmony import */ var _VoiceChangerWorkletNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VoiceChangerWorkletNode */ \\\"./src/VoiceChangerWorkletNode.ts\\\");\\n/* harmony import */ var raw_loader_worklet_dist_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! raw-loader!../worklet/dist/index.js */ \\\"./node_modules/raw-loader/dist/cjs.js!./worklet/dist/index.js\\\");\\n/* harmony import */ var amazon_chime_sdk_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! amazon-chime-sdk-js */ \\\"./node_modules/amazon-chime-sdk-js/build/index.js\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \\\"./src/util.ts\\\");\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./const */ \\\"./src/const.ts\\\");\\n/* harmony import */ var microphone_stream__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! microphone-stream */ \\\"./node_modules/microphone-stream/dist/microphone-stream.js\\\");\\n/* harmony import */ var microphone_stream__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(microphone_stream__WEBPACK_IMPORTED_MODULE_5__);\\n/* harmony import */ var _AudioStreamer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AudioStreamer */ \\\"./src/AudioStreamer.ts\\\");\\n/* harmony import */ var _ServerConfigurator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ServerConfigurator */ \\\"./src/ServerConfigurator.ts\\\");\\n/* harmony import */ var _utils_BlockingQueue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/BlockingQueue */ \\\"./src/utils/BlockingQueue.ts\\\");\\n\\n// @ts-ignore\\n\\n\\n\\n\\n\\n\\n\\n// オーディオデータの流れ\\n// input node(mic or MediaStream) -> [vf node] -> microphne stream -> audio streamer -> \\n//    sio/rest server -> audio streamer-> vc node -> output node\\n\\nclass VoiceChangerClient {\\n    constructor(ctx, vfEnable, audioStreamerListeners, voiceChangerWorkletListener) {\\n        this.vfEnable = false;\\n        this.vf = null;\\n        this.currentDevice = null;\\n        this.currentMediaStream = null;\\n        this.currentMediaStreamAudioSourceNode = null;\\n        this.outputNodeFromVF = null;\\n        this.micStream = null;\\n        this._isVoiceChanging = false;\\n        this.sslCertified = [];\\n        this.sem = new _utils_BlockingQueue__WEBPACK_IMPORTED_MODULE_8__.BlockingQueue();\\n        this.callbacks = {\\n            onVoiceReceived: (voiceChangerMode, data) => {\\n                // console.log(voiceChangerMode, data)\\n                if (voiceChangerMode === \\\"realtime\\\") {\\n                    this.vcNode.postReceivedVoice(data);\\n                    return;\\n                }\\n                // For Near Realtime Mode\\n                console.log(\\\"near realtime mode\\\");\\n                const i16Data = new Int16Array(data);\\n                const f32Data = new Float32Array(i16Data.length);\\n                // https://stackoverflow.com/questions/35234551/javascript-converting-from-int16-to-float32\\n                i16Data.forEach((x, i) => {\\n                    const float = (x >= 0x8000) ? -(0x10000 - x) / 0x8000 : x / 0x7FFF;\\n                    f32Data[i] = float;\\n                });\\n                const source = this.ctx.createBufferSource();\\n                const buffer = this.ctx.createBuffer(1, f32Data.length, 24000);\\n                buffer.getChannelData(0).set(f32Data);\\n                source.buffer = buffer;\\n                source.start();\\n                source.connect(this.currentMediaStreamAudioDestinationNode);\\n            }\\n        };\\n        this.lock = async () => {\\n            const num = await this.sem.dequeue();\\n            return num;\\n        };\\n        this.unlock = (num) => {\\n            this.sem.enqueue(num + 1);\\n        };\\n        this.isInitialized = async () => {\\n            if (this.promiseForInitialize) {\\n                await this.promiseForInitialize;\\n            }\\n            return true;\\n        };\\n        // forceVfDisable is for the condition that vf is enabled in constructor. \\n        this.setup = async (input, bufferSize, forceVfDisable = false) => {\\n            const lockNum = await this.lock();\\n            // condition check\\n            if (!this.vcNode) {\\n                console.warn(\\\"vc node is not initialized.\\\");\\n                throw \\\"vc node is not initialized.\\\";\\n            }\\n            // Main Process\\n            //// shutdown & re-generate mediastream\\n            if (this.currentMediaStream) {\\n                this.currentMediaStream.getTracks().forEach(x => { x.stop(); });\\n                this.currentMediaStream = null;\\n            }\\n            if (typeof input == \\\"string\\\") {\\n                this.currentMediaStream = await navigator.mediaDevices.getUserMedia({\\n                    audio: {\\n                        deviceId: input,\\n                        // echoCancellation: false,\\n                        // noiseSuppression: false\\n                    }\\n                });\\n            }\\n            else {\\n                this.currentMediaStream = input;\\n            }\\n            // create mic stream\\n            if (this.micStream) {\\n                this.micStream.unpipe();\\n                this.micStream.destroy();\\n                this.micStream = null;\\n            }\\n            this.micStream = new (microphone_stream__WEBPACK_IMPORTED_MODULE_5___default())({\\n                objectMode: true,\\n                bufferSize: bufferSize,\\n                context: this.ctx\\n            });\\n            // connect nodes.\\n            if (this.currentDevice && forceVfDisable == false) {\\n                this.currentMediaStreamAudioSourceNode = this.ctx.createMediaStreamSource(this.currentMediaStream); // input node\\n                this.currentDevice.chooseNewInnerDevice(this.currentMediaStream);\\n                const voiceFocusNode = await this.currentDevice.createAudioNode(this.ctx); // vf node\\n                this.currentMediaStreamAudioSourceNode.connect(voiceFocusNode.start); // input node -> vf node\\n                voiceFocusNode.end.connect(this.outputNodeFromVF);\\n                this.micStream.setStream(this.outputNodeFromVF.stream); // vf node -> mic stream\\n            }\\n            else {\\n                console.log(\\\"VF disabled\\\");\\n                this.micStream.setStream(this.currentMediaStream); // input device -> mic stream\\n            }\\n            this.micStream.pipe(this.audioStreamer); // mic stream -> audio streamer\\n            if (!this._isVoiceChanging) {\\n                this.micStream.pauseRecording();\\n            }\\n            else {\\n                this.micStream.playRecording();\\n            }\\n            await this.unlock(lockNum);\\n        };\\n        this.start = () => {\\n            if (!this.micStream) {\\n                throw `Exception:${_const__WEBPACK_IMPORTED_MODULE_4__.VOICE_CHANGER_CLIENT_EXCEPTION.ERR_MIC_STREAM_NOT_INITIALIZED}`;\\n                return;\\n            }\\n            this.micStream.playRecording();\\n            this._isVoiceChanging = true;\\n        };\\n        this.stop = () => {\\n            if (!this.micStream) {\\n                return;\\n            }\\n            this.micStream.pauseRecording();\\n            this._isVoiceChanging = false;\\n        };\\n        // Audio Streamer Settingg\\n        this.setServerUrl = (serverUrl, openTab = false) => {\\n            const url = (0,_util__WEBPACK_IMPORTED_MODULE_3__.validateUrl)(serverUrl);\\n            const pageUrl = `${location.protocol}//${location.host}`;\\n            if (url != pageUrl && url.length != 0 && location.protocol == \\\"https:\\\" && this.sslCertified.includes(url) == false) {\\n                if (openTab) {\\n                    const value = window.confirm(\\\"MMVC Server is different from this page's origin. Open tab to open ssl connection. OK? (You can close the opened tab after ssl connection succeed.)\\\");\\n                    if (value) {\\n                        window.open(url, '_blank');\\n                        this.sslCertified.push(url);\\n                    }\\n                    else {\\n                        alert(\\\"Your voice conversion may fail...\\\");\\n                    }\\n                }\\n            }\\n            this.audioStreamer.setServerUrl(url);\\n            this.configurator.setServerUrl(url);\\n        };\\n        this.setProtocol = (mode) => {\\n            this.audioStreamer.setProtocol(mode);\\n        };\\n        this.setInputChunkNum = (num) => {\\n            this.audioStreamer.setInputChunkNum(num);\\n        };\\n        this.setVoiceChangerMode = (val) => {\\n            this.audioStreamer.setVoiceChangerMode(val);\\n        };\\n        // configure worklet\\n        this.configureWorklet = (setting) => {\\n            // const req: VoiceChangerWorkletProcessorRequest = {\\n            //     requestType: \\\"config\\\",\\n            //     voice: new ArrayBuffer(1),\\n            //     numTrancateTreshold: setting.numTrancateTreshold,\\n            //     volTrancateThreshold: setting.volTrancateThreshold,\\n            //     volTrancateLength: setting.volTrancateLength\\n            // }\\n            // this.vcNode.postReceivedVoice(req)\\n            this.vcNode.configure(setting);\\n        };\\n        this.startOutputRecordingWorklet = () => {\\n            this.vcNode.startOutputRecordingWorklet();\\n        };\\n        this.stopOutputRecordingWorklet = () => {\\n            this.vcNode.stopOutputRecordingWorklet();\\n        };\\n        // Configurator Method\\n        this.uploadFile = (buf, filename, onprogress) => {\\n            return this.configurator.uploadFile(buf, filename, onprogress);\\n        };\\n        this.concatUploadedFile = (filename, chunkNum) => {\\n            return this.configurator.concatUploadedFile(filename, chunkNum);\\n        };\\n        this.loadModel = (configFilename, pyTorchModelFilename, onnxModelFilename) => {\\n            return this.configurator.loadModel(configFilename, pyTorchModelFilename, onnxModelFilename);\\n        };\\n        this.updateServerSettings = (key, val) => {\\n            return this.configurator.updateSettings(key, val);\\n        };\\n        // Information\\n        this.getClientSettings = () => {\\n            return this.audioStreamer.getSettings();\\n        };\\n        this.getServerSettings = () => {\\n            return this.configurator.getSettings();\\n        };\\n        this.sem.enqueue(0);\\n        this.configurator = new _ServerConfigurator__WEBPACK_IMPORTED_MODULE_7__.ServerConfigurator();\\n        this.ctx = ctx;\\n        this.vfEnable = vfEnable;\\n        this.promiseForInitialize = new Promise(async (resolve) => {\\n            const scriptUrl = URL.createObjectURL(new Blob([raw_loader_worklet_dist_index_js__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"]], { type: \\\"text/javascript\\\" }));\\n            await this.ctx.audioWorklet.addModule(scriptUrl);\\n            this.vcNode = new _VoiceChangerWorkletNode__WEBPACK_IMPORTED_MODULE_0__.VoiceChangerWorkletNode(this.ctx, voiceChangerWorkletListener); // vc node \\n            this.currentMediaStreamAudioDestinationNode = this.ctx.createMediaStreamDestination(); // output node\\n            this.vcNode.connect(this.currentMediaStreamAudioDestinationNode); // vc node -> output node\\n            // (vc nodeにはaudio streamerのcallbackでデータが投げ込まれる)\\n            this.audioStreamer = new _AudioStreamer__WEBPACK_IMPORTED_MODULE_6__.AudioStreamer(this.callbacks, audioStreamerListeners, { objectMode: true, });\\n            this.audioStreamer.setInputChunkNum(_const__WEBPACK_IMPORTED_MODULE_4__.DefaultVoiceChangerClientSetting.inputChunkNum);\\n            this.audioStreamer.setVoiceChangerMode(_const__WEBPACK_IMPORTED_MODULE_4__.DefaultVoiceChangerClientSetting.voiceChangerMode);\\n            if (this.vfEnable) {\\n                this.vf = await amazon_chime_sdk_js__WEBPACK_IMPORTED_MODULE_2__.VoiceFocusDeviceTransformer.create({ variant: 'c20' });\\n                const dummyMediaStream = (0,_util__WEBPACK_IMPORTED_MODULE_3__.createDummyMediaStream)(this.ctx);\\n                this.currentDevice = (await this.vf.createTransformDevice(dummyMediaStream)) || null;\\n                this.outputNodeFromVF = this.ctx.createMediaStreamDestination();\\n            }\\n            resolve();\\n        });\\n    }\\n    get stream() {\\n        return this.currentMediaStreamAudioDestinationNode.stream;\\n    }\\n    get isVoiceChanging() {\\n        return this._isVoiceChanging;\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/VoiceChangerClient.ts?\");\n\n/***/ }),\n\n/***/ \"./src/VoiceChangerWorkletNode.ts\":\n/*!****************************************!*\\\n  !*** ./src/VoiceChangerWorkletNode.ts ***!\n  \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"VoiceChangerWorkletNode\\\": () => (/* binding */ VoiceChangerWorkletNode)\\n/* harmony export */ });\\nclass VoiceChangerWorkletNode extends AudioWorkletNode {\\n    constructor(context, listener) {\\n        super(context, \\\"voice-changer-worklet-processor\\\");\\n        this.postReceivedVoice = (data) => {\\n            const req = {\\n                requestType: \\\"voice\\\",\\n                voice: data,\\n                numTrancateTreshold: 0,\\n                volTrancateThreshold: 0,\\n                volTrancateLength: 0\\n            };\\n            this.port.postMessage(req);\\n        };\\n        this.configure = (setting) => {\\n            const req = {\\n                requestType: \\\"config\\\",\\n                voice: new ArrayBuffer(1),\\n                numTrancateTreshold: setting.numTrancateTreshold,\\n                volTrancateThreshold: setting.volTrancateThreshold,\\n                volTrancateLength: setting.volTrancateLength\\n            };\\n            this.port.postMessage(req);\\n        };\\n        this.startOutputRecordingWorklet = () => {\\n            const req = {\\n                requestType: \\\"startRecording\\\",\\n                voice: new ArrayBuffer(1),\\n                numTrancateTreshold: 0,\\n                volTrancateThreshold: 0,\\n                volTrancateLength: 0\\n            };\\n            this.port.postMessage(req);\\n        };\\n        this.stopOutputRecordingWorklet = () => {\\n            const req = {\\n                requestType: \\\"stopRecording\\\",\\n                voice: new ArrayBuffer(1),\\n                numTrancateTreshold: 0,\\n                volTrancateThreshold: 0,\\n                volTrancateLength: 0\\n            };\\n            this.port.postMessage(req);\\n        };\\n        this.port.onmessage = this.handleMessage.bind(this);\\n        this.listener = listener;\\n        console.log(`[worklet_node][voice-changer-worklet-processor] created.`);\\n    }\\n    handleMessage(event) {\\n        // console.log(`[Node:handleMessage_] `, event.data.volume);\\n        if (event.data.responseType === \\\"volume\\\") {\\n            this.listener.notifyVolume(event.data.volume);\\n        }\\n        else if (event.data.responseType === \\\"recordData\\\") {\\n            this.listener.notifyOutputRecordData(event.data.recordData);\\n        }\\n        else {\\n            console.warn(`[worklet_node][voice-changer-worklet-processor] unknown response ${event.data.responseType}`, event.data);\\n        }\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/VoiceChangerWorkletNode.ts?\");\n\n/***/ }),\n\n/***/ \"./src/const.ts\":\n/*!**********************!*\\\n  !*** ./src/const.ts ***!\n  \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"BufferSize\\\": () => (/* binding */ BufferSize),\\n/* harmony export */   \\\"DefaultVoiceChangerClientSetting\\\": () => (/* binding */ DefaultVoiceChangerClientSetting),\\n/* harmony export */   \\\"DefaultVoiceChangerServerSetting\\\": () => (/* binding */ DefaultVoiceChangerServerSetting),\\n/* harmony export */   \\\"DefaultWorkletSetting\\\": () => (/* binding */ DefaultWorkletSetting),\\n/* harmony export */   \\\"Framework\\\": () => (/* binding */ Framework),\\n/* harmony export */   \\\"INDEXEDDB_DB_APP_NAME\\\": () => (/* binding */ INDEXEDDB_DB_APP_NAME),\\n/* harmony export */   \\\"INDEXEDDB_DB_NAME\\\": () => (/* binding */ INDEXEDDB_DB_NAME),\\n/* harmony export */   \\\"INDEXEDDB_KEY_CLIENT\\\": () => (/* binding */ INDEXEDDB_KEY_CLIENT),\\n/* harmony export */   \\\"INDEXEDDB_KEY_MODEL_DATA\\\": () => (/* binding */ INDEXEDDB_KEY_MODEL_DATA),\\n/* harmony export */   \\\"INDEXEDDB_KEY_SERVER\\\": () => (/* binding */ INDEXEDDB_KEY_SERVER),\\n/* harmony export */   \\\"INDEXEDDB_KEY_WORKLET\\\": () => (/* binding */ INDEXEDDB_KEY_WORKLET),\\n/* harmony export */   \\\"OnnxExecutionProvider\\\": () => (/* binding */ OnnxExecutionProvider),\\n/* harmony export */   \\\"Protocol\\\": () => (/* binding */ Protocol),\\n/* harmony export */   \\\"SampleRate\\\": () => (/* binding */ SampleRate),\\n/* harmony export */   \\\"ServerSettingKey\\\": () => (/* binding */ ServerSettingKey),\\n/* harmony export */   \\\"VOICE_CHANGER_CLIENT_EXCEPTION\\\": () => (/* binding */ VOICE_CHANGER_CLIENT_EXCEPTION),\\n/* harmony export */   \\\"VoiceChangerMode\\\": () => (/* binding */ VoiceChangerMode)\\n/* harmony export */ });\\n// (★1) chunk sizeは 128サンプル, 256byte(int16)と定義。\\n// (★2) 256byte(最低バッファサイズ256から間引いた個数x2byte)をchunkとして管理。\\n// 24000sample -> 1sec, 128sample(1chunk) -> 5.333msec\\n// 187.5chunk -> 1sec\\n// Consts\\nconst Protocol = {\\n    \\\"sio\\\": \\\"sio\\\",\\n    \\\"rest\\\": \\\"rest\\\",\\n};\\nconst VoiceChangerMode = {\\n    \\\"realtime\\\": \\\"realtime\\\",\\n    \\\"near-realtime\\\": \\\"near-realtime\\\",\\n};\\nconst SampleRate = {\\n    \\\"48000\\\": 48000,\\n};\\nconst BufferSize = {\\n    \\\"256\\\": 256,\\n    \\\"512\\\": 512,\\n    \\\"1024\\\": 1024,\\n    \\\"2048\\\": 2048,\\n    \\\"4096\\\": 4096,\\n    \\\"8192\\\": 8192,\\n    \\\"16384\\\": 16384\\n};\\nconst OnnxExecutionProvider = {\\n    \\\"CPUExecutionProvider\\\": \\\"CPUExecutionProvider\\\",\\n    \\\"CUDAExecutionProvider\\\": \\\"CUDAExecutionProvider\\\",\\n    \\\"DmlExecutionProvider\\\": \\\"DmlExecutionProvider\\\",\\n    \\\"OpenVINOExecutionProvider\\\": \\\"OpenVINOExecutionProvider\\\",\\n};\\nconst Framework = {\\n    \\\"PyTorch\\\": \\\"PyTorch\\\",\\n    \\\"ONNX\\\": \\\"ONNX\\\",\\n};\\nconst ServerSettingKey = {\\n    \\\"srcId\\\": \\\"srcId\\\",\\n    \\\"dstId\\\": \\\"dstId\\\",\\n    \\\"convertChunkNum\\\": \\\"convertChunkNum\\\",\\n    \\\"minConvertSize\\\": \\\"minConvertSize\\\",\\n    \\\"gpu\\\": \\\"gpu\\\",\\n    \\\"crossFadeOffsetRate\\\": \\\"crossFadeOffsetRate\\\",\\n    \\\"crossFadeEndRate\\\": \\\"crossFadeEndRate\\\",\\n    \\\"crossFadeOverlapRate\\\": \\\"crossFadeOverlapRate\\\",\\n    \\\"framework\\\": \\\"framework\\\",\\n    \\\"onnxExecutionProvider\\\": \\\"onnxExecutionProvider\\\",\\n    \\\"f0Factor\\\": \\\"f0Factor\\\"\\n};\\n// Defaults\\nconst DefaultVoiceChangerServerSetting = {\\n    convertChunkNum: 32,\\n    minConvertSize: 0,\\n    srcId: 107,\\n    dstId: 100,\\n    gpu: 0,\\n    crossFadeLowerValue: 0.1,\\n    crossFadeOffsetRate: 0.1,\\n    crossFadeEndRate: 0.9,\\n    crossFadeOverlapRate: 0.5,\\n    framework: \\\"ONNX\\\",\\n    f0Factor: 1.0,\\n    onnxExecutionProvider: \\\"CPUExecutionProvider\\\"\\n};\\nconst DefaultVoiceChangerClientSetting = {\\n    audioInput: null,\\n    mmvcServerUrl: \\\"\\\",\\n    protocol: \\\"sio\\\",\\n    sampleRate: 48000,\\n    bufferSize: 1024,\\n    inputChunkNum: 48,\\n    speakers: [\\n        {\\n            \\\"id\\\": 0,\\n            \\\"name\\\": \\\"user\\\"\\n        },\\n        {\\n            \\\"id\\\": 101,\\n            \\\"name\\\": \\\"ずんだもん\\\"\\n        },\\n        {\\n            \\\"id\\\": 102,\\n            \\\"name\\\": \\\"そら\\\"\\n        },\\n        {\\n            \\\"id\\\": 103,\\n            \\\"name\\\": \\\"めたん\\\"\\n        },\\n        {\\n            \\\"id\\\": 104,\\n            \\\"name\\\": \\\"つむぎ\\\"\\n        }\\n    ],\\n    correspondences: [],\\n    forceVfDisable: false,\\n    voiceChangerMode: \\\"realtime\\\",\\n};\\nconst DefaultWorkletSetting = {\\n    numTrancateTreshold: 188,\\n    volTrancateThreshold: 0.0005,\\n    volTrancateLength: 32\\n};\\nconst VOICE_CHANGER_CLIENT_EXCEPTION = {\\n    ERR_SIO_CONNECT_FAILED: \\\"ERR_SIO_CONNECT_FAILED\\\",\\n    ERR_SIO_INVALID_RESPONSE: \\\"ERR_SIO_INVALID_RESPONSE\\\",\\n    ERR_REST_INVALID_RESPONSE: \\\"ERR_REST_INVALID_RESPONSE\\\",\\n    ERR_MIC_STREAM_NOT_INITIALIZED: \\\"ERR_MIC_STREAM_NOT_INITIALIZED\\\"\\n};\\n////////////////////////////////////\\n// indexedDB\\n////////////////////////////////////\\nconst INDEXEDDB_DB_APP_NAME = \\\"INDEXEDDB_KEY_VOICE_CHANGER\\\";\\nconst INDEXEDDB_DB_NAME = \\\"INDEXEDDB_KEY_VOICE_CHANGER_DB\\\";\\nconst INDEXEDDB_KEY_CLIENT = \\\"INDEXEDDB_KEY_VOICE_CHANGER_LIB_CLIENT\\\";\\nconst INDEXEDDB_KEY_SERVER = \\\"INDEXEDDB_KEY_VOICE_CHANGER_LIB_SERVER\\\";\\nconst INDEXEDDB_KEY_MODEL_DATA = \\\"INDEXEDDB_KEY_VOICE_CHANGER_LIB_MODEL_DATA\\\";\\nconst INDEXEDDB_KEY_WORKLET = \\\"INDEXEDDB_KEY_VOICE_CHANGER_LIB_WORKLET\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/const.ts?\");\n\n/***/ }),\n\n/***/ \"./src/hooks/useClient.ts\":\n/*!********************************!*\\\n  !*** ./src/hooks/useClient.ts ***!\n  \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"useClient\\\": () => (/* binding */ useClient)\\n/* harmony export */ });\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \\\"react\\\");\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var _VoiceChangerClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VoiceChangerClient */ \\\"./src/VoiceChangerClient.ts\\\");\\n/* harmony import */ var _useClientSetting__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useClientSetting */ \\\"./src/hooks/useClientSetting.ts\\\");\\n/* harmony import */ var _useServerSetting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useServerSetting */ \\\"./src/hooks/useServerSetting.ts\\\");\\n/* harmony import */ var _useWorkletSetting__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useWorkletSetting */ \\\"./src/hooks/useWorkletSetting.ts\\\");\\n\\n\\n\\n\\n\\nconst useClient = (props) => {\\n    // (1-1) クライアント    \\n    const voiceChangerClientRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\\n    const [voiceChangerClient, setVoiceChangerClient] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(voiceChangerClientRef.current);\\n    //// クライアント初期化待ち用フラグ\\n    const initializedResolveRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\\n    const initializedPromise = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return new Promise((resolve) => {\\n            initializedResolveRef.current = resolve;\\n        });\\n    }, []);\\n    // (1-2) 各種設定\\n    const clientSetting = (0,_useClientSetting__WEBPACK_IMPORTED_MODULE_2__.useClientSetting)({ voiceChangerClient, audioContext: props.audioContext });\\n    const workletSetting = (0,_useWorkletSetting__WEBPACK_IMPORTED_MODULE_4__.useWorkletSetting)({ voiceChangerClient });\\n    const serverSetting = (0,_useServerSetting__WEBPACK_IMPORTED_MODULE_3__.useServerSetting)({ voiceChangerClient });\\n    // (1-3) ステータス\\n    const [bufferingTime, setBufferingTime] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);\\n    const [responseTime, setResponseTime] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);\\n    const [volume, setVolume] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);\\n    const [outputRecordData, setOutputRecordData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\\n    // (1-4) エラーステータス\\n    const errorCountRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\\n    // (2-1) 初期化処理\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        const initialized = async () => {\\n            if (!props.audioContext) {\\n                return;\\n            }\\n            const voiceChangerClient = new _VoiceChangerClient__WEBPACK_IMPORTED_MODULE_1__.VoiceChangerClient(props.audioContext, true, {\\n                notifySendBufferingTime: (val) => {\\n                    setBufferingTime(val);\\n                },\\n                notifyResponseTime: (val) => {\\n                    setResponseTime(val);\\n                },\\n                notifyException: (mes) => {\\n                    if (mes.length > 0) {\\n                        console.log(`error:${mes}`);\\n                        errorCountRef.current += 1;\\n                        if (errorCountRef.current > 100) {\\n                            alert(\\\"エラーが頻発しています。対象としているフレームワークのモデルがロードされているか確認してください。\\\");\\n                            errorCountRef.current = 0;\\n                        }\\n                    }\\n                }\\n            }, {\\n                notifyVolume: (vol) => {\\n                    setVolume(vol);\\n                },\\n                notifyOutputRecordData: (data) => {\\n                    setOutputRecordData(data);\\n                }\\n            });\\n            await voiceChangerClient.isInitialized();\\n            voiceChangerClientRef.current = voiceChangerClient;\\n            setVoiceChangerClient(voiceChangerClientRef.current);\\n            console.log(\\\"[useClient] client initialized\\\");\\n            const audio = document.getElementById(props.audioOutputElementId);\\n            audio.srcObject = voiceChangerClientRef.current.stream;\\n            audio.play();\\n            initializedResolveRef.current();\\n        };\\n        initialized();\\n    }, [props.audioContext]);\\n    // (2-2) 情報リロード\\n    const getInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            await initializedPromise;\\n            await clientSetting.reloadClientSetting();\\n            await serverSetting.reloadServerInfo();\\n        };\\n    }, [clientSetting, serverSetting]);\\n    const clearSetting = async () => {\\n        await clientSetting.clearSetting();\\n        await workletSetting.clearSetting();\\n        await serverSetting.clearSetting();\\n    };\\n    return {\\n        bufferingTime,\\n        responseTime,\\n        volume,\\n        outputRecordData,\\n        getInfo,\\n        clientSetting,\\n        workletSetting,\\n        serverSetting,\\n        clearSetting,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/hooks/useClient.ts?\");\n\n/***/ }),\n\n/***/ \"./src/hooks/useClientSetting.ts\":\n/*!***************************************!*\\\n  !*** ./src/hooks/useClientSetting.ts ***!\n  \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"useClientSetting\\\": () => (/* binding */ useClientSetting)\\n/* harmony export */ });\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \\\"react\\\");\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../const */ \\\"./src/const.ts\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ \\\"./src/util.ts\\\");\\n/* harmony import */ var _useIndexedDB__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useIndexedDB */ \\\"./src/hooks/useIndexedDB.ts\\\");\\n\\n\\n\\n\\nconst useClientSetting = (props) => {\\n    const settingRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_const__WEBPACK_IMPORTED_MODULE_1__.DefaultVoiceChangerClientSetting);\\n    const [setting, _setSetting] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(settingRef.current);\\n    const { setItem, getItem, removeItem } = (0,_useIndexedDB__WEBPACK_IMPORTED_MODULE_3__.useIndexedDB)();\\n    // 初期化 その１ DBから取得\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        const loadCache = async () => {\\n            const setting = await getItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_CLIENT);\\n            if (!setting) {\\n                // デフォルト設定\\n                console.log(\\\"No Chache\\\");\\n                const params = new URLSearchParams(location.search);\\n                const colab = params.get(\\\"colab\\\");\\n                if (colab == \\\"true\\\") {\\n                    settingRef.current.protocol = \\\"rest\\\";\\n                    settingRef.current.inputChunkNum = 64;\\n                }\\n                else {\\n                    settingRef.current.protocol = \\\"sio\\\";\\n                    settingRef.current.inputChunkNum = 32;\\n                }\\n            }\\n            else {\\n                settingRef.current = setting;\\n            }\\n            _setSetting({ ...settingRef.current });\\n        };\\n        loadCache();\\n    }, []);\\n    // 初期化 その２ クライアントに設定\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        if (!props.voiceChangerClient)\\n            return;\\n        props.voiceChangerClient.setServerUrl(settingRef.current.mmvcServerUrl);\\n        props.voiceChangerClient.setInputChunkNum(settingRef.current.inputChunkNum);\\n        props.voiceChangerClient.setProtocol(settingRef.current.protocol);\\n        props.voiceChangerClient.setVoiceChangerMode(settingRef.current.voiceChangerMode);\\n        // Input, bufferSize, VoiceFocus Disableは_setInputで設定\\n        _setInput();\\n    }, [props.voiceChangerClient]);\\n    const setSetting = async (setting) => {\\n        const storeData = { ...setting };\\n        if (typeof storeData.audioInput != \\\"string\\\") {\\n            storeData.audioInput = null;\\n        }\\n        setItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_CLIENT, storeData);\\n        _setSetting(setting);\\n    };\\n    const clearSetting = async () => {\\n        await removeItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_CLIENT);\\n    };\\n    //////////////\\n    // 設定\\n    /////////////\\n    const setServerUrl = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (url) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.setServerUrl(url, true);\\n            settingRef.current.mmvcServerUrl = url;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setProtocol = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (proto) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.setProtocol(proto);\\n            settingRef.current.protocol = proto;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const _setInput = async () => {\\n        if (!props.voiceChangerClient)\\n            return;\\n        // console.log(\\\"[useClient] setup!(0)\\\", settingRef.current.audioInput)\\n        if (!settingRef.current.audioInput || settingRef.current.audioInput == \\\"none\\\") {\\n            // console.log(\\\"[useClient] setup!(1)\\\", settingRef.current.audioInput)\\n            const ms = (0,_util__WEBPACK_IMPORTED_MODULE_2__.createDummyMediaStream)(props.audioContext);\\n            await props.voiceChangerClient.setup(ms, settingRef.current.bufferSize, settingRef.current.forceVfDisable);\\n        }\\n        else {\\n            // console.log(\\\"[useClient] setup!(2)\\\", settingRef.current.audioInput)\\n            await props.voiceChangerClient.setup(settingRef.current.audioInput, settingRef.current.bufferSize, settingRef.current.forceVfDisable);\\n        }\\n    };\\n    const setAudioInput = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (audioInput) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            settingRef.current.audioInput = audioInput;\\n            await _setInput();\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setBufferSize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (bufferSize) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            settingRef.current.bufferSize = bufferSize;\\n            await _setInput();\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setVfForceDisabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (vfForceDisabled) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            settingRef.current.forceVfDisable = vfForceDisabled;\\n            await _setInput();\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setInputChunkNum = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (num) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.setInputChunkNum(num);\\n            settingRef.current.inputChunkNum = num;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setVoiceChangerMode = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (mode) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.setVoiceChangerMode(mode);\\n            settingRef.current.voiceChangerMode = mode;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setSampleRate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (num) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            //props.voiceChangerClient.setSampleRate(num) // Not Implemented\\n            settingRef.current.sampleRate = num;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setSpeakers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (speakers) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            settingRef.current.speakers = speakers;\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setCorrespondences = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (file) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            if (!file) {\\n                settingRef.current.correspondences = [];\\n            }\\n            else {\\n                const correspondenceText = await file.text();\\n                const cors = correspondenceText.split(\\\"\\\\n\\\").map(line => {\\n                    const items = line.split(\\\"|\\\");\\n                    if (items.length != 3) {\\n                        console.warn(\\\"Invalid Correspondence Line:\\\", line);\\n                        return null;\\n                    }\\n                    else {\\n                        const cor = {\\n                            sid: Number(items[0]),\\n                            correspondence: Number(items[1]),\\n                            dirname: items[2]\\n                        };\\n                        return cor;\\n                    }\\n                }).filter(x => { return x != null; });\\n                settingRef.current.correspondences = cors;\\n            }\\n            setSetting({ ...settingRef.current });\\n        };\\n    }, [props.voiceChangerClient]);\\n    //////////////\\n    // 操作\\n    /////////////\\n    // (1) start\\n    const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.setServerUrl(setting.mmvcServerUrl, true);\\n            props.voiceChangerClient.start();\\n        };\\n    }, [setting.mmvcServerUrl, props.voiceChangerClient]);\\n    // (2) stop\\n    const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.stop();\\n        };\\n    }, [props.voiceChangerClient]);\\n    const reloadClientSetting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            await props.voiceChangerClient.getClientSettings();\\n        };\\n    }, [props.voiceChangerClient]);\\n    return {\\n        setting,\\n        clearSetting,\\n        setServerUrl,\\n        setProtocol,\\n        setAudioInput,\\n        setBufferSize,\\n        setVfForceDisabled,\\n        setInputChunkNum,\\n        setVoiceChangerMode,\\n        setSampleRate,\\n        setSpeakers,\\n        setCorrespondences,\\n        start,\\n        stop,\\n        reloadClientSetting\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/hooks/useClientSetting.ts?\");\n\n/***/ }),\n\n/***/ \"./src/hooks/useIndexedDB.ts\":\n/*!***********************************!*\\\n  !*** ./src/hooks/useIndexedDB.ts ***!\n  \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"useIndexedDB\\\": () => (/* binding */ useIndexedDB)\\n/* harmony export */ });\\n/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! localforage */ \\\"./node_modules/localforage/dist/localforage.js\\\");\\n/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(localforage__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \\\"react\\\");\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../const */ \\\"./src/const.ts\\\");\\n\\n\\n\\nconst useIndexedDB = () => {\\n    localforage__WEBPACK_IMPORTED_MODULE_0___default().config({\\n        driver: (localforage__WEBPACK_IMPORTED_MODULE_0___default().INDEXEDDB),\\n        name: _const__WEBPACK_IMPORTED_MODULE_2__.INDEXEDDB_DB_APP_NAME,\\n        version: 1.0,\\n        storeName: _const__WEBPACK_IMPORTED_MODULE_2__.INDEXEDDB_DB_NAME,\\n        description: 'appStorage'\\n    });\\n    const setItem = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\\n        return async (key, value) => {\\n            await localforage__WEBPACK_IMPORTED_MODULE_0___default().setItem(key, value);\\n        };\\n    }, []);\\n    const getItem = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\\n        return async (key) => {\\n            return await localforage__WEBPACK_IMPORTED_MODULE_0___default().getItem(key);\\n        };\\n    }, []);\\n    const removeItem = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\\n        return async (key) => {\\n            return await localforage__WEBPACK_IMPORTED_MODULE_0___default().removeItem(key);\\n        };\\n    }, []);\\n    return {\\n        dummy: \\\"\\\",\\n        setItem,\\n        getItem,\\n        removeItem,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/hooks/useIndexedDB.ts?\");\n\n/***/ }),\n\n/***/ \"./src/hooks/useServerSetting.ts\":\n/*!***************************************!*\\\n  !*** ./src/hooks/useServerSetting.ts ***!\n  \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"useServerSetting\\\": () => (/* binding */ useServerSetting)\\n/* harmony export */ });\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \\\"react\\\");\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../const */ \\\"./src/const.ts\\\");\\n/* harmony import */ var _useIndexedDB__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useIndexedDB */ \\\"./src/hooks/useIndexedDB.ts\\\");\\n\\n\\n\\nconst InitialFileUploadSetting = {\\n    pyTorchModel: null,\\n    configFile: null,\\n    onnxModel: null,\\n};\\nconst useServerSetting = (props) => {\\n    const settingRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_const__WEBPACK_IMPORTED_MODULE_1__.DefaultVoiceChangerServerSetting);\\n    const [setting, _setSetting] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(settingRef.current);\\n    const [serverInfo, _setServerInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\\n    const [fileUploadSetting, setFileUploadSetting] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(InitialFileUploadSetting);\\n    const { setItem, getItem, removeItem } = (0,_useIndexedDB__WEBPACK_IMPORTED_MODULE_2__.useIndexedDB)();\\n    // 初期化 その１ DBから取得\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        const loadCache = async () => {\\n            const setting = await getItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_SERVER);\\n            if (!setting) {\\n            }\\n            else {\\n                settingRef.current = setting;\\n            }\\n            _setSetting({ ...settingRef.current });\\n            const fileuploadSetting = await getItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_MODEL_DATA);\\n            if (!fileuploadSetting) {\\n            }\\n            else {\\n                setFileUploadSetting(fileuploadSetting);\\n            }\\n        };\\n        loadCache();\\n    }, []);\\n    // 初期化 その２ クライアントに設定\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        if (!props.voiceChangerClient)\\n            return;\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.framework, setting.framework);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.onnxExecutionProvider, setting.onnxExecutionProvider);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.srcId, \\\"\\\" + setting.srcId);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.dstId, \\\"\\\" + setting.dstId);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.convertChunkNum, \\\"\\\" + setting.convertChunkNum);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.minConvertSize, \\\"\\\" + setting.minConvertSize);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.gpu, \\\"\\\" + setting.gpu);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeOffsetRate, \\\"\\\" + setting.crossFadeOffsetRate);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeEndRate, \\\"\\\" + setting.crossFadeEndRate);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeOverlapRate, \\\"\\\" + setting.crossFadeOverlapRate);\\n        props.voiceChangerClient.updateServerSettings(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.f0Factor, \\\"\\\" + setting.f0Factor);\\n    }, [props.voiceChangerClient]);\\n    //////////////\\n    // 設定\\n    /////////////\\n    //// サーバに設定後、反映された情報と照合して値が一致していることを確認。一致していない場合はalert\\n    const _set_and_store = async (key, newVal) => {\\n        if (!props.voiceChangerClient)\\n            return false;\\n        const res = await props.voiceChangerClient.updateServerSettings(key, \\\"\\\" + newVal);\\n        _setServerInfo(res);\\n        if (newVal == res[key]) {\\n            const newSetting = {\\n                ...settingRef.current,\\n                convertChunkNum: res.convertChunkNum,\\n                minConvertSize: res.minConvertSize,\\n                srcId: res.srcId,\\n                dstId: res.dstId,\\n                gpu: res.gpu,\\n                crossFadeOffsetRate: res.crossFadeOffsetRate,\\n                crossFadeEndRate: res.crossFadeEndRate,\\n                crossFadeOverlapRate: res.crossFadeOverlapRate,\\n                framework: res.framework,\\n                onnxExecutionProvider: (!!res.onnxExecutionProvider && res.onnxExecutionProvider.length > 0) ? res.onnxExecutionProvider[0] : _const__WEBPACK_IMPORTED_MODULE_1__.DefaultVoiceChangerServerSetting.onnxExecutionProvider,\\n                f0Factor: res.f0Factor\\n            };\\n            _setSetting(newSetting);\\n            setItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_SERVER, newSetting);\\n            return true;\\n        }\\n        else {\\n            alert(`[ServerSetting] 設定が反映されていません([key:${key}, new:${newVal}, res:${res[key]}])。モデルの切り替えの場合、処理が非同期で行われるため反映されていないように見える場合があります。サーバコントロールのリロードボタンを押すとGUIに反映されるます。`);\\n            return false;\\n        }\\n    };\\n    const setFramework = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (framework) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.framework, \\\"\\\" + framework);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setOnnxExecutionProvider = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (provider) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.onnxExecutionProvider, \\\"\\\" + provider);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setSrcId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.srcId, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setDstId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.dstId, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setConvertChunkNum = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.convertChunkNum, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setMinConvertSize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.minConvertSize, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setGpu = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.gpu, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setCrossFadeOffsetRate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeOffsetRate, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setCrossFadeEndRate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeEndRate, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setCrossFadeOverlapRate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.crossFadeOverlapRate, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const setF0Factor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (num) => {\\n            return await _set_and_store(_const__WEBPACK_IMPORTED_MODULE_1__.ServerSettingKey.f0Factor, \\\"\\\" + num);\\n        };\\n    }, [props.voiceChangerClient]);\\n    //////////////\\n    // 操作\\n    /////////////\\n    const [uploadProgress, setUploadProgress] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);\\n    const [isUploading, setIsUploading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\\n    // (e) モデルアップロード\\n    const _uploadFile = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async (modelData, onprogress) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            const num = await props.voiceChangerClient.uploadFile(modelData.data, modelData.filename, onprogress);\\n            const res = await props.voiceChangerClient.concatUploadedFile(modelData.filename, num);\\n            console.log(\\\"uploaded\\\", num, res);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const loadModel = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!fileUploadSetting.pyTorchModel && !fileUploadSetting.onnxModel) {\\n                alert(\\\"PyTorchモデルとONNXモデルのどちらか一つ以上指定する必要があります。\\\");\\n                return;\\n            }\\n            if (!fileUploadSetting.configFile) {\\n                alert(\\\"Configファイルを指定する必要があります。\\\");\\n                return;\\n            }\\n            if (!props.voiceChangerClient)\\n                return;\\n            setUploadProgress(0);\\n            setIsUploading(true);\\n            // ファイルをメモリにロード\\n            if (fileUploadSetting.onnxModel && !fileUploadSetting.onnxModel.data) {\\n                fileUploadSetting.onnxModel.data = await fileUploadSetting.onnxModel.file.arrayBuffer();\\n                fileUploadSetting.onnxModel.filename = await fileUploadSetting.onnxModel.file.name;\\n            }\\n            if (fileUploadSetting.pyTorchModel && !fileUploadSetting.pyTorchModel.data) {\\n                fileUploadSetting.pyTorchModel.data = await fileUploadSetting.pyTorchModel.file.arrayBuffer();\\n                fileUploadSetting.pyTorchModel.filename = await fileUploadSetting.pyTorchModel.file.name;\\n            }\\n            if (!fileUploadSetting.configFile.data) {\\n                fileUploadSetting.configFile.data = await fileUploadSetting.configFile.file.arrayBuffer();\\n                fileUploadSetting.configFile.filename = await fileUploadSetting.configFile.file.name;\\n            }\\n            // ファイルをサーバにアップロード\\n            const models = [fileUploadSetting.onnxModel, fileUploadSetting.pyTorchModel].filter(x => { return x != null; });\\n            for (let i = 0; i < models.length; i++) {\\n                const progRate = 1 / models.length;\\n                const progOffset = 100 * i * progRate;\\n                await _uploadFile(models[i], (progress, _end) => {\\n                    // console.log(progress * progRate + progOffset, end, progRate,)\\n                    setUploadProgress(progress * progRate + progOffset);\\n                });\\n            }\\n            await _uploadFile(fileUploadSetting.configFile, (progress, end) => {\\n                console.log(progress, end);\\n            });\\n            const loadPromise = props.voiceChangerClient.loadModel(fileUploadSetting.configFile.filename, fileUploadSetting.pyTorchModel?.filename || null, fileUploadSetting.onnxModel?.filename || null);\\n            // サーバでロード中にキャッシュにセーブ\\n            const saveData = {\\n                pyTorchModel: fileUploadSetting.pyTorchModel ? { data: fileUploadSetting.pyTorchModel.data, filename: fileUploadSetting.pyTorchModel.filename } : null,\\n                onnxModel: fileUploadSetting.onnxModel ? { data: fileUploadSetting.onnxModel.data, filename: fileUploadSetting.onnxModel.filename } : null,\\n                configFile: { data: fileUploadSetting.configFile.data, filename: fileUploadSetting.configFile.filename }\\n            };\\n            setItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_MODEL_DATA, saveData);\\n            await loadPromise;\\n            setUploadProgress(0);\\n            setIsUploading(false);\\n            reloadServerInfo();\\n        };\\n    }, [fileUploadSetting, props.voiceChangerClient]);\\n    // const _uploadFile = useMemo(() => {\\n    //     return async (file: File, onprogress: (progress: number, end: boolean) => void) => {\\n    //         if (!props.voiceChangerClient) return\\n    //         const num = await props.voiceChangerClient.uploadFile(file, onprogress)\\n    //         const res = await props.voiceChangerClient.concatUploadedFile(file, num)\\n    //         console.log(\\\"uploaded\\\", num, res)\\n    //     }\\n    // }, [props.voiceChangerClient])\\n    // const loadModel = useMemo(() => {\\n    //     return async () => {\\n    //         if (!fileUploadSetting.pyTorchModel && !fileUploadSetting.onnxModel) {\\n    //             alert(\\\"PyTorchモデルとONNXモデルのどちらか一つ以上指定する必要があります。\\\")\\n    //             return\\n    //         }\\n    //         if (!fileUploadSetting.configFile) {\\n    //             alert(\\\"Configファイルを指定する必要があります。\\\")\\n    //             return\\n    //         }\\n    //         if (!props.voiceChangerClient) return\\n    //         setUploadProgress(0)\\n    //         setIsUploading(true)\\n    //         const models = [fileUploadSetting.pyTorchModel, fileUploadSetting.onnxModel].filter(x => { return x != null }) as File[]\\n    //         for (let i = 0; i < models.length; i++) {\\n    //             const progRate = 1 / models.length\\n    //             const progOffset = 100 * i * progRate\\n    //             await _uploadFile(models[i], (progress: number, _end: boolean) => {\\n    //                 // console.log(progress * progRate + progOffset, end, progRate,)\\n    //                 setUploadProgress(progress * progRate + progOffset)\\n    //             })\\n    //         }\\n    //         await _uploadFile(fileUploadSetting.configFile, (progress: number, end: boolean) => {\\n    //             console.log(progress, end)\\n    //         })\\n    //         await props.voiceChangerClient.loadModel(fileUploadSetting.configFile, fileUploadSetting.pyTorchModel, fileUploadSetting.onnxModel)\\n    //         setUploadProgress(0)\\n    //         setIsUploading(false)\\n    //         reloadServerInfo()\\n    //     }\\n    // }, [fileUploadSetting, props.voiceChangerClient])\\n    const reloadServerInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            const res = await props.voiceChangerClient.getServerSettings();\\n            _setServerInfo(res);\\n            _setSetting({\\n                ...settingRef.current,\\n                convertChunkNum: res.convertChunkNum,\\n                srcId: res.srcId,\\n                dstId: res.dstId,\\n                gpu: res.gpu,\\n                crossFadeOffsetRate: res.crossFadeOffsetRate,\\n                crossFadeEndRate: res.crossFadeEndRate,\\n                crossFadeOverlapRate: res.crossFadeOverlapRate,\\n                framework: res.framework,\\n                onnxExecutionProvider: (!!res.onnxExecutionProvider && res.onnxExecutionProvider.length > 0) ? res.onnxExecutionProvider[0] : _const__WEBPACK_IMPORTED_MODULE_1__.DefaultVoiceChangerServerSetting.onnxExecutionProvider,\\n                f0Factor: res.f0Factor\\n            });\\n        };\\n    }, [props.voiceChangerClient]);\\n    const clearSetting = async () => {\\n        await removeItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_SERVER);\\n        await removeItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_MODEL_DATA);\\n    };\\n    return {\\n        setting,\\n        clearSetting,\\n        serverInfo,\\n        fileUploadSetting,\\n        setFramework,\\n        setOnnxExecutionProvider,\\n        setSrcId,\\n        setDstId,\\n        setConvertChunkNum,\\n        setMinConvertSize,\\n        setGpu,\\n        setCrossFadeOffsetRate,\\n        setCrossFadeEndRate,\\n        setCrossFadeOverlapRate,\\n        setF0Factor,\\n        reloadServerInfo,\\n        setFileUploadSetting,\\n        loadModel,\\n        uploadProgress,\\n        isUploading,\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/hooks/useServerSetting.ts?\");\n\n/***/ }),\n\n/***/ \"./src/hooks/useWorkletSetting.ts\":\n/*!****************************************!*\\\n  !*** ./src/hooks/useWorkletSetting.ts ***!\n  \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"useWorkletSetting\\\": () => (/* binding */ useWorkletSetting)\\n/* harmony export */ });\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \\\"react\\\");\\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../const */ \\\"./src/const.ts\\\");\\n/* harmony import */ var _useIndexedDB__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useIndexedDB */ \\\"./src/hooks/useIndexedDB.ts\\\");\\n\\n\\n\\nconst useWorkletSetting = (props) => {\\n    const [setting, _setSetting] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_const__WEBPACK_IMPORTED_MODULE_1__.DefaultWorkletSetting);\\n    const { setItem, getItem, removeItem } = (0,_useIndexedDB__WEBPACK_IMPORTED_MODULE_2__.useIndexedDB)();\\n    // 初期化 その１ DBから取得\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        const loadCache = async () => {\\n            const setting = await getItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_WORKLET);\\n            if (!setting) {\\n                // デフォルト設定\\n                const params = new URLSearchParams(location.search);\\n                const colab = params.get(\\\"colab\\\");\\n                if (colab == \\\"true\\\") {\\n                    _setSetting({\\n                        numTrancateTreshold: 300,\\n                        volTrancateThreshold: 0.0005,\\n                        volTrancateLength: 32,\\n                    });\\n                }\\n                else {\\n                    _setSetting({\\n                        numTrancateTreshold: 150,\\n                        volTrancateThreshold: 0.0005,\\n                        volTrancateLength: 32,\\n                    });\\n                }\\n            }\\n            else {\\n                _setSetting({\\n                    ...setting\\n                });\\n            }\\n        };\\n        loadCache();\\n    }, []);\\n    // 初期化 その２ クライアントに設定\\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\\n        if (!props.voiceChangerClient)\\n            return;\\n        props.voiceChangerClient.configureWorklet(setting);\\n    }, [props.voiceChangerClient, setting]);\\n    const setSetting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return (setting) => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.configureWorklet(setting);\\n            _setSetting(setting);\\n            setItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_WORKLET, setting);\\n        };\\n    }, [props.voiceChangerClient]);\\n    const clearSetting = async () => {\\n        await removeItem(_const__WEBPACK_IMPORTED_MODULE_1__.INDEXEDDB_KEY_WORKLET);\\n    };\\n    const startOutputRecording = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.startOutputRecordingWorklet();\\n        };\\n    }, [props.voiceChangerClient]);\\n    const stopOutputRecording = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\\n        return async () => {\\n            if (!props.voiceChangerClient)\\n                return;\\n            props.voiceChangerClient.stopOutputRecordingWorklet();\\n        };\\n    }, [props.voiceChangerClient]);\\n    return {\\n        setting,\\n        clearSetting,\\n        setSetting,\\n        startOutputRecording,\\n        stopOutputRecording\\n    };\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/hooks/useWorkletSetting.ts?\");\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/*!**********************!*\\\n  !*** ./src/index.ts ***!\n  \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"BufferSize\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.BufferSize),\\n/* harmony export */   \\\"DefaultVoiceChangerClientSetting\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.DefaultVoiceChangerClientSetting),\\n/* harmony export */   \\\"DefaultVoiceChangerServerSetting\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.DefaultVoiceChangerServerSetting),\\n/* harmony export */   \\\"DefaultWorkletSetting\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.DefaultWorkletSetting),\\n/* harmony export */   \\\"Framework\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.Framework),\\n/* harmony export */   \\\"INDEXEDDB_DB_APP_NAME\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_DB_APP_NAME),\\n/* harmony export */   \\\"INDEXEDDB_DB_NAME\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_DB_NAME),\\n/* harmony export */   \\\"INDEXEDDB_KEY_CLIENT\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_KEY_CLIENT),\\n/* harmony export */   \\\"INDEXEDDB_KEY_MODEL_DATA\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_KEY_MODEL_DATA),\\n/* harmony export */   \\\"INDEXEDDB_KEY_SERVER\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_KEY_SERVER),\\n/* harmony export */   \\\"INDEXEDDB_KEY_WORKLET\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.INDEXEDDB_KEY_WORKLET),\\n/* harmony export */   \\\"OnnxExecutionProvider\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.OnnxExecutionProvider),\\n/* harmony export */   \\\"Protocol\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.Protocol),\\n/* harmony export */   \\\"SampleRate\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.SampleRate),\\n/* harmony export */   \\\"ServerSettingKey\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.ServerSettingKey),\\n/* harmony export */   \\\"VOICE_CHANGER_CLIENT_EXCEPTION\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.VOICE_CHANGER_CLIENT_EXCEPTION),\\n/* harmony export */   \\\"VoiceChangerClient\\\": () => (/* reexport safe */ _VoiceChangerClient__WEBPACK_IMPORTED_MODULE_1__.VoiceChangerClient),\\n/* harmony export */   \\\"VoiceChangerMode\\\": () => (/* reexport safe */ _const__WEBPACK_IMPORTED_MODULE_0__.VoiceChangerMode),\\n/* harmony export */   \\\"createDummyMediaStream\\\": () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_2__.createDummyMediaStream),\\n/* harmony export */   \\\"fileSelector\\\": () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_2__.fileSelector),\\n/* harmony export */   \\\"fileSelectorAsDataURL\\\": () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_2__.fileSelectorAsDataURL),\\n/* harmony export */   \\\"useClient\\\": () => (/* reexport safe */ _hooks_useClient__WEBPACK_IMPORTED_MODULE_3__.useClient),\\n/* harmony export */   \\\"useIndexedDB\\\": () => (/* reexport safe */ _hooks_useIndexedDB__WEBPACK_IMPORTED_MODULE_4__.useIndexedDB),\\n/* harmony export */   \\\"validateUrl\\\": () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_2__.validateUrl)\\n/* harmony export */ });\\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./const */ \\\"./src/const.ts\\\");\\n/* harmony import */ var _VoiceChangerClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VoiceChangerClient */ \\\"./src/VoiceChangerClient.ts\\\");\\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ \\\"./src/util.ts\\\");\\n/* harmony import */ var _hooks_useClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/useClient */ \\\"./src/hooks/useClient.ts\\\");\\n/* harmony import */ var _hooks_useIndexedDB__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/useIndexedDB */ \\\"./src/hooks/useIndexedDB.ts\\\");\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/util.ts\":\n/*!*********************!*\\\n  !*** ./src/util.ts ***!\n  \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"createDummyMediaStream\\\": () => (/* binding */ createDummyMediaStream),\\n/* harmony export */   \\\"fileSelector\\\": () => (/* binding */ fileSelector),\\n/* harmony export */   \\\"fileSelectorAsDataURL\\\": () => (/* binding */ fileSelectorAsDataURL),\\n/* harmony export */   \\\"validateUrl\\\": () => (/* binding */ validateUrl)\\n/* harmony export */ });\\nconst createDummyMediaStream = (audioContext) => {\\n    const dummyOutputNode = audioContext.createMediaStreamDestination();\\n    const gainNode = audioContext.createGain();\\n    gainNode.gain.value = 0.0;\\n    gainNode.connect(dummyOutputNode);\\n    const oscillatorNode = audioContext.createOscillator();\\n    oscillatorNode.frequency.value = 440;\\n    oscillatorNode.connect(gainNode);\\n    oscillatorNode.start();\\n    return dummyOutputNode.stream;\\n};\\nconst fileSelector = async (regex) => {\\n    const fileInput = document.createElement(\\\"input\\\");\\n    fileInput.type = \\\"file\\\";\\n    const p = new Promise((resolve, reject) => {\\n        fileInput.onchange = (e) => {\\n            if (e.target instanceof HTMLInputElement == false) {\\n                console.log(\\\"invalid target!\\\", e.target);\\n                reject(\\\"invalid target\\\");\\n                return null;\\n            }\\n            const target = e.target;\\n            if (!target.files || target.files.length == 0) {\\n                reject(\\\"no file selected\\\");\\n                return null;\\n            }\\n            if (regex != \\\"\\\" && target.files[0].type.match(regex)) {\\n                reject(`not target file type ${target.files[0].type}`);\\n                return null;\\n            }\\n            resolve(target.files[0]);\\n            return null;\\n        };\\n        fileInput.click();\\n    });\\n    return await p;\\n};\\nconst fileSelectorAsDataURL = async (regex) => {\\n    const f = await fileSelector(regex);\\n    if (!f) {\\n        return f;\\n    }\\n    const url = await new Promise((resolve) => {\\n        const reader = new FileReader();\\n        reader.onload = () => {\\n            console.log(\\\"load data\\\", reader.result);\\n            resolve(reader.result);\\n        };\\n        reader.readAsDataURL(f);\\n    });\\n    return url;\\n};\\nconst validateUrl = (url) => {\\n    if (url.endsWith(\\\"/\\\")) {\\n        return url.substring(0, url.length - 1);\\n    }\\n    return url;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/util.ts?\");\n\n/***/ }),\n\n/***/ \"./src/utils/BlockingQueue.ts\":\n/*!************************************!*\\\n  !*** ./src/utils/BlockingQueue.ts ***!\n  \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"BlockingQueue\\\": () => (/* binding */ BlockingQueue)\\n/* harmony export */ });\\nclass BlockingQueue {\\n    constructor() {\\n        this._resolvers = [];\\n        this._promises = [];\\n    }\\n    _add() {\\n        this._promises.push(new Promise((resolve) => {\\n            this._resolvers.push(resolve);\\n        }));\\n    }\\n    enqueue(t) {\\n        if (this._resolvers.length == 0)\\n            this._add();\\n        const resolve = this._resolvers.shift();\\n        resolve(t);\\n    }\\n    dequeue() {\\n        if (this._promises.length == 0)\\n            this._add();\\n        const promise = this._promises.shift();\\n        return promise;\\n    }\\n    isEmpty() {\\n        return this._promises.length == 0;\\n    }\\n    isBlocked() {\\n        return this._resolvers.length != 0;\\n    }\\n    get length() {\\n        return this._promises.length - this._resolvers.length;\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./src/utils/BlockingQueue.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/tslib/tslib.es6.js\":\n/*!*****************************************!*\\\n  !*** ./node_modules/tslib/tslib.es6.js ***!\n  \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"__assign\\\": () => (/* binding */ __assign),\\n/* harmony export */   \\\"__asyncDelegator\\\": () => (/* binding */ __asyncDelegator),\\n/* harmony export */   \\\"__asyncGenerator\\\": () => (/* binding */ __asyncGenerator),\\n/* harmony export */   \\\"__asyncValues\\\": () => (/* binding */ __asyncValues),\\n/* harmony export */   \\\"__await\\\": () => (/* binding */ __await),\\n/* harmony export */   \\\"__awaiter\\\": () => (/* binding */ __awaiter),\\n/* harmony export */   \\\"__classPrivateFieldGet\\\": () => (/* binding */ __classPrivateFieldGet),\\n/* harmony export */   \\\"__classPrivateFieldSet\\\": () => (/* binding */ __classPrivateFieldSet),\\n/* harmony export */   \\\"__createBinding\\\": () => (/* binding */ __createBinding),\\n/* harmony export */   \\\"__decorate\\\": () => (/* binding */ __decorate),\\n/* harmony export */   \\\"__exportStar\\\": () => (/* binding */ __exportStar),\\n/* harmony export */   \\\"__extends\\\": () => (/* binding */ __extends),\\n/* harmony export */   \\\"__generator\\\": () => (/* binding */ __generator),\\n/* harmony export */   \\\"__importDefault\\\": () => (/* binding */ __importDefault),\\n/* harmony export */   \\\"__importStar\\\": () => (/* binding */ __importStar),\\n/* harmony export */   \\\"__makeTemplateObject\\\": () => (/* binding */ __makeTemplateObject),\\n/* harmony export */   \\\"__metadata\\\": () => (/* binding */ __metadata),\\n/* harmony export */   \\\"__param\\\": () => (/* binding */ __param),\\n/* harmony export */   \\\"__read\\\": () => (/* binding */ __read),\\n/* harmony export */   \\\"__rest\\\": () => (/* binding */ __rest),\\n/* harmony export */   \\\"__spread\\\": () => (/* binding */ __spread),\\n/* harmony export */   \\\"__spreadArrays\\\": () => (/* binding */ __spreadArrays),\\n/* harmony export */   \\\"__values\\\": () => (/* binding */ __values)\\n/* harmony export */ });\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation.\\r\\n\\r\\nPermission to use, copy, modify, and/or distribute this software for any\\r\\npurpose with or without fee is hereby granted.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\\r\\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\\r\\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\\r\\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\\r\\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\\r\\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\\r\\nPERFORMANCE OF THIS SOFTWARE.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n    extendStatics = Object.setPrototypeOf ||\\r\\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n    return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n    extendStatics(d, b);\\r\\n    function __() { this.constructor = d; }\\r\\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n    __assign = Object.assign || function __assign(t) {\\r\\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n            s = arguments[i];\\r\\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n        }\\r\\n        return t;\\r\\n    }\\r\\n    return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n    var t = {};\\r\\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n        t[p] = s[p];\\r\\n    if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n                t[p[i]] = s[p[i]];\\r\\n        }\\r\\n    return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n    if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n    return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n    if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n    return new (P || (P = Promise))(function (resolve, reject) {\\r\\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n        function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n    });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n    return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n    function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n    function step(op) {\\r\\n        if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n        while (_) try {\\r\\n            if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n            if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n            switch (op[0]) {\\r\\n                case 0: case 1: t = op; break;\\r\\n                case 4: _.label++; return { value: op[1], done: false };\\r\\n                case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n                default:\\r\\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n                    if (t[2]) _.ops.pop();\\r\\n                    _.trys.pop(); continue;\\r\\n            }\\r\\n            op = body.call(thisArg, _);\\r\\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n    }\\r\\n}\\r\\n\\r\\nfunction __createBinding(o, m, k, k2) {\\r\\n    if (k2 === undefined) k2 = k;\\r\\n    o[k2] = m[k];\\r\\n}\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n    for (var p in m) if (p !== \\\"default\\\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n    var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n    if (m) return m.call(o);\\r\\n    if (o && typeof o.length === \\\"number\\\") return {\\r\\n        next: function () {\\r\\n            if (o && i >= o.length) o = void 0;\\r\\n            return { value: o && o[i++], done: !o };\\r\\n        }\\r\\n    };\\r\\n    throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n    var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n    if (!m) return o;\\r\\n    var i = m.call(o), r, ar = [], e;\\r\\n    try {\\r\\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n    }\\r\\n    catch (error) { e = { error: error }; }\\r\\n    finally {\\r\\n        try {\\r\\n            if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n        }\\r\\n        finally { if (e) throw e.error; }\\r\\n    }\\r\\n    return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n    for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n        ar = ar.concat(__read(arguments[i]));\\r\\n    return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n            r[k] = a[j];\\r\\n    return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n    if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n    return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n    function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n    function reject(value) { resume(\\\"throw\\\", value); }\\r\\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n    var i, p;\\r\\n    return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n    if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n    var m = o[Symbol.asyncIterator], i;\\r\\n    return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n    if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n    return cooked;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n    if (mod && mod.__esModule) return mod;\\r\\n    var result = {};\\r\\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\\r\\n    result.default = mod;\\r\\n    return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n    return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n    if (!privateMap.has(receiver)) {\\r\\n        throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n    }\\r\\n    return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n    if (!privateMap.has(receiver)) {\\r\\n        throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n    }\\r\\n    privateMap.set(receiver, value);\\r\\n    return value;\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/tslib/tslib.es6.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/ua-parser-js/src/ua-parser.js\":\n/*!****************************************************!*\\\n  !*** ./node_modules/ua-parser-js/src/ua-parser.js ***!\n  \\****************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"var __WEBPACK_AMD_DEFINE_RESULT__;/////////////////////////////////////////////////////////////////////////////////\\n/* UAParser.js v1.0.33\\n   Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\\n   MIT License *//*\\n   Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\\n   Supports browser & node.js environment. \\n   Demo   : https://faisalman.github.io/ua-parser-js\\n   Source : https://github.com/faisalman/ua-parser-js */\\n/////////////////////////////////////////////////////////////////////////////////\\n\\n(function (window, undefined) {\\n\\n    'use strict';\\n\\n    //////////////\\n    // Constants\\n    /////////////\\n\\n\\n    var LIBVERSION  = '1.0.33',\\n        EMPTY       = '',\\n        UNKNOWN     = '?',\\n        FUNC_TYPE   = 'function',\\n        UNDEF_TYPE  = 'undefined',\\n        OBJ_TYPE    = 'object',\\n        STR_TYPE    = 'string',\\n        MAJOR       = 'major',\\n        MODEL       = 'model',\\n        NAME        = 'name',\\n        TYPE        = 'type',\\n        VENDOR      = 'vendor',\\n        VERSION     = 'version',\\n        ARCHITECTURE= 'architecture',\\n        CONSOLE     = 'console',\\n        MOBILE      = 'mobile',\\n        TABLET      = 'tablet',\\n        SMARTTV     = 'smarttv',\\n        WEARABLE    = 'wearable',\\n        EMBEDDED    = 'embedded',\\n        UA_MAX_LENGTH = 350;\\n\\n    var AMAZON  = 'Amazon',\\n        APPLE   = 'Apple',\\n        ASUS    = 'ASUS',\\n        BLACKBERRY = 'BlackBerry',\\n        BROWSER = 'Browser',\\n        CHROME  = 'Chrome',\\n        EDGE    = 'Edge',\\n        FIREFOX = 'Firefox',\\n        GOOGLE  = 'Google',\\n        HUAWEI  = 'Huawei',\\n        LG      = 'LG',\\n        MICROSOFT = 'Microsoft',\\n        MOTOROLA  = 'Motorola',\\n        OPERA   = 'Opera',\\n        SAMSUNG = 'Samsung',\\n        SHARP   = 'Sharp',\\n        SONY    = 'Sony',\\n        XIAOMI  = 'Xiaomi',\\n        ZEBRA   = 'Zebra',\\n        FACEBOOK   = 'Facebook';\\n\\n    ///////////\\n    // Helper\\n    //////////\\n\\n    var extend = function (regexes, extensions) {\\n            var mergedRegexes = {};\\n            for (var i in regexes) {\\n                if (extensions[i] && extensions[i].length % 2 === 0) {\\n                    mergedRegexes[i] = extensions[i].concat(regexes[i]);\\n                } else {\\n                    mergedRegexes[i] = regexes[i];\\n                }\\n            }\\n            return mergedRegexes;\\n        },\\n        enumerize = function (arr) {\\n            var enums = {};\\n            for (var i=0; i<arr.length; i++) {\\n                enums[arr[i].toUpperCase()] = arr[i];\\n            }\\n            return enums;\\n        },\\n        has = function (str1, str2) {\\n            return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\\n        },\\n        lowerize = function (str) {\\n            return str.toLowerCase();\\n        },\\n        majorize = function (version) {\\n            return typeof(version) === STR_TYPE ? version.replace(/[^\\\\d\\\\.]/g, EMPTY).split('.')[0] : undefined;\\n        },\\n        trim = function (str, len) {\\n            if (typeof(str) === STR_TYPE) {\\n                str = str.replace(/^\\\\s\\\\s*/, EMPTY);\\n                return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\\n            }\\n    };\\n\\n    ///////////////\\n    // Map helper\\n    //////////////\\n\\n    var rgxMapper = function (ua, arrays) {\\n\\n            var i = 0, j, k, p, q, matches, match;\\n\\n            // loop through all regexes maps\\n            while (i < arrays.length && !matches) {\\n\\n                var regex = arrays[i],       // even sequence (0,2,4,..)\\n                    props = arrays[i + 1];   // odd sequence (1,3,5,..)\\n                j = k = 0;\\n\\n                // try matching uastring with regexes\\n                while (j < regex.length && !matches) {\\n\\n                    matches = regex[j++].exec(ua);\\n\\n                    if (!!matches) {\\n                        for (p = 0; p < props.length; p++) {\\n                            match = matches[++k];\\n                            q = props[p];\\n                            // check if given property is actually array\\n                            if (typeof q === OBJ_TYPE && q.length > 0) {\\n                                if (q.length === 2) {\\n                                    if (typeof q[1] == FUNC_TYPE) {\\n                                        // assign modified match\\n                                        this[q[0]] = q[1].call(this, match);\\n                                    } else {\\n                                        // assign given value, ignore regex match\\n                                        this[q[0]] = q[1];\\n                                    }\\n                                } else if (q.length === 3) {\\n                                    // check whether function or regex\\n                                    if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\\n                                        // call function (usually string mapper)\\n                                        this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\\n                                    } else {\\n                                        // sanitize match using given regex\\n                                        this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\\n                                    }\\n                                } else if (q.length === 4) {\\n                                        this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\\n                                }\\n                            } else {\\n                                this[q] = match ? match : undefined;\\n                            }\\n                        }\\n                    }\\n                }\\n                i += 2;\\n            }\\n        },\\n\\n        strMapper = function (str, map) {\\n\\n            for (var i in map) {\\n                // check if current value is array\\n                if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\\n                    for (var j = 0; j < map[i].length; j++) {\\n                        if (has(map[i][j], str)) {\\n                            return (i === UNKNOWN) ? undefined : i;\\n                        }\\n                    }\\n                } else if (has(map[i], str)) {\\n                    return (i === UNKNOWN) ? undefined : i;\\n                }\\n            }\\n            return str;\\n    };\\n\\n    ///////////////\\n    // String map\\n    //////////////\\n\\n    // Safari < 3.0\\n    var oldSafariMap = {\\n            '1.0'   : '/8',\\n            '1.2'   : '/1',\\n            '1.3'   : '/3',\\n            '2.0'   : '/412',\\n            '2.0.2' : '/416',\\n            '2.0.3' : '/417',\\n            '2.0.4' : '/419',\\n            '?'     : '/'\\n        },\\n        windowsVersionMap = {\\n            'ME'        : '4.90',\\n            'NT 3.11'   : 'NT3.51',\\n            'NT 4.0'    : 'NT4.0',\\n            '2000'      : 'NT 5.0',\\n            'XP'        : ['NT 5.1', 'NT 5.2'],\\n            'Vista'     : 'NT 6.0',\\n            '7'         : 'NT 6.1',\\n            '8'         : 'NT 6.2',\\n            '8.1'       : 'NT 6.3',\\n            '10'        : ['NT 6.4', 'NT 10.0'],\\n            'RT'        : 'ARM'\\n    };\\n\\n    //////////////\\n    // Regex map\\n    /////////////\\n\\n    var regexes = {\\n\\n        browser : [[\\n\\n            /\\\\b(?:crmo|crios)\\\\/([\\\\w\\\\.]+)/i                                      // Chrome for Android/iOS\\n            ], [VERSION, [NAME, 'Chrome']], [\\n            /edg(?:e|ios|a)?\\\\/([\\\\w\\\\.]+)/i                                       // Microsoft Edge\\n            ], [VERSION, [NAME, 'Edge']], [\\n\\n            // Presto based\\n            /(opera mini)\\\\/([-\\\\w\\\\.]+)/i,                                        // Opera Mini\\n            /(opera [mobiletab]{3,6})\\\\b.+version\\\\/([-\\\\w\\\\.]+)/i,                 // Opera Mobi/Tablet\\n            /(opera)(?:.+version\\\\/|[\\\\/ ]+)([\\\\w\\\\.]+)/i                           // Opera\\n            ], [NAME, VERSION], [\\n            /opios[\\\\/ ]+([\\\\w\\\\.]+)/i                                             // Opera mini on iphone >= 8.0\\n            ], [VERSION, [NAME, OPERA+' Mini']], [\\n            /\\\\bopr\\\\/([\\\\w\\\\.]+)/i                                                 // Opera Webkit\\n            ], [VERSION, [NAME, OPERA]], [\\n\\n            // Mixed\\n            /(kindle)\\\\/([\\\\w\\\\.]+)/i,                                             // Kindle\\n            /(lunascape|maxthon|netfront|jasmine|blazer)[\\\\/ ]?([\\\\w\\\\.]*)/i,      // Lunascape/Maxthon/Netfront/Jasmine/Blazer\\n            // Trident based\\n            /(avant |iemobile|slim)(?:browser)?[\\\\/ ]?([\\\\w\\\\.]*)/i,               // Avant/IEMobile/SlimBrowser\\n            /(ba?idubrowser)[\\\\/ ]?([\\\\w\\\\.]+)/i,                                  // Baidu Browser\\n            /(?:ms|\\\\()(ie) ([\\\\w\\\\.]+)/i,                                         // Internet Explorer\\n\\n            // Webkit/KHTML based                                               // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\\n            /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\\\/([-\\\\w\\\\.]+)/i,\\n                                                                                // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\\n            /(weibo)__([\\\\d\\\\.]+)/i                                               // Weibo\\n            ], [NAME, VERSION], [\\n            /(?:\\\\buc? ?browser|(?:juc.+)ucweb)[\\\\/ ]?([\\\\w\\\\.]+)/i                 // UCBrowser\\n            ], [VERSION, [NAME, 'UC'+BROWSER]], [\\n            /microm.+\\\\bqbcore\\\\/([\\\\w\\\\.]+)/i,                                     // WeChat Desktop for Windows Built-in Browser\\n            /\\\\bqbcore\\\\/([\\\\w\\\\.]+).+microm/i\\n            ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\\n            /micromessenger\\\\/([\\\\w\\\\.]+)/i                                        // WeChat\\n            ], [VERSION, [NAME, 'WeChat']], [\\n            /konqueror\\\\/([\\\\w\\\\.]+)/i                                             // Konqueror\\n            ], [VERSION, [NAME, 'Konqueror']], [\\n            /trident.+rv[: ]([\\\\w\\\\.]{1,9})\\\\b.+like gecko/i                       // IE11\\n            ], [VERSION, [NAME, 'IE']], [\\n            /yabrowser\\\\/([\\\\w\\\\.]+)/i                                             // Yandex\\n            ], [VERSION, [NAME, 'Yandex']], [\\n            /(avast|avg)\\\\/([\\\\w\\\\.]+)/i                                           // Avast/AVG Secure Browser\\n            ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\\n            /\\\\bfocus\\\\/([\\\\w\\\\.]+)/i                                               // Firefox Focus\\n            ], [VERSION, [NAME, FIREFOX+' Focus']], [\\n            /\\\\bopt\\\\/([\\\\w\\\\.]+)/i                                                 // Opera Touch\\n            ], [VERSION, [NAME, OPERA+' Touch']], [\\n            /coc_coc\\\\w+\\\\/([\\\\w\\\\.]+)/i                                            // Coc Coc Browser\\n            ], [VERSION, [NAME, 'Coc Coc']], [\\n            /dolfin\\\\/([\\\\w\\\\.]+)/i                                                // Dolphin\\n            ], [VERSION, [NAME, 'Dolphin']], [\\n            /coast\\\\/([\\\\w\\\\.]+)/i                                                 // Opera Coast\\n            ], [VERSION, [NAME, OPERA+' Coast']], [\\n            /miuibrowser\\\\/([\\\\w\\\\.]+)/i                                           // MIUI Browser\\n            ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\\n            /fxios\\\\/([-\\\\w\\\\.]+)/i                                                // Firefox for iOS\\n            ], [VERSION, [NAME, FIREFOX]], [\\n            /\\\\bqihu|(qi?ho?o?|360)browser/i                                     // 360\\n            ], [[NAME, '360 '+BROWSER]], [\\n            /(oculus|samsung|sailfish|huawei)browser\\\\/([\\\\w\\\\.]+)/i\\n            ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [                      // Oculus/Samsung/Sailfish/Huawei Browser\\n            /(comodo_dragon)\\\\/([\\\\w\\\\.]+)/i                                       // Comodo Dragon\\n            ], [[NAME, /_/g, ' '], VERSION], [\\n            /(electron)\\\\/([\\\\w\\\\.]+) safari/i,                                    // Electron-based App\\n            /(tesla)(?: qtcarbrowser|\\\\/(20\\\\d\\\\d\\\\.[-\\\\w\\\\.]+))/i,                   // Tesla\\n            /m?(qqbrowser|baiduboxapp|2345Explorer)[\\\\/ ]?([\\\\w\\\\.]+)/i            // QQBrowser/Baidu App/2345 Browser\\n            ], [NAME, VERSION], [\\n            /(metasr)[\\\\/ ]?([\\\\w\\\\.]+)/i,                                         // SouGouBrowser\\n            /(lbbrowser)/i,                                                     // LieBao Browser\\n            /\\\\[(linkedin)app\\\\]/i                                                // LinkedIn App for iOS & Android\\n            ], [NAME], [\\n\\n            // WebView\\n            /((?:fban\\\\/fbios|fb_iab\\\\/fb4a)(?!.+fbav)|;fbav\\\\/([\\\\w\\\\.]+);)/i       // Facebook App for iOS & Android\\n            ], [[NAME, FACEBOOK], VERSION], [\\n            /safari (line)\\\\/([\\\\w\\\\.]+)/i,                                        // Line App for iOS\\n            /\\\\b(line)\\\\/([\\\\w\\\\.]+)\\\\/iab/i,                                        // Line App for Android\\n            /(chromium|instagram)[\\\\/ ]([-\\\\w\\\\.]+)/i                              // Chromium/Instagram\\n            ], [NAME, VERSION], [\\n            /\\\\bgsa\\\\/([\\\\w\\\\.]+) .*safari\\\\//i                                      // Google Search Appliance on iOS\\n            ], [VERSION, [NAME, 'GSA']], [\\n\\n            /headlesschrome(?:\\\\/([\\\\w\\\\.]+)| )/i                                  // Chrome Headless\\n            ], [VERSION, [NAME, CHROME+' Headless']], [\\n\\n            / wv\\\\).+(chrome)\\\\/([\\\\w\\\\.]+)/i                                       // Chrome WebView\\n            ], [[NAME, CHROME+' WebView'], VERSION], [\\n\\n            /droid.+ version\\\\/([\\\\w\\\\.]+)\\\\b.+(?:mobile safari|safari)/i           // Android Browser\\n            ], [VERSION, [NAME, 'Android '+BROWSER]], [\\n\\n            /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\\\/v?([\\\\w\\\\.]+)/i       // Chrome/OmniWeb/Arora/Tizen/Nokia\\n            ], [NAME, VERSION], [\\n\\n            /version\\\\/([\\\\w\\\\.\\\\,]+) .*mobile\\\\/\\\\w+ (safari)/i                      // Mobile Safari\\n            ], [VERSION, [NAME, 'Mobile Safari']], [\\n            /version\\\\/([\\\\w(\\\\.|\\\\,)]+) .*(mobile ?safari|safari)/i                // Safari & Safari Mobile\\n            ], [VERSION, NAME], [\\n            /webkit.+?(mobile ?safari|safari)(\\\\/[\\\\w\\\\.]+)/i                      // Safari < 3.0\\n            ], [NAME, [VERSION, strMapper, oldSafariMap]], [\\n\\n            /(webkit|khtml)\\\\/([\\\\w\\\\.]+)/i\\n            ], [NAME, VERSION], [\\n\\n            // Gecko based\\n            /(navigator|netscape\\\\d?)\\\\/([-\\\\w\\\\.]+)/i                              // Netscape\\n            ], [[NAME, 'Netscape'], VERSION], [\\n            /mobile vr; rv:([\\\\w\\\\.]+)\\\\).+firefox/i                               // Firefox Reality\\n            ], [VERSION, [NAME, FIREFOX+' Reality']], [\\n            /ekiohf.+(flow)\\\\/([\\\\w\\\\.]+)/i,                                       // Flow\\n            /(swiftfox)/i,                                                      // Swiftfox\\n            /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\\\/ ]?([\\\\w\\\\.\\\\+]+)/i,\\n                                                                                // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\\n            /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\\\/([-\\\\w\\\\.]+)$/i,\\n                                                                                // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\\n            /(firefox)\\\\/([\\\\w\\\\.]+)/i,                                            // Other Firefox-based\\n            /(mozilla)\\\\/([\\\\w\\\\.]+) .+rv\\\\:.+gecko\\\\/\\\\d+/i,                         // Mozilla\\n\\n            // Other\\n            /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\\\. ]?browser)[-\\\\/ ]?v?([\\\\w\\\\.]+)/i,\\n                                                                                // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\\n            /(links) \\\\(([\\\\w\\\\.]+)/i                                              // Links\\n            ], [NAME, VERSION], [\\n            \\n            /(cobalt)\\\\/([\\\\w\\\\.]+)/i                                              // Cobalt\\n            ], [NAME, [VERSION, /master.|lts./, \\\"\\\"]]\\n        ],\\n\\n        cpu : [[\\n\\n            /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\\\)]/i                     // AMD64 (x64)\\n            ], [[ARCHITECTURE, 'amd64']], [\\n\\n            /(ia32(?=;))/i                                                      // IA32 (quicktime)\\n            ], [[ARCHITECTURE, lowerize]], [\\n\\n            /((?:i[346]|x)86)[;\\\\)]/i                                            // IA32 (x86)\\n            ], [[ARCHITECTURE, 'ia32']], [\\n\\n            /\\\\b(aarch64|arm(v?8e?l?|_?64))\\\\b/i                                 // ARM64\\n            ], [[ARCHITECTURE, 'arm64']], [\\n\\n            /\\\\b(arm(?:v[67])?ht?n?[fl]p?)\\\\b/i                                   // ARMHF\\n            ], [[ARCHITECTURE, 'armhf']], [\\n\\n            // PocketPC mistakenly identified as PowerPC\\n            /windows (ce|mobile); ppc;/i\\n            ], [[ARCHITECTURE, 'arm']], [\\n\\n            /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\\\))/i                            // PowerPC\\n            ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\\n\\n            /(sun4\\\\w)[;\\\\)]/i                                                    // SPARC\\n            ], [[ARCHITECTURE, 'sparc']], [\\n\\n            /((?:avr32|ia64(?=;))|68k(?=\\\\))|\\\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\\\b|pa-risc)/i\\n                                                                                // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\\n            ], [[ARCHITECTURE, lowerize]]\\n        ],\\n\\n        device : [[\\n\\n            //////////////////////////\\n            // MOBILES & TABLETS\\n            // Ordered by popularity\\n            /////////////////////////\\n\\n            // Samsung\\n            /\\\\b(sch-i[89]0\\\\d|shw-m380s|sm-[ptx]\\\\w{2,4}|gt-[pn]\\\\d{2,4}|sgh-t8[56]9|nexus 10)/i\\n            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\\n            /\\\\b((?:s[cgp]h|gt|sm)-\\\\w+|galaxy nexus)/i,\\n            /samsung[- ]([-\\\\w]+)/i,\\n            /sec-(sgh\\\\w+)/i\\n            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\\n\\n            // Apple\\n            /\\\\((ip(?:hone|od)[\\\\w ]*);/i                                         // iPod/iPhone\\n            ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\\n            /\\\\((ipad);[-\\\\w\\\\),; ]+apple/i,                                       // iPad\\n            /applecoremedia\\\\/[\\\\w\\\\.]+ \\\\((ipad)/i,\\n            /\\\\b(ipad)\\\\d\\\\d?,\\\\d\\\\d?[;\\\\]].+ios/i\\n            ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\\n            /(macintosh);/i\\n            ], [MODEL, [VENDOR, APPLE]], [\\n\\n            // Huawei\\n            /\\\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\\\d{2})\\\\b(?!.+d\\\\/s)/i\\n            ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\\n            /(?:huawei|honor)([-\\\\w ]+)[;\\\\)]/i,\\n            /\\\\b(nexus 6p|\\\\w{2,4}e?-[atu]?[ln][\\\\dx][012359c][adn]?)\\\\b(?!.+d\\\\/s)/i\\n            ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\\n\\n            // Xiaomi\\n            /\\\\b(poco[\\\\w ]+)(?: bui|\\\\))/i,                                       // Xiaomi POCO\\n            /\\\\b; (\\\\w+) build\\\\/hm\\\\1/i,                                           // Xiaomi Hongmi 'numeric' models\\n            /\\\\b(hm[-_ ]?note?[_ ]?(?:\\\\d\\\\w)?) bui/i,                             // Xiaomi Hongmi\\n            /\\\\b(redmi[\\\\-_ ]?(?:note|k)?[\\\\w_ ]+)(?: bui|\\\\))/i,                   // Xiaomi Redmi\\n            /\\\\b(mi[-_ ]?(?:a\\\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\\\d?\\\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\\\))/i // Xiaomi Mi\\n            ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\\n            /\\\\b(mi[-_ ]?(?:pad)(?:[\\\\w_ ]+))(?: bui|\\\\))/i                        // Mi Pad tablets\\n            ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\\n\\n            // OPPO\\n            /; (\\\\w+) bui.+ oppo/i,\\n            /\\\\b(cph[12]\\\\d{3}|p(?:af|c[al]|d\\\\w|e[ar])[mt]\\\\d0|x9007|a101op)\\\\b/i\\n            ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\\n\\n            // Vivo\\n            /vivo (\\\\w+)(?: bui|\\\\))/i,\\n            /\\\\b(v[12]\\\\d{3}\\\\w?[at])(?: bui|;)/i\\n            ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\\n\\n            // Realme\\n            /\\\\b(rmx[12]\\\\d{3})(?: bui|;|\\\\))/i\\n            ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\\n\\n            // Motorola\\n            /\\\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\\\b[\\\\w ]+build\\\\//i,\\n            /\\\\bmot(?:orola)?[- ](\\\\w*)/i,\\n            /((?:moto[\\\\w\\\\(\\\\) ]+|xt\\\\d{3,4}|nexus 6)(?= bui|\\\\)))/i\\n            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\\n            /\\\\b(mz60\\\\d|xoom[2 ]{0,2}) build\\\\//i\\n            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\\n\\n            // LG\\n            /((?=lg)?[vl]k\\\\-?\\\\d{3}) bui| 3\\\\.[-\\\\w; ]{10}lg?-([06cv9]{3,4})/i\\n            ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\\n            /(lm(?:-?f100[nv]?|-[\\\\w\\\\.]+)(?= bui|\\\\))|nexus [45])/i,\\n            /\\\\blg[-e;\\\\/ ]+((?!browser|netcast|android tv)\\\\w+)/i,\\n            /\\\\blg-?([\\\\d\\\\w]+) bui/i\\n            ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\\n\\n            // Lenovo\\n            /(ideatab[-\\\\w ]+)/i,\\n            /lenovo ?(s[56]000[-\\\\w]+|tab(?:[\\\\w ]+)|yt[-\\\\d\\\\w]{6}|tb[-\\\\d\\\\w]{6})/i\\n            ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\\n\\n            // Nokia\\n            /(?:maemo|nokia).*(n900|lumia \\\\d+)/i,\\n            /nokia[-_ ]?([-\\\\w\\\\.]*)/i\\n            ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\\n\\n            // Google\\n            /(pixel c)\\\\b/i                                                      // Google Pixel C\\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\\n            /droid.+; (pixel[\\\\daxl ]{0,6})(?: bui|\\\\))/i                         // Google Pixel\\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\\n\\n            // Sony\\n            /droid.+ (a?\\\\d[0-2]{2}so|[c-g]\\\\d{4}|so[-gl]\\\\w+|xq-a\\\\w[4-7][12])(?= bui|\\\\).+chrome\\\\/(?![1-6]{0,1}\\\\d\\\\.))/i\\n            ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\\n            /sony tablet [ps]/i,\\n            /\\\\b(?:sony)?sgp\\\\w+(?: bui|\\\\))/i\\n            ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\\n\\n            // OnePlus\\n            / (kb2005|in20[12]5|be20[12][59])\\\\b/i,\\n            /(?:one)?(?:plus)? (a\\\\d0\\\\d\\\\d)(?: b|\\\\))/i\\n            ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\\n\\n            // Amazon\\n            /(alexa)webm/i,\\n            /(kf[a-z]{2}wi)( bui|\\\\))/i,                                         // Kindle Fire without Silk\\n            /(kf[a-z]+)( bui|\\\\)).+silk\\\\//i                                      // Kindle Fire HD\\n            ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\\n            /((?:sd|kf)[0349hijorstuw]+)( bui|\\\\)).+silk\\\\//i                     // Fire Phone\\n            ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\\n\\n            // BlackBerry\\n            /(playbook);[-\\\\w\\\\),; ]+(rim)/i                                      // BlackBerry PlayBook\\n            ], [MODEL, VENDOR, [TYPE, TABLET]], [\\n            /\\\\b((?:bb[a-f]|st[hv])100-\\\\d)/i,\\n            /\\\\(bb10; (\\\\w+)/i                                                    // BlackBerry 10\\n            ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\\n\\n            // Asus\\n            /(?:\\\\b|asus_)(transfo[prime ]{4,10} \\\\w+|eeepc|slider \\\\w+|nexus 7|padfone|p00[cj])/i\\n            ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\\n            / (z[bes]6[027][012][km][ls]|zenfone \\\\d\\\\w?)\\\\b/i\\n            ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\\n\\n            // HTC\\n            /(nexus 9)/i                                                        // HTC Nexus 9\\n            ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\\n            /(htc)[-;_ ]{1,2}([\\\\w ]+(?=\\\\)| bui)|\\\\w+)/i,                         // HTC\\n\\n            // ZTE\\n            /(zte)[- ]([\\\\w ]+?)(?: bui|\\\\/|\\\\))/i,\\n            /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\\\w]*)/i         // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\\n            ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\\n\\n            // Acer\\n            /droid.+; ([ab][1-7]-?[0178a]\\\\d\\\\d?)/i\\n            ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\\n\\n            // Meizu\\n            /droid.+; (m[1-5] note) bui/i,\\n            /\\\\bmz-([-\\\\w]{2,})/i\\n            ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\\n\\n            // Sharp\\n            /\\\\b(sh-?[altvz]?\\\\d\\\\d[a-ekm]?)/i\\n            ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\\n\\n            // MIXED\\n            /(blackberry|benq|palm(?=\\\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\\\w]*)/i,\\n                                                                                // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\\n            /(hp) ([\\\\w ]+\\\\w)/i,                                                 // HP iPAQ\\n            /(asus)-?(\\\\w+)/i,                                                   // Asus\\n            /(microsoft); (lumia[\\\\w ]+)/i,                                      // Microsoft Lumia\\n            /(lenovo)[-_ ]?([-\\\\w]+)/i,                                          // Lenovo\\n            /(jolla)/i,                                                         // Jolla\\n            /(oppo) ?([\\\\w ]+) bui/i                                             // OPPO\\n            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\\n\\n            /(archos) (gamepad2?)/i,                                            // Archos\\n            /(hp).+(touchpad(?!.+tablet)|tablet)/i,                             // HP TouchPad\\n            /(kindle)\\\\/([\\\\w\\\\.]+)/i,                                             // Kindle\\n            /(nook)[\\\\w ]+build\\\\/(\\\\w+)/i,                                        // Nook\\n            /(dell) (strea[kpr\\\\d ]*[\\\\dko])/i,                                   // Dell Streak\\n            /(le[- ]+pan)[- ]+(\\\\w{1,9}) bui/i,                                  // Le Pan Tablets\\n            /(trinity)[- ]*(t\\\\d{3}) bui/i,                                      // Trinity Tablets\\n            /(gigaset)[- ]+(q\\\\w{1,9}) bui/i,                                    // Gigaset Tablets\\n            /(vodafone) ([\\\\w ]+)(?:\\\\)| bui)/i                                   // Vodafone\\n            ], [VENDOR, MODEL, [TYPE, TABLET]], [\\n\\n            /(surface duo)/i                                                    // Surface Duo\\n            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\\n            /droid [\\\\d\\\\.]+; (fp\\\\du?)(?: b|\\\\))/i                                 // Fairphone\\n            ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\\n            /(u304aa)/i                                                         // AT&T\\n            ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\\n            /\\\\bsie-(\\\\w*)/i                                                      // Siemens\\n            ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\\n            /\\\\b(rct\\\\w+) b/i                                                     // RCA Tablets\\n            ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\\n            /\\\\b(venue[\\\\d ]{2,7}) b/i                                            // Dell Venue Tablets\\n            ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\\n            /\\\\b(q(?:mv|ta)\\\\w+) b/i                                              // Verizon Tablet\\n            ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\\n            /\\\\b(?:barnes[& ]+noble |bn[rt])([\\\\w\\\\+ ]*) b/i                       // Barnes & Noble Tablet\\n            ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\\n            /\\\\b(tm\\\\d{3}\\\\w+) b/i\\n            ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\\n            /\\\\b(k88) b/i                                                        // ZTE K Series Tablet\\n            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\\n            /\\\\b(nx\\\\d{3}j) b/i                                                   // ZTE Nubia\\n            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\\n            /\\\\b(gen\\\\d{3}) b.+49h/i                                              // Swiss GEN Mobile\\n            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\\n            /\\\\b(zur\\\\d{3}) b/i                                                   // Swiss ZUR Tablet\\n            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\\n            /\\\\b((zeki)?tb.*\\\\b) b/i                                              // Zeki Tablets\\n            ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\\n            /\\\\b([yr]\\\\d{2}) b/i,\\n            /\\\\b(dragon[- ]+touch |dt)(\\\\w{5}) b/i                                // Dragon Touch Tablet\\n            ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\\n            /\\\\b(ns-?\\\\w{0,9}) b/i                                                // Insignia Tablets\\n            ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\\n            /\\\\b((nxa|next)-?\\\\w{0,9}) b/i                                        // NextBook Tablets\\n            ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\\n            /\\\\b(xtreme\\\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i                  // Voice Xtreme Phones\\n            ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\\n            /\\\\b(lvtel\\\\-)?(v1[12]) b/i                                           // LvTel Phones\\n            ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\\n            /\\\\b(ph-1) /i                                                        // Essential PH-1\\n            ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\\n            /\\\\b(v(100md|700na|7011|917g).*\\\\b) b/i                               // Envizen Tablets\\n            ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\\n            /\\\\b(trio[-\\\\w\\\\. ]+) b/i                                              // MachSpeed Tablets\\n            ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\\n            /\\\\btu_(1491) b/i                                                    // Rotor Tablets\\n            ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\\n            /(shield[\\\\w ]+) b/i                                                 // Nvidia Shield Tablets\\n            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\\n            /(sprint) (\\\\w+)/i                                                   // Sprint Phones\\n            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\\n            /(kin\\\\.[onetw]{3})/i                                                // Microsoft Kin\\n            ], [[MODEL, /\\\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\\n            /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\\\)/i             // Zebra\\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\\n            /droid.+; (ec30|ps20|tc[2-8]\\\\d[kx])\\\\)/i\\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\\n\\n            ///////////////////\\n            // CONSOLES\\n            ///////////////////\\n\\n            /(ouya)/i,                                                          // Ouya\\n            /(nintendo) ([wids3utch]+)/i                                        // Nintendo\\n            ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\\n            /droid.+; (shield) bui/i                                            // Nvidia\\n            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\\n            /(playstation [345portablevi]+)/i                                   // Playstation\\n            ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\\n            /\\\\b(xbox(?: one)?(?!; xbox))[\\\\); ]/i                                // Microsoft Xbox\\n            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\\n\\n            ///////////////////\\n            // SMARTTVS\\n            ///////////////////\\n\\n            /smart-tv.+(samsung)/i                                              // Samsung\\n            ], [VENDOR, [TYPE, SMARTTV]], [\\n            /hbbtv.+maple;(\\\\d+)/i\\n            ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\\n            /(nux; netcast.+smarttv|lg (netcast\\\\.tv-201\\\\d|android tv))/i        // LG SmartTV\\n            ], [[VENDOR, LG], [TYPE, SMARTTV]], [\\n            /(apple) ?tv/i                                                      // Apple TV\\n            ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\\n            /crkey/i                                                            // Google Chromecast\\n            ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\\n            /droid.+aft(\\\\w)( bui|\\\\))/i                                          // Fire TV\\n            ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\\n            /\\\\(dtv[\\\\);].+(aquos)/i,\\n            /(aquos-tv[\\\\w ]+)\\\\)/i                                               // Sharp\\n            ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\\n            /(bravia[\\\\w ]+)( bui|\\\\))/i                                              // Sony\\n            ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\\n            /(mitv-\\\\w{5}) bui/i                                                 // Xiaomi\\n            ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\\n            /\\\\b(roku)[\\\\dx]*[\\\\)\\\\/]((?:dvp-)?[\\\\d\\\\.]*)/i,                          // Roku\\n            /hbbtv\\\\/\\\\d+\\\\.\\\\d+\\\\.\\\\d+ +\\\\([\\\\w ]*; *(\\\\w[^;]*);([^;]*)/i               // HbbTV devices\\n            ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\\n            /\\\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\\\b/i                   // SmartTV from Unidentified Vendors\\n            ], [[TYPE, SMARTTV]], [\\n\\n            ///////////////////\\n            // WEARABLES\\n            ///////////////////\\n\\n            /((pebble))app/i                                                    // Pebble\\n            ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\\n            /droid.+; (glass) \\\\d/i                                              // Google Glass\\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\\n            /droid.+; (wt63?0{2,3})\\\\)/i\\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\\n            /(quest( 2)?)/i                                                     // Oculus Quest\\n            ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\\n\\n            ///////////////////\\n            // EMBEDDED\\n            ///////////////////\\n\\n            /(tesla)(?: qtcarbrowser|\\\\/[-\\\\w\\\\.]+)/i                              // Tesla\\n            ], [VENDOR, [TYPE, EMBEDDED]], [\\n\\n            ////////////////////\\n            // MIXED (GENERIC)\\n            ///////////////////\\n\\n            /droid .+?; ([^;]+?)(?: bui|\\\\) applew).+? mobile safari/i           // Android Phones from Unidentified Vendors\\n            ], [MODEL, [TYPE, MOBILE]], [\\n            /droid .+?; ([^;]+?)(?: bui|\\\\) applew).+?(?! mobile) safari/i       // Android Tablets from Unidentified Vendors\\n            ], [MODEL, [TYPE, TABLET]], [\\n            /\\\\b((tablet|tab)[;\\\\/]|focus\\\\/\\\\d(?!.+mobile))/i                      // Unidentifiable Tablet\\n            ], [[TYPE, TABLET]], [\\n            /(phone|mobile(?:[;\\\\/]| [ \\\\w\\\\/\\\\.]*safari)|pda(?=.+windows ce))/i    // Unidentifiable Mobile\\n            ], [[TYPE, MOBILE]], [\\n            /(android[-\\\\w\\\\. ]{0,9});.+buil/i                                    // Generic Android Device\\n            ], [MODEL, [VENDOR, 'Generic']]\\n        ],\\n\\n        engine : [[\\n\\n            /windows.+ edge\\\\/([\\\\w\\\\.]+)/i                                       // EdgeHTML\\n            ], [VERSION, [NAME, EDGE+'HTML']], [\\n\\n            /webkit\\\\/537\\\\.36.+chrome\\\\/(?!27)([\\\\w\\\\.]+)/i                         // Blink\\n            ], [VERSION, [NAME, 'Blink']], [\\n\\n            /(presto)\\\\/([\\\\w\\\\.]+)/i,                                             // Presto\\n            /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\\\/([\\\\w\\\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\\n            /ekioh(flow)\\\\/([\\\\w\\\\.]+)/i,                                          // Flow\\n            /(khtml|tasman|links)[\\\\/ ]\\\\(?([\\\\w\\\\.]+)/i,                           // KHTML/Tasman/Links\\n            /(icab)[\\\\/ ]([23]\\\\.[\\\\d\\\\.]+)/i                                       // iCab\\n            ], [NAME, VERSION], [\\n\\n            /rv\\\\:([\\\\w\\\\.]{1,9})\\\\b.+(gecko)/i                                     // Gecko\\n            ], [VERSION, NAME]\\n        ],\\n\\n        os : [[\\n\\n            // Windows\\n            /microsoft (windows) (vista|xp)/i                                   // Windows (iTunes)\\n            ], [NAME, VERSION], [\\n            /(windows) nt 6\\\\.2; (arm)/i,                                        // Windows RT\\n            /(windows (?:phone(?: os)?|mobile))[\\\\/ ]?([\\\\d\\\\.\\\\w ]*)/i,            // Windows Phone\\n            /(windows)[\\\\/ ]?([ntce\\\\d\\\\. ]+\\\\w)(?!.+xbox)/i\\n            ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\\n            /(win(?=3|9|n)|win 9x )([nt\\\\d\\\\.]+)/i\\n            ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\\n\\n            // iOS/macOS\\n            /ip[honead]{2,4}\\\\b(?:.*os ([\\\\w]+) like mac|; opera)/i,              // iOS\\n            /cfnetwork\\\\/.+darwin/i\\n            ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\\n            /(mac os x) ?([\\\\w\\\\. ]*)/i,\\n            /(macintosh|mac_powerpc\\\\b)(?!.+haiku)/i                             // Mac OS\\n            ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\\n\\n            // Mobile OSes\\n            /droid ([\\\\w\\\\.]+)\\\\b.+(android[- ]x86|harmonyos)/i                    // Android-x86/HarmonyOS\\n            ], [VERSION, NAME], [                                               // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\\n            /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\\\/ ]?([\\\\w\\\\.]*)/i,\\n            /(blackberry)\\\\w*\\\\/([\\\\w\\\\.]*)/i,                                      // Blackberry\\n            /(tizen|kaios)[\\\\/ ]([\\\\w\\\\.]+)/i,                                     // Tizen/KaiOS\\n            /\\\\((series40);/i                                                    // Series 40\\n            ], [NAME, VERSION], [\\n            /\\\\(bb(10);/i                                                        // BlackBerry 10\\n            ], [VERSION, [NAME, BLACKBERRY]], [\\n            /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\\\/ ]?([\\\\w\\\\.]*)/i         // Symbian\\n            ], [VERSION, [NAME, 'Symbian']], [\\n            /mozilla\\\\/[\\\\d\\\\.]+ \\\\((?:mobile|tablet|tv|mobile; [\\\\w ]+); rv:.+ gecko\\\\/([\\\\w\\\\.]+)/i // Firefox OS\\n            ], [VERSION, [NAME, FIREFOX+' OS']], [\\n            /web0s;.+rt(tv)/i,\\n            /\\\\b(?:hp)?wos(?:browser)?\\\\/([\\\\w\\\\.]+)/i                              // WebOS\\n            ], [VERSION, [NAME, 'webOS']], [\\n\\n            // Google Chromecast\\n            /crkey\\\\/([\\\\d\\\\.]+)/i                                                 // Google Chromecast\\n            ], [VERSION, [NAME, CHROME+'cast']], [\\n            /(cros) [\\\\w]+ ([\\\\w\\\\.]+\\\\w)/i                                         // Chromium OS\\n            ], [[NAME, 'Chromium OS'], VERSION],[\\n\\n            // Console\\n            /(nintendo|playstation) ([wids345portablevuch]+)/i,                 // Nintendo/Playstation\\n            /(xbox); +xbox ([^\\\\);]+)/i,                                         // Microsoft Xbox (360, One, X, S, Series X, Series S)\\n\\n            // Other\\n            /\\\\b(joli|palm)\\\\b ?(?:os)?\\\\/?([\\\\w\\\\.]*)/i,                            // Joli/Palm\\n            /(mint)[\\\\/\\\\(\\\\) ]?(\\\\w*)/i,                                           // Mint\\n            /(mageia|vectorlinux)[; ]/i,                                        // Mageia/VectorLinux\\n            /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\\\/ ]?(?!chrom|package)([-\\\\w\\\\.]*)/i,\\n                                                                                // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\\n            /(hurd|linux) ?([\\\\w\\\\.]*)/i,                                         // Hurd/Linux\\n            /(gnu) ?([\\\\w\\\\.]*)/i,                                                // GNU\\n            /\\\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\\\/ ]?(?!amd|[ix346]{1,2}86)([\\\\w\\\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\\n            /(haiku) (\\\\w+)/i                                                    // Haiku\\n            ], [NAME, VERSION], [\\n            /(sunos) ?([\\\\w\\\\.\\\\d]*)/i                                             // Solaris\\n            ], [[NAME, 'Solaris'], VERSION], [\\n            /((?:open)?solaris)[-\\\\/ ]?([\\\\w\\\\.]*)/i,                              // Solaris\\n            /(aix) ((\\\\d)(?=\\\\.|\\\\)| )[\\\\w\\\\.])*/i,                                  // AIX\\n            /\\\\b(beos|os\\\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,            // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\\n            /(unix) ?([\\\\w\\\\.]*)/i                                                // UNIX\\n            ], [NAME, VERSION]\\n        ]\\n    };\\n\\n    /////////////////\\n    // Constructor\\n    ////////////////\\n\\n    var UAParser = function (ua, extensions) {\\n\\n        if (typeof ua === OBJ_TYPE) {\\n            extensions = ua;\\n            ua = undefined;\\n        }\\n\\n        if (!(this instanceof UAParser)) {\\n            return new UAParser(ua, extensions).getResult();\\n        }\\n\\n        var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\\n        var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\\n\\n        this.getBrowser = function () {\\n            var _browser = {};\\n            _browser[NAME] = undefined;\\n            _browser[VERSION] = undefined;\\n            rgxMapper.call(_browser, _ua, _rgxmap.browser);\\n            _browser.major = majorize(_browser.version);\\n            return _browser;\\n        };\\n        this.getCPU = function () {\\n            var _cpu = {};\\n            _cpu[ARCHITECTURE] = undefined;\\n            rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\\n            return _cpu;\\n        };\\n        this.getDevice = function () {\\n            var _device = {};\\n            _device[VENDOR] = undefined;\\n            _device[MODEL] = undefined;\\n            _device[TYPE] = undefined;\\n            rgxMapper.call(_device, _ua, _rgxmap.device);\\n            return _device;\\n        };\\n        this.getEngine = function () {\\n            var _engine = {};\\n            _engine[NAME] = undefined;\\n            _engine[VERSION] = undefined;\\n            rgxMapper.call(_engine, _ua, _rgxmap.engine);\\n            return _engine;\\n        };\\n        this.getOS = function () {\\n            var _os = {};\\n            _os[NAME] = undefined;\\n            _os[VERSION] = undefined;\\n            rgxMapper.call(_os, _ua, _rgxmap.os);\\n            return _os;\\n        };\\n        this.getResult = function () {\\n            return {\\n                ua      : this.getUA(),\\n                browser : this.getBrowser(),\\n                engine  : this.getEngine(),\\n                os      : this.getOS(),\\n                device  : this.getDevice(),\\n                cpu     : this.getCPU()\\n            };\\n        };\\n        this.getUA = function () {\\n            return _ua;\\n        };\\n        this.setUA = function (ua) {\\n            _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\\n            return this;\\n        };\\n        this.setUA(_ua);\\n        return this;\\n    };\\n\\n    UAParser.VERSION = LIBVERSION;\\n    UAParser.BROWSER =  enumerize([NAME, VERSION, MAJOR]);\\n    UAParser.CPU = enumerize([ARCHITECTURE]);\\n    UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\\n    UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\\n\\n    ///////////\\n    // Export\\n    //////////\\n\\n    // check js environment\\n    if (typeof(exports) !== UNDEF_TYPE) {\\n        // nodejs env\\n        if (\\\"object\\\" !== UNDEF_TYPE && module.exports) {\\n            exports = module.exports = UAParser;\\n        }\\n        exports.UAParser = UAParser;\\n    } else {\\n        // requirejs env (optional)\\n        if (\\\"function\\\" === FUNC_TYPE && __webpack_require__.amdO) {\\n            !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\\n                return UAParser;\\n            }).call(exports, __webpack_require__, exports, module),\\n\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\\n        } else if (typeof window !== UNDEF_TYPE) {\\n            // browser env\\n            window.UAParser = UAParser;\\n        }\\n    }\\n\\n    // jQuery/Zepto specific (optional)\\n    // Note:\\n    //   In AMD env the global scope should be kept clean, but jQuery is an exception.\\n    //   jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\\n    //   and we should catch that.\\n    var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\\n    if ($ && !$.ua) {\\n        var parser = new UAParser();\\n        $.ua = parser.getResult();\\n        $.ua.get = function () {\\n            return parser.getUA();\\n        };\\n        $.ua.set = function (ua) {\\n            parser.setUA(ua);\\n            var result = parser.getResult();\\n            for (var prop in result) {\\n                $.ua[prop] = result[prop];\\n            }\\n        };\\n    }\\n\\n})(typeof window === 'object' ? window : this);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/ua-parser-js/src/ua-parser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/util-deprecate/browser.js\":\n/*!************************************************!*\\\n  !*** ./node_modules/util-deprecate/browser.js ***!\n  \\************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\neval(\"\\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://@dannadori/voice-changer-client-js/./node_modules/util-deprecate/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/dist/esm-browser/regex.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/uuid/dist/esm-browser/regex.js ***!\n  \\*****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/uuid/dist/esm-browser/regex.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/dist/esm-browser/rng.js\":\n/*!***************************************************!*\\\n  !*** ./node_modules/uuid/dist/esm-browser/rng.js ***!\n  \\***************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (/* binding */ rng)\\n/* harmony export */ });\\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\\n// require the crypto API and do not support built-in fallback to lower quality random number\\n// generators (like Math.random()).\\nvar getRandomValues;\\nvar rnds8 = new Uint8Array(16);\\nfunction rng() {\\n  // lazy load so that environments that need to polyfill have a chance to do so\\n  if (!getRandomValues) {\\n    // getRandomValues needs to be invoked in a context where \\\"this\\\" is a Crypto implementation. Also,\\n    // find the complete implementation of crypto (msCrypto) on IE11.\\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\\n\\n    if (!getRandomValues) {\\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\\n    }\\n  }\\n\\n  return getRandomValues(rnds8);\\n}\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/uuid/dist/esm-browser/rng.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/dist/esm-browser/stringify.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/uuid/dist/esm-browser/stringify.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \\\"./node_modules/uuid/dist/esm-browser/validate.js\\\");\\n\\n/**\\n * Convert array of 16 byte values to UUID string format of the form:\\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\\n */\\n\\nvar byteToHex = [];\\n\\nfor (var i = 0; i < 256; ++i) {\\n  byteToHex.push((i + 0x100).toString(16).substr(1));\\n}\\n\\nfunction stringify(arr) {\\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\\n  // Note: Be careful editing this code!  It's been tuned for performance\\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\\n  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one\\n  // of the following:\\n  // - One or more input array values don't map to a hex octet (leading to\\n  // \\\"undefined\\\" in the uuid)\\n  // - Invalid input values for the RFC `version` or `variant` fields\\n\\n  if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"])(uuid)) {\\n    throw TypeError('Stringified UUID is invalid');\\n  }\\n\\n  return uuid;\\n}\\n\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/uuid/dist/esm-browser/stringify.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/dist/esm-browser/v4.js\":\n/*!**************************************************!*\\\n  !*** ./node_modules/uuid/dist/esm-browser/v4.js ***!\n  \\**************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rng.js */ \\\"./node_modules/uuid/dist/esm-browser/rng.js\\\");\\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ \\\"./node_modules/uuid/dist/esm-browser/stringify.js\\\");\\n\\n\\n\\nfunction v4(options, buf, offset) {\\n  options = options || {};\\n  var rnds = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"])(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\\n\\n  rnds[6] = rnds[6] & 0x0f | 0x40;\\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\\n\\n  if (buf) {\\n    offset = offset || 0;\\n\\n    for (var i = 0; i < 16; ++i) {\\n      buf[offset + i] = rnds[i];\\n    }\\n\\n    return buf;\\n  }\\n\\n  return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"])(rnds);\\n}\\n\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/uuid/dist/esm-browser/v4.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/dist/esm-browser/validate.js\":\n/*!********************************************************!*\\\n  !*** ./node_modules/uuid/dist/esm-browser/validate.js ***!\n  \\********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ \\\"./node_modules/uuid/dist/esm-browser/regex.js\\\");\\n\\n\\nfunction validate(uuid) {\\n  return typeof uuid === 'string' && _regex_js__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].test(uuid);\\n}\\n\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/uuid/dist/esm-browser/validate.js?\");\n\n/***/ }),\n\n/***/ \"react\":\n/*!************************!*\\\n  !*** external \"react\" ***!\n  \\************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;\n\n/***/ }),\n\n/***/ \"?2cbf\":\n/*!**********************!*\\\n  !*** util (ignored) ***!\n  \\**********************/\n/***/ (() => {\n\neval(\"/* (ignored) */\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/util_(ignored)?\");\n\n/***/ }),\n\n/***/ \"?e07d\":\n/*!**********************!*\\\n  !*** util (ignored) ***!\n  \\**********************/\n/***/ (() => {\n\neval(\"/* (ignored) */\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/util_(ignored)?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@socket.io/component-emitter/index.mjs\":\n/*!*************************************************************!*\\\n  !*** ./node_modules/@socket.io/component-emitter/index.mjs ***!\n  \\*************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Emitter\\\": () => (/* binding */ Emitter)\\n/* harmony export */ });\\n/**\\n * Initialize a new `Emitter`.\\n *\\n * @api public\\n */\\n\\nfunction Emitter(obj) {\\n  if (obj) return mixin(obj);\\n}\\n\\n/**\\n * Mixin the emitter properties.\\n *\\n * @param {Object} obj\\n * @return {Object}\\n * @api private\\n */\\n\\nfunction mixin(obj) {\\n  for (var key in Emitter.prototype) {\\n    obj[key] = Emitter.prototype[key];\\n  }\\n  return obj;\\n}\\n\\n/**\\n * Listen on the given `event` with `fn`.\\n *\\n * @param {String} event\\n * @param {Function} fn\\n * @return {Emitter}\\n * @api public\\n */\\n\\nEmitter.prototype.on =\\nEmitter.prototype.addEventListener = function(event, fn){\\n  this._callbacks = this._callbacks || {};\\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\\n    .push(fn);\\n  return this;\\n};\\n\\n/**\\n * Adds an `event` listener that will be invoked a single\\n * time then automatically removed.\\n *\\n * @param {String} event\\n * @param {Function} fn\\n * @return {Emitter}\\n * @api public\\n */\\n\\nEmitter.prototype.once = function(event, fn){\\n  function on() {\\n    this.off(event, on);\\n    fn.apply(this, arguments);\\n  }\\n\\n  on.fn = fn;\\n  this.on(event, on);\\n  return this;\\n};\\n\\n/**\\n * Remove the given callback for `event` or all\\n * registered callbacks.\\n *\\n * @param {String} event\\n * @param {Function} fn\\n * @return {Emitter}\\n * @api public\\n */\\n\\nEmitter.prototype.off =\\nEmitter.prototype.removeListener =\\nEmitter.prototype.removeAllListeners =\\nEmitter.prototype.removeEventListener = function(event, fn){\\n  this._callbacks = this._callbacks || {};\\n\\n  // all\\n  if (0 == arguments.length) {\\n    this._callbacks = {};\\n    return this;\\n  }\\n\\n  // specific event\\n  var callbacks = this._callbacks['$' + event];\\n  if (!callbacks) return this;\\n\\n  // remove all handlers\\n  if (1 == arguments.length) {\\n    delete this._callbacks['$' + event];\\n    return this;\\n  }\\n\\n  // remove specific handler\\n  var cb;\\n  for (var i = 0; i < callbacks.length; i++) {\\n    cb = callbacks[i];\\n    if (cb === fn || cb.fn === fn) {\\n      callbacks.splice(i, 1);\\n      break;\\n    }\\n  }\\n\\n  // Remove event specific arrays for event types that no\\n  // one is subscribed for to avoid memory leak.\\n  if (callbacks.length === 0) {\\n    delete this._callbacks['$' + event];\\n  }\\n\\n  return this;\\n};\\n\\n/**\\n * Emit `event` with the given args.\\n *\\n * @param {String} event\\n * @param {Mixed} ...\\n * @return {Emitter}\\n */\\n\\nEmitter.prototype.emit = function(event){\\n  this._callbacks = this._callbacks || {};\\n\\n  var args = new Array(arguments.length - 1)\\n    , callbacks = this._callbacks['$' + event];\\n\\n  for (var i = 1; i < arguments.length; i++) {\\n    args[i - 1] = arguments[i];\\n  }\\n\\n  if (callbacks) {\\n    callbacks = callbacks.slice(0);\\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\\n      callbacks[i].apply(this, args);\\n    }\\n  }\\n\\n  return this;\\n};\\n\\n// alias used for reserved events (protected method)\\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\\n\\n/**\\n * Return array of callbacks for `event`.\\n *\\n * @param {String} event\\n * @return {Array}\\n * @api public\\n */\\n\\nEmitter.prototype.listeners = function(event){\\n  this._callbacks = this._callbacks || {};\\n  return this._callbacks['$' + event] || [];\\n};\\n\\n/**\\n * Check if this emitter has `event` handlers.\\n *\\n * @param {String} event\\n * @return {Boolean}\\n * @api public\\n */\\n\\nEmitter.prototype.hasListeners = function(event){\\n  return !! this.listeners(event).length;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@socket.io/component-emitter/index.mjs?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/contrib/has-cors.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/contrib/has-cors.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"hasCORS\\\": () => (/* binding */ hasCORS)\\n/* harmony export */ });\\n// imported from https://github.com/component/has-cors\\nlet value = false;\\ntry {\\n    value = typeof XMLHttpRequest !== 'undefined' &&\\n        'withCredentials' in new XMLHttpRequest();\\n}\\ncatch (err) {\\n    // if XMLHttp support is disabled in IE then it will throw\\n    // when trying to create\\n}\\nconst hasCORS = value;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/contrib/has-cors.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/contrib/parseqs.js\":\n/*!********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/contrib/parseqs.js ***!\n  \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"decode\\\": () => (/* binding */ decode),\\n/* harmony export */   \\\"encode\\\": () => (/* binding */ encode)\\n/* harmony export */ });\\n// imported from https://github.com/galkn/querystring\\n/**\\n * Compiles a querystring\\n * Returns string representation of the object\\n *\\n * @param {Object}\\n * @api private\\n */\\nfunction encode(obj) {\\n    let str = '';\\n    for (let i in obj) {\\n        if (obj.hasOwnProperty(i)) {\\n            if (str.length)\\n                str += '&';\\n            str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\\n        }\\n    }\\n    return str;\\n}\\n/**\\n * Parses a simple querystring into an object\\n *\\n * @param {String} qs\\n * @api private\\n */\\nfunction decode(qs) {\\n    let qry = {};\\n    let pairs = qs.split('&');\\n    for (let i = 0, l = pairs.length; i < l; i++) {\\n        let pair = pairs[i].split('=');\\n        qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\\n    }\\n    return qry;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/contrib/parseqs.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/contrib/parseuri.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/contrib/parseuri.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"parse\\\": () => (/* binding */ parse)\\n/* harmony export */ });\\n// imported from https://github.com/galkn/parseuri\\n/**\\n * Parses an URI\\n *\\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\\n * @api private\\n */\\nconst re = /^(?:(?![^:@]+:[^:@\\\\/]*@)(http|https|ws|wss):\\\\/\\\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\\\/?#]*)(?::(\\\\d*))?)(((\\\\/(?:[^?#](?![^?#\\\\/]*\\\\.[^?#\\\\/.]+(?:[?#]|$)))*\\\\/?)?([^?#\\\\/]*))(?:\\\\?([^#]*))?(?:#(.*))?)/;\\nconst parts = [\\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\\n];\\nfunction parse(str) {\\n    const src = str, b = str.indexOf('['), e = str.indexOf(']');\\n    if (b != -1 && e != -1) {\\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\\n    }\\n    let m = re.exec(str || ''), uri = {}, i = 14;\\n    while (i--) {\\n        uri[parts[i]] = m[i] || '';\\n    }\\n    if (b != -1 && e != -1) {\\n        uri.source = src;\\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\\n        uri.ipv6uri = true;\\n    }\\n    uri.pathNames = pathNames(uri, uri['path']);\\n    uri.queryKey = queryKey(uri, uri['query']);\\n    return uri;\\n}\\nfunction pathNames(obj, path) {\\n    const regx = /\\\\/{2,9}/g, names = path.replace(regx, \\\"/\\\").split(\\\"/\\\");\\n    if (path.slice(0, 1) == '/' || path.length === 0) {\\n        names.splice(0, 1);\\n    }\\n    if (path.slice(-1) == '/') {\\n        names.splice(names.length - 1, 1);\\n    }\\n    return names;\\n}\\nfunction queryKey(uri, query) {\\n    const data = {};\\n    query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\\n        if ($1) {\\n            data[$1] = $2;\\n        }\\n    });\\n    return data;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/contrib/parseuri.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/contrib/yeast.js\":\n/*!******************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/contrib/yeast.js ***!\n  \\******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"decode\\\": () => (/* binding */ decode),\\n/* harmony export */   \\\"encode\\\": () => (/* binding */ encode),\\n/* harmony export */   \\\"yeast\\\": () => (/* binding */ yeast)\\n/* harmony export */ });\\n// imported from https://github.com/unshiftio/yeast\\n\\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\\nlet seed = 0, i = 0, prev;\\n/**\\n * Return a string representing the specified number.\\n *\\n * @param {Number} num The number to convert.\\n * @returns {String} The string representation of the number.\\n * @api public\\n */\\nfunction encode(num) {\\n    let encoded = '';\\n    do {\\n        encoded = alphabet[num % length] + encoded;\\n        num = Math.floor(num / length);\\n    } while (num > 0);\\n    return encoded;\\n}\\n/**\\n * Return the integer value specified by the given string.\\n *\\n * @param {String} str The string to convert.\\n * @returns {Number} The integer value represented by the string.\\n * @api public\\n */\\nfunction decode(str) {\\n    let decoded = 0;\\n    for (i = 0; i < str.length; i++) {\\n        decoded = decoded * length + map[str.charAt(i)];\\n    }\\n    return decoded;\\n}\\n/**\\n * Yeast: A tiny growing id generator.\\n *\\n * @returns {String} A unique id.\\n * @api public\\n */\\nfunction yeast() {\\n    const now = encode(+new Date());\\n    if (now !== prev)\\n        return seed = 0, prev = now;\\n    return now + '.' + encode(seed++);\\n}\\n//\\n// Map each character to its index.\\n//\\nfor (; i < length; i++)\\n    map[alphabet[i]] = i;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/contrib/yeast.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/globalThis.browser.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/globalThis.browser.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"globalThisShim\\\": () => (/* binding */ globalThisShim)\\n/* harmony export */ });\\nconst globalThisShim = (() => {\\n    if (typeof self !== \\\"undefined\\\") {\\n        return self;\\n    }\\n    else if (typeof window !== \\\"undefined\\\") {\\n        return window;\\n    }\\n    else {\\n        return Function(\\\"return this\\\")();\\n    }\\n})();\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/globalThis.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/index.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/index.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Socket\\\": () => (/* reexport safe */ _socket_js__WEBPACK_IMPORTED_MODULE_0__.Socket),\\n/* harmony export */   \\\"Transport\\\": () => (/* reexport safe */ _transport_js__WEBPACK_IMPORTED_MODULE_1__.Transport),\\n/* harmony export */   \\\"installTimerFunctions\\\": () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_3__.installTimerFunctions),\\n/* harmony export */   \\\"nextTick\\\": () => (/* reexport safe */ _transports_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_5__.nextTick),\\n/* harmony export */   \\\"parse\\\": () => (/* reexport safe */ _contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_4__.parse),\\n/* harmony export */   \\\"protocol\\\": () => (/* binding */ protocol),\\n/* harmony export */   \\\"transports\\\": () => (/* reexport safe */ _transports_index_js__WEBPACK_IMPORTED_MODULE_2__.transports)\\n/* harmony export */ });\\n/* harmony import */ var _socket_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./socket.js */ \\\"./node_modules/engine.io-client/build/esm/socket.js\\\");\\n/* harmony import */ var _transport_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transport.js */ \\\"./node_modules/engine.io-client/build/esm/transport.js\\\");\\n/* harmony import */ var _transports_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transports/index.js */ \\\"./node_modules/engine.io-client/build/esm/transports/index.js\\\");\\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util.js */ \\\"./node_modules/engine.io-client/build/esm/util.js\\\");\\n/* harmony import */ var _contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contrib/parseuri.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/parseuri.js\\\");\\n/* harmony import */ var _transports_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transports/websocket-constructor.js */ \\\"./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js\\\");\\n\\n\\nconst protocol = _socket_js__WEBPACK_IMPORTED_MODULE_0__.Socket.protocol;\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/socket.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/socket.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Socket\\\": () => (/* binding */ Socket)\\n/* harmony export */ });\\n/* harmony import */ var _transports_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transports/index.js */ \\\"./node_modules/engine.io-client/build/esm/transports/index.js\\\");\\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util.js */ \\\"./node_modules/engine.io-client/build/esm/util.js\\\");\\n/* harmony import */ var _contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./contrib/parseqs.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/parseqs.js\\\");\\n/* harmony import */ var _contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contrib/parseuri.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/parseuri.js\\\");\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n/* harmony import */ var engine_io_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! engine.io-parser */ \\\"./node_modules/engine.io-parser/build/esm/index.js\\\");\\n\\n\\n\\n\\n\\n\\nclass Socket extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_4__.Emitter {\\n    /**\\n     * Socket constructor.\\n     *\\n     * @param {String|Object} uri or options\\n     * @param {Object} opts - options\\n     * @api public\\n     */\\n    constructor(uri, opts = {}) {\\n        super();\\n        if (uri && \\\"object\\\" === typeof uri) {\\n            opts = uri;\\n            uri = null;\\n        }\\n        if (uri) {\\n            uri = (0,_contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_3__.parse)(uri);\\n            opts.hostname = uri.host;\\n            opts.secure = uri.protocol === \\\"https\\\" || uri.protocol === \\\"wss\\\";\\n            opts.port = uri.port;\\n            if (uri.query)\\n                opts.query = uri.query;\\n        }\\n        else if (opts.host) {\\n            opts.hostname = (0,_contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_3__.parse)(opts.host).host;\\n        }\\n        (0,_util_js__WEBPACK_IMPORTED_MODULE_1__.installTimerFunctions)(this, opts);\\n        this.secure =\\n            null != opts.secure\\n                ? opts.secure\\n                : typeof location !== \\\"undefined\\\" && \\\"https:\\\" === location.protocol;\\n        if (opts.hostname && !opts.port) {\\n            // if no port is specified manually, use the protocol default\\n            opts.port = this.secure ? \\\"443\\\" : \\\"80\\\";\\n        }\\n        this.hostname =\\n            opts.hostname ||\\n                (typeof location !== \\\"undefined\\\" ? location.hostname : \\\"localhost\\\");\\n        this.port =\\n            opts.port ||\\n                (typeof location !== \\\"undefined\\\" && location.port\\n                    ? location.port\\n                    : this.secure\\n                        ? \\\"443\\\"\\n                        : \\\"80\\\");\\n        this.transports = opts.transports || [\\\"polling\\\", \\\"websocket\\\"];\\n        this.readyState = \\\"\\\";\\n        this.writeBuffer = [];\\n        this.prevBufferLen = 0;\\n        this.opts = Object.assign({\\n            path: \\\"/engine.io\\\",\\n            agent: false,\\n            withCredentials: false,\\n            upgrade: true,\\n            timestampParam: \\\"t\\\",\\n            rememberUpgrade: false,\\n            rejectUnauthorized: true,\\n            perMessageDeflate: {\\n                threshold: 1024\\n            },\\n            transportOptions: {},\\n            closeOnBeforeunload: true\\n        }, opts);\\n        this.opts.path = this.opts.path.replace(/\\\\/$/, \\\"\\\") + \\\"/\\\";\\n        if (typeof this.opts.query === \\\"string\\\") {\\n            this.opts.query = (0,_contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_2__.decode)(this.opts.query);\\n        }\\n        // set on handshake\\n        this.id = null;\\n        this.upgrades = null;\\n        this.pingInterval = null;\\n        this.pingTimeout = null;\\n        // set on heartbeat\\n        this.pingTimeoutTimer = null;\\n        if (typeof addEventListener === \\\"function\\\") {\\n            if (this.opts.closeOnBeforeunload) {\\n                // Firefox closes the connection when the \\\"beforeunload\\\" event is emitted but not Chrome. This event listener\\n                // ensures every browser behaves the same (no \\\"disconnect\\\" event at the Socket.IO level when the page is\\n                // closed/reloaded)\\n                this.beforeunloadEventListener = () => {\\n                    if (this.transport) {\\n                        // silently close the transport\\n                        this.transport.removeAllListeners();\\n                        this.transport.close();\\n                    }\\n                };\\n                addEventListener(\\\"beforeunload\\\", this.beforeunloadEventListener, false);\\n            }\\n            if (this.hostname !== \\\"localhost\\\") {\\n                this.offlineEventListener = () => {\\n                    this.onClose(\\\"transport close\\\", {\\n                        description: \\\"network connection lost\\\"\\n                    });\\n                };\\n                addEventListener(\\\"offline\\\", this.offlineEventListener, false);\\n            }\\n        }\\n        this.open();\\n    }\\n    /**\\n     * Creates transport of the given type.\\n     *\\n     * @param {String} transport name\\n     * @return {Transport}\\n     * @api private\\n     */\\n    createTransport(name) {\\n        const query = Object.assign({}, this.opts.query);\\n        // append engine.io protocol identifier\\n        query.EIO = engine_io_parser__WEBPACK_IMPORTED_MODULE_5__.protocol;\\n        // transport name\\n        query.transport = name;\\n        // session id if we already have one\\n        if (this.id)\\n            query.sid = this.id;\\n        const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\\n            query,\\n            socket: this,\\n            hostname: this.hostname,\\n            secure: this.secure,\\n            port: this.port\\n        });\\n        return new _transports_index_js__WEBPACK_IMPORTED_MODULE_0__.transports[name](opts);\\n    }\\n    /**\\n     * Initializes transport to use and starts probe.\\n     *\\n     * @api private\\n     */\\n    open() {\\n        let transport;\\n        if (this.opts.rememberUpgrade &&\\n            Socket.priorWebsocketSuccess &&\\n            this.transports.indexOf(\\\"websocket\\\") !== -1) {\\n            transport = \\\"websocket\\\";\\n        }\\n        else if (0 === this.transports.length) {\\n            // Emit error on next tick so it can be listened to\\n            this.setTimeoutFn(() => {\\n                this.emitReserved(\\\"error\\\", \\\"No transports available\\\");\\n            }, 0);\\n            return;\\n        }\\n        else {\\n            transport = this.transports[0];\\n        }\\n        this.readyState = \\\"opening\\\";\\n        // Retry with the next transport if the transport is disabled (jsonp: false)\\n        try {\\n            transport = this.createTransport(transport);\\n        }\\n        catch (e) {\\n            this.transports.shift();\\n            this.open();\\n            return;\\n        }\\n        transport.open();\\n        this.setTransport(transport);\\n    }\\n    /**\\n     * Sets the current transport. Disables the existing one (if any).\\n     *\\n     * @api private\\n     */\\n    setTransport(transport) {\\n        if (this.transport) {\\n            this.transport.removeAllListeners();\\n        }\\n        // set up transport\\n        this.transport = transport;\\n        // set up transport listeners\\n        transport\\n            .on(\\\"drain\\\", this.onDrain.bind(this))\\n            .on(\\\"packet\\\", this.onPacket.bind(this))\\n            .on(\\\"error\\\", this.onError.bind(this))\\n            .on(\\\"close\\\", reason => this.onClose(\\\"transport close\\\", reason));\\n    }\\n    /**\\n     * Probes a transport.\\n     *\\n     * @param {String} transport name\\n     * @api private\\n     */\\n    probe(name) {\\n        let transport = this.createTransport(name);\\n        let failed = false;\\n        Socket.priorWebsocketSuccess = false;\\n        const onTransportOpen = () => {\\n            if (failed)\\n                return;\\n            transport.send([{ type: \\\"ping\\\", data: \\\"probe\\\" }]);\\n            transport.once(\\\"packet\\\", msg => {\\n                if (failed)\\n                    return;\\n                if (\\\"pong\\\" === msg.type && \\\"probe\\\" === msg.data) {\\n                    this.upgrading = true;\\n                    this.emitReserved(\\\"upgrading\\\", transport);\\n                    if (!transport)\\n                        return;\\n                    Socket.priorWebsocketSuccess = \\\"websocket\\\" === transport.name;\\n                    this.transport.pause(() => {\\n                        if (failed)\\n                            return;\\n                        if (\\\"closed\\\" === this.readyState)\\n                            return;\\n                        cleanup();\\n                        this.setTransport(transport);\\n                        transport.send([{ type: \\\"upgrade\\\" }]);\\n                        this.emitReserved(\\\"upgrade\\\", transport);\\n                        transport = null;\\n                        this.upgrading = false;\\n                        this.flush();\\n                    });\\n                }\\n                else {\\n                    const err = new Error(\\\"probe error\\\");\\n                    // @ts-ignore\\n                    err.transport = transport.name;\\n                    this.emitReserved(\\\"upgradeError\\\", err);\\n                }\\n            });\\n        };\\n        function freezeTransport() {\\n            if (failed)\\n                return;\\n            // Any callback called by transport should be ignored since now\\n            failed = true;\\n            cleanup();\\n            transport.close();\\n            transport = null;\\n        }\\n        // Handle any error that happens while probing\\n        const onerror = err => {\\n            const error = new Error(\\\"probe error: \\\" + err);\\n            // @ts-ignore\\n            error.transport = transport.name;\\n            freezeTransport();\\n            this.emitReserved(\\\"upgradeError\\\", error);\\n        };\\n        function onTransportClose() {\\n            onerror(\\\"transport closed\\\");\\n        }\\n        // When the socket is closed while we're probing\\n        function onclose() {\\n            onerror(\\\"socket closed\\\");\\n        }\\n        // When the socket is upgraded while we're probing\\n        function onupgrade(to) {\\n            if (transport && to.name !== transport.name) {\\n                freezeTransport();\\n            }\\n        }\\n        // Remove all listeners on the transport and on self\\n        const cleanup = () => {\\n            transport.removeListener(\\\"open\\\", onTransportOpen);\\n            transport.removeListener(\\\"error\\\", onerror);\\n            transport.removeListener(\\\"close\\\", onTransportClose);\\n            this.off(\\\"close\\\", onclose);\\n            this.off(\\\"upgrading\\\", onupgrade);\\n        };\\n        transport.once(\\\"open\\\", onTransportOpen);\\n        transport.once(\\\"error\\\", onerror);\\n        transport.once(\\\"close\\\", onTransportClose);\\n        this.once(\\\"close\\\", onclose);\\n        this.once(\\\"upgrading\\\", onupgrade);\\n        transport.open();\\n    }\\n    /**\\n     * Called when connection is deemed open.\\n     *\\n     * @api private\\n     */\\n    onOpen() {\\n        this.readyState = \\\"open\\\";\\n        Socket.priorWebsocketSuccess = \\\"websocket\\\" === this.transport.name;\\n        this.emitReserved(\\\"open\\\");\\n        this.flush();\\n        // we check for `readyState` in case an `open`\\n        // listener already closed the socket\\n        if (\\\"open\\\" === this.readyState &&\\n            this.opts.upgrade &&\\n            this.transport.pause) {\\n            let i = 0;\\n            const l = this.upgrades.length;\\n            for (; i < l; i++) {\\n                this.probe(this.upgrades[i]);\\n            }\\n        }\\n    }\\n    /**\\n     * Handles a packet.\\n     *\\n     * @api private\\n     */\\n    onPacket(packet) {\\n        if (\\\"opening\\\" === this.readyState ||\\n            \\\"open\\\" === this.readyState ||\\n            \\\"closing\\\" === this.readyState) {\\n            this.emitReserved(\\\"packet\\\", packet);\\n            // Socket is live - any packet counts\\n            this.emitReserved(\\\"heartbeat\\\");\\n            switch (packet.type) {\\n                case \\\"open\\\":\\n                    this.onHandshake(JSON.parse(packet.data));\\n                    break;\\n                case \\\"ping\\\":\\n                    this.resetPingTimeout();\\n                    this.sendPacket(\\\"pong\\\");\\n                    this.emitReserved(\\\"ping\\\");\\n                    this.emitReserved(\\\"pong\\\");\\n                    break;\\n                case \\\"error\\\":\\n                    const err = new Error(\\\"server error\\\");\\n                    // @ts-ignore\\n                    err.code = packet.data;\\n                    this.onError(err);\\n                    break;\\n                case \\\"message\\\":\\n                    this.emitReserved(\\\"data\\\", packet.data);\\n                    this.emitReserved(\\\"message\\\", packet.data);\\n                    break;\\n            }\\n        }\\n        else {\\n        }\\n    }\\n    /**\\n     * Called upon handshake completion.\\n     *\\n     * @param {Object} data - handshake obj\\n     * @api private\\n     */\\n    onHandshake(data) {\\n        this.emitReserved(\\\"handshake\\\", data);\\n        this.id = data.sid;\\n        this.transport.query.sid = data.sid;\\n        this.upgrades = this.filterUpgrades(data.upgrades);\\n        this.pingInterval = data.pingInterval;\\n        this.pingTimeout = data.pingTimeout;\\n        this.maxPayload = data.maxPayload;\\n        this.onOpen();\\n        // In case open handler closes socket\\n        if (\\\"closed\\\" === this.readyState)\\n            return;\\n        this.resetPingTimeout();\\n    }\\n    /**\\n     * Sets and resets ping timeout timer based on server pings.\\n     *\\n     * @api private\\n     */\\n    resetPingTimeout() {\\n        this.clearTimeoutFn(this.pingTimeoutTimer);\\n        this.pingTimeoutTimer = this.setTimeoutFn(() => {\\n            this.onClose(\\\"ping timeout\\\");\\n        }, this.pingInterval + this.pingTimeout);\\n        if (this.opts.autoUnref) {\\n            this.pingTimeoutTimer.unref();\\n        }\\n    }\\n    /**\\n     * Called on `drain` event\\n     *\\n     * @api private\\n     */\\n    onDrain() {\\n        this.writeBuffer.splice(0, this.prevBufferLen);\\n        // setting prevBufferLen = 0 is very important\\n        // for example, when upgrading, upgrade packet is sent over,\\n        // and a nonzero prevBufferLen could cause problems on `drain`\\n        this.prevBufferLen = 0;\\n        if (0 === this.writeBuffer.length) {\\n            this.emitReserved(\\\"drain\\\");\\n        }\\n        else {\\n            this.flush();\\n        }\\n    }\\n    /**\\n     * Flush write buffers.\\n     *\\n     * @api private\\n     */\\n    flush() {\\n        if (\\\"closed\\\" !== this.readyState &&\\n            this.transport.writable &&\\n            !this.upgrading &&\\n            this.writeBuffer.length) {\\n            const packets = this.getWritablePackets();\\n            this.transport.send(packets);\\n            // keep track of current length of writeBuffer\\n            // splice writeBuffer and callbackBuffer on `drain`\\n            this.prevBufferLen = packets.length;\\n            this.emitReserved(\\\"flush\\\");\\n        }\\n    }\\n    /**\\n     * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\\n     * long-polling)\\n     *\\n     * @private\\n     */\\n    getWritablePackets() {\\n        const shouldCheckPayloadSize = this.maxPayload &&\\n            this.transport.name === \\\"polling\\\" &&\\n            this.writeBuffer.length > 1;\\n        if (!shouldCheckPayloadSize) {\\n            return this.writeBuffer;\\n        }\\n        let payloadSize = 1; // first packet type\\n        for (let i = 0; i < this.writeBuffer.length; i++) {\\n            const data = this.writeBuffer[i].data;\\n            if (data) {\\n                payloadSize += (0,_util_js__WEBPACK_IMPORTED_MODULE_1__.byteLength)(data);\\n            }\\n            if (i > 0 && payloadSize > this.maxPayload) {\\n                return this.writeBuffer.slice(0, i);\\n            }\\n            payloadSize += 2; // separator + packet type\\n        }\\n        return this.writeBuffer;\\n    }\\n    /**\\n     * Sends a message.\\n     *\\n     * @param {String} message.\\n     * @param {Function} callback function.\\n     * @param {Object} options.\\n     * @return {Socket} for chaining.\\n     * @api public\\n     */\\n    write(msg, options, fn) {\\n        this.sendPacket(\\\"message\\\", msg, options, fn);\\n        return this;\\n    }\\n    send(msg, options, fn) {\\n        this.sendPacket(\\\"message\\\", msg, options, fn);\\n        return this;\\n    }\\n    /**\\n     * Sends a packet.\\n     *\\n     * @param {String} packet type.\\n     * @param {String} data.\\n     * @param {Object} options.\\n     * @param {Function} callback function.\\n     * @api private\\n     */\\n    sendPacket(type, data, options, fn) {\\n        if (\\\"function\\\" === typeof data) {\\n            fn = data;\\n            data = undefined;\\n        }\\n        if (\\\"function\\\" === typeof options) {\\n            fn = options;\\n            options = null;\\n        }\\n        if (\\\"closing\\\" === this.readyState || \\\"closed\\\" === this.readyState) {\\n            return;\\n        }\\n        options = options || {};\\n        options.compress = false !== options.compress;\\n        const packet = {\\n            type: type,\\n            data: data,\\n            options: options\\n        };\\n        this.emitReserved(\\\"packetCreate\\\", packet);\\n        this.writeBuffer.push(packet);\\n        if (fn)\\n            this.once(\\\"flush\\\", fn);\\n        this.flush();\\n    }\\n    /**\\n     * Closes the connection.\\n     *\\n     * @api public\\n     */\\n    close() {\\n        const close = () => {\\n            this.onClose(\\\"forced close\\\");\\n            this.transport.close();\\n        };\\n        const cleanupAndClose = () => {\\n            this.off(\\\"upgrade\\\", cleanupAndClose);\\n            this.off(\\\"upgradeError\\\", cleanupAndClose);\\n            close();\\n        };\\n        const waitForUpgrade = () => {\\n            // wait for upgrade to finish since we can't send packets while pausing a transport\\n            this.once(\\\"upgrade\\\", cleanupAndClose);\\n            this.once(\\\"upgradeError\\\", cleanupAndClose);\\n        };\\n        if (\\\"opening\\\" === this.readyState || \\\"open\\\" === this.readyState) {\\n            this.readyState = \\\"closing\\\";\\n            if (this.writeBuffer.length) {\\n                this.once(\\\"drain\\\", () => {\\n                    if (this.upgrading) {\\n                        waitForUpgrade();\\n                    }\\n                    else {\\n                        close();\\n                    }\\n                });\\n            }\\n            else if (this.upgrading) {\\n                waitForUpgrade();\\n            }\\n            else {\\n                close();\\n            }\\n        }\\n        return this;\\n    }\\n    /**\\n     * Called upon transport error\\n     *\\n     * @api private\\n     */\\n    onError(err) {\\n        Socket.priorWebsocketSuccess = false;\\n        this.emitReserved(\\\"error\\\", err);\\n        this.onClose(\\\"transport error\\\", err);\\n    }\\n    /**\\n     * Called upon transport close.\\n     *\\n     * @api private\\n     */\\n    onClose(reason, description) {\\n        if (\\\"opening\\\" === this.readyState ||\\n            \\\"open\\\" === this.readyState ||\\n            \\\"closing\\\" === this.readyState) {\\n            // clear timers\\n            this.clearTimeoutFn(this.pingTimeoutTimer);\\n            // stop event from firing again for transport\\n            this.transport.removeAllListeners(\\\"close\\\");\\n            // ensure transport won't stay open\\n            this.transport.close();\\n            // ignore further transport communication\\n            this.transport.removeAllListeners();\\n            if (typeof removeEventListener === \\\"function\\\") {\\n                removeEventListener(\\\"beforeunload\\\", this.beforeunloadEventListener, false);\\n                removeEventListener(\\\"offline\\\", this.offlineEventListener, false);\\n            }\\n            // set ready state\\n            this.readyState = \\\"closed\\\";\\n            // clear session id\\n            this.id = null;\\n            // emit close event\\n            this.emitReserved(\\\"close\\\", reason, description);\\n            // clean buffers after, so users can still\\n            // grab the buffers on `close` event\\n            this.writeBuffer = [];\\n            this.prevBufferLen = 0;\\n        }\\n    }\\n    /**\\n     * Filters upgrades, returning only those matching client transports.\\n     *\\n     * @param {Array} server upgrades\\n     * @api private\\n     *\\n     */\\n    filterUpgrades(upgrades) {\\n        const filteredUpgrades = [];\\n        let i = 0;\\n        const j = upgrades.length;\\n        for (; i < j; i++) {\\n            if (~this.transports.indexOf(upgrades[i]))\\n                filteredUpgrades.push(upgrades[i]);\\n        }\\n        return filteredUpgrades;\\n    }\\n}\\nSocket.protocol = engine_io_parser__WEBPACK_IMPORTED_MODULE_5__.protocol;\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/socket.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transport.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transport.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Transport\\\": () => (/* binding */ Transport)\\n/* harmony export */ });\\n/* harmony import */ var engine_io_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! engine.io-parser */ \\\"./node_modules/engine.io-parser/build/esm/index.js\\\");\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util.js */ \\\"./node_modules/engine.io-client/build/esm/util.js\\\");\\n\\n\\n\\nclass TransportError extends Error {\\n    constructor(reason, description, context) {\\n        super(reason);\\n        this.description = description;\\n        this.context = context;\\n        this.type = \\\"TransportError\\\";\\n    }\\n}\\nclass Transport extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_1__.Emitter {\\n    /**\\n     * Transport abstract constructor.\\n     *\\n     * @param {Object} options.\\n     * @api private\\n     */\\n    constructor(opts) {\\n        super();\\n        this.writable = false;\\n        (0,_util_js__WEBPACK_IMPORTED_MODULE_2__.installTimerFunctions)(this, opts);\\n        this.opts = opts;\\n        this.query = opts.query;\\n        this.readyState = \\\"\\\";\\n        this.socket = opts.socket;\\n    }\\n    /**\\n     * Emits an error.\\n     *\\n     * @param {String} reason\\n     * @param description\\n     * @param context - the error context\\n     * @return {Transport} for chaining\\n     * @api protected\\n     */\\n    onError(reason, description, context) {\\n        super.emitReserved(\\\"error\\\", new TransportError(reason, description, context));\\n        return this;\\n    }\\n    /**\\n     * Opens the transport.\\n     *\\n     * @api public\\n     */\\n    open() {\\n        if (\\\"closed\\\" === this.readyState || \\\"\\\" === this.readyState) {\\n            this.readyState = \\\"opening\\\";\\n            this.doOpen();\\n        }\\n        return this;\\n    }\\n    /**\\n     * Closes the transport.\\n     *\\n     * @api public\\n     */\\n    close() {\\n        if (\\\"opening\\\" === this.readyState || \\\"open\\\" === this.readyState) {\\n            this.doClose();\\n            this.onClose();\\n        }\\n        return this;\\n    }\\n    /**\\n     * Sends multiple packets.\\n     *\\n     * @param {Array} packets\\n     * @api public\\n     */\\n    send(packets) {\\n        if (\\\"open\\\" === this.readyState) {\\n            this.write(packets);\\n        }\\n        else {\\n            // this might happen if the transport was silently closed in the beforeunload event handler\\n        }\\n    }\\n    /**\\n     * Called upon open\\n     *\\n     * @api protected\\n     */\\n    onOpen() {\\n        this.readyState = \\\"open\\\";\\n        this.writable = true;\\n        super.emitReserved(\\\"open\\\");\\n    }\\n    /**\\n     * Called with data.\\n     *\\n     * @param {String} data\\n     * @api protected\\n     */\\n    onData(data) {\\n        const packet = (0,engine_io_parser__WEBPACK_IMPORTED_MODULE_0__.decodePacket)(data, this.socket.binaryType);\\n        this.onPacket(packet);\\n    }\\n    /**\\n     * Called with a decoded packet.\\n     *\\n     * @api protected\\n     */\\n    onPacket(packet) {\\n        super.emitReserved(\\\"packet\\\", packet);\\n    }\\n    /**\\n     * Called upon close.\\n     *\\n     * @api protected\\n     */\\n    onClose(details) {\\n        this.readyState = \\\"closed\\\";\\n        super.emitReserved(\\\"close\\\", details);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transport.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transports/index.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transports/index.js ***!\n  \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"transports\\\": () => (/* binding */ transports)\\n/* harmony export */ });\\n/* harmony import */ var _polling_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./polling.js */ \\\"./node_modules/engine.io-client/build/esm/transports/polling.js\\\");\\n/* harmony import */ var _websocket_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./websocket.js */ \\\"./node_modules/engine.io-client/build/esm/transports/websocket.js\\\");\\n\\n\\nconst transports = {\\n    websocket: _websocket_js__WEBPACK_IMPORTED_MODULE_1__.WS,\\n    polling: _polling_js__WEBPACK_IMPORTED_MODULE_0__.Polling\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transports/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transports/polling.js\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transports/polling.js ***!\n  \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Polling\\\": () => (/* binding */ Polling),\\n/* harmony export */   \\\"Request\\\": () => (/* binding */ Request)\\n/* harmony export */ });\\n/* harmony import */ var _transport_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transport.js */ \\\"./node_modules/engine.io-client/build/esm/transport.js\\\");\\n/* harmony import */ var _contrib_yeast_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../contrib/yeast.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/yeast.js\\\");\\n/* harmony import */ var _contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../contrib/parseqs.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/parseqs.js\\\");\\n/* harmony import */ var engine_io_parser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! engine.io-parser */ \\\"./node_modules/engine.io-parser/build/esm/index.js\\\");\\n/* harmony import */ var _xmlhttprequest_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./xmlhttprequest.js */ \\\"./node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js\\\");\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \\\"./node_modules/engine.io-client/build/esm/util.js\\\");\\n/* harmony import */ var _globalThis_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../globalThis.js */ \\\"./node_modules/engine.io-client/build/esm/globalThis.browser.js\\\");\\n\\n\\n\\n\\n\\n\\n\\n\\nfunction empty() { }\\nconst hasXHR2 = (function () {\\n    const xhr = new _xmlhttprequest_js__WEBPACK_IMPORTED_MODULE_4__.XHR({\\n        xdomain: false\\n    });\\n    return null != xhr.responseType;\\n})();\\nclass Polling extends _transport_js__WEBPACK_IMPORTED_MODULE_0__.Transport {\\n    /**\\n     * XHR Polling constructor.\\n     *\\n     * @param {Object} opts\\n     * @api public\\n     */\\n    constructor(opts) {\\n        super(opts);\\n        this.polling = false;\\n        if (typeof location !== \\\"undefined\\\") {\\n            const isSSL = \\\"https:\\\" === location.protocol;\\n            let port = location.port;\\n            // some user agents have empty `location.port`\\n            if (!port) {\\n                port = isSSL ? \\\"443\\\" : \\\"80\\\";\\n            }\\n            this.xd =\\n                (typeof location !== \\\"undefined\\\" &&\\n                    opts.hostname !== location.hostname) ||\\n                    port !== opts.port;\\n            this.xs = opts.secure !== isSSL;\\n        }\\n        /**\\n         * XHR supports binary\\n         */\\n        const forceBase64 = opts && opts.forceBase64;\\n        this.supportsBinary = hasXHR2 && !forceBase64;\\n    }\\n    /**\\n     * Transport name.\\n     */\\n    get name() {\\n        return \\\"polling\\\";\\n    }\\n    /**\\n     * Opens the socket (triggers polling). We write a PING message to determine\\n     * when the transport is open.\\n     *\\n     * @api private\\n     */\\n    doOpen() {\\n        this.poll();\\n    }\\n    /**\\n     * Pauses polling.\\n     *\\n     * @param {Function} callback upon buffers are flushed and transport is paused\\n     * @api private\\n     */\\n    pause(onPause) {\\n        this.readyState = \\\"pausing\\\";\\n        const pause = () => {\\n            this.readyState = \\\"paused\\\";\\n            onPause();\\n        };\\n        if (this.polling || !this.writable) {\\n            let total = 0;\\n            if (this.polling) {\\n                total++;\\n                this.once(\\\"pollComplete\\\", function () {\\n                    --total || pause();\\n                });\\n            }\\n            if (!this.writable) {\\n                total++;\\n                this.once(\\\"drain\\\", function () {\\n                    --total || pause();\\n                });\\n            }\\n        }\\n        else {\\n            pause();\\n        }\\n    }\\n    /**\\n     * Starts polling cycle.\\n     *\\n     * @api public\\n     */\\n    poll() {\\n        this.polling = true;\\n        this.doPoll();\\n        this.emitReserved(\\\"poll\\\");\\n    }\\n    /**\\n     * Overloads onData to detect payloads.\\n     *\\n     * @api private\\n     */\\n    onData(data) {\\n        const callback = packet => {\\n            // if its the first message we consider the transport open\\n            if (\\\"opening\\\" === this.readyState && packet.type === \\\"open\\\") {\\n                this.onOpen();\\n            }\\n            // if its a close packet, we close the ongoing requests\\n            if (\\\"close\\\" === packet.type) {\\n                this.onClose({ description: \\\"transport closed by the server\\\" });\\n                return false;\\n            }\\n            // otherwise bypass onData and handle the message\\n            this.onPacket(packet);\\n        };\\n        // decode payload\\n        (0,engine_io_parser__WEBPACK_IMPORTED_MODULE_3__.decodePayload)(data, this.socket.binaryType).forEach(callback);\\n        // if an event did not trigger closing\\n        if (\\\"closed\\\" !== this.readyState) {\\n            // if we got data we're not polling\\n            this.polling = false;\\n            this.emitReserved(\\\"pollComplete\\\");\\n            if (\\\"open\\\" === this.readyState) {\\n                this.poll();\\n            }\\n            else {\\n            }\\n        }\\n    }\\n    /**\\n     * For polling, send a close packet.\\n     *\\n     * @api private\\n     */\\n    doClose() {\\n        const close = () => {\\n            this.write([{ type: \\\"close\\\" }]);\\n        };\\n        if (\\\"open\\\" === this.readyState) {\\n            close();\\n        }\\n        else {\\n            // in case we're trying to close while\\n            // handshaking is in progress (GH-164)\\n            this.once(\\\"open\\\", close);\\n        }\\n    }\\n    /**\\n     * Writes a packets payload.\\n     *\\n     * @param {Array} data packets\\n     * @param {Function} drain callback\\n     * @api private\\n     */\\n    write(packets) {\\n        this.writable = false;\\n        (0,engine_io_parser__WEBPACK_IMPORTED_MODULE_3__.encodePayload)(packets, data => {\\n            this.doWrite(data, () => {\\n                this.writable = true;\\n                this.emitReserved(\\\"drain\\\");\\n            });\\n        });\\n    }\\n    /**\\n     * Generates uri for connection.\\n     *\\n     * @api private\\n     */\\n    uri() {\\n        let query = this.query || {};\\n        const schema = this.opts.secure ? \\\"https\\\" : \\\"http\\\";\\n        let port = \\\"\\\";\\n        // cache busting is forced\\n        if (false !== this.opts.timestampRequests) {\\n            query[this.opts.timestampParam] = (0,_contrib_yeast_js__WEBPACK_IMPORTED_MODULE_1__.yeast)();\\n        }\\n        if (!this.supportsBinary && !query.sid) {\\n            query.b64 = 1;\\n        }\\n        // avoid port if default for schema\\n        if (this.opts.port &&\\n            ((\\\"https\\\" === schema && Number(this.opts.port) !== 443) ||\\n                (\\\"http\\\" === schema && Number(this.opts.port) !== 80))) {\\n            port = \\\":\\\" + this.opts.port;\\n        }\\n        const encodedQuery = (0,_contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_2__.encode)(query);\\n        const ipv6 = this.opts.hostname.indexOf(\\\":\\\") !== -1;\\n        return (schema +\\n            \\\"://\\\" +\\n            (ipv6 ? \\\"[\\\" + this.opts.hostname + \\\"]\\\" : this.opts.hostname) +\\n            port +\\n            this.opts.path +\\n            (encodedQuery.length ? \\\"?\\\" + encodedQuery : \\\"\\\"));\\n    }\\n    /**\\n     * Creates a request.\\n     *\\n     * @param {String} method\\n     * @api private\\n     */\\n    request(opts = {}) {\\n        Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\\n        return new Request(this.uri(), opts);\\n    }\\n    /**\\n     * Sends data.\\n     *\\n     * @param {String} data to send.\\n     * @param {Function} called upon flush.\\n     * @api private\\n     */\\n    doWrite(data, fn) {\\n        const req = this.request({\\n            method: \\\"POST\\\",\\n            data: data\\n        });\\n        req.on(\\\"success\\\", fn);\\n        req.on(\\\"error\\\", (xhrStatus, context) => {\\n            this.onError(\\\"xhr post error\\\", xhrStatus, context);\\n        });\\n    }\\n    /**\\n     * Starts a poll cycle.\\n     *\\n     * @api private\\n     */\\n    doPoll() {\\n        const req = this.request();\\n        req.on(\\\"data\\\", this.onData.bind(this));\\n        req.on(\\\"error\\\", (xhrStatus, context) => {\\n            this.onError(\\\"xhr poll error\\\", xhrStatus, context);\\n        });\\n        this.pollXhr = req;\\n    }\\n}\\nclass Request extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_5__.Emitter {\\n    /**\\n     * Request constructor\\n     *\\n     * @param {Object} options\\n     * @api public\\n     */\\n    constructor(uri, opts) {\\n        super();\\n        (0,_util_js__WEBPACK_IMPORTED_MODULE_6__.installTimerFunctions)(this, opts);\\n        this.opts = opts;\\n        this.method = opts.method || \\\"GET\\\";\\n        this.uri = uri;\\n        this.async = false !== opts.async;\\n        this.data = undefined !== opts.data ? opts.data : null;\\n        this.create();\\n    }\\n    /**\\n     * Creates the XHR object and sends the request.\\n     *\\n     * @api private\\n     */\\n    create() {\\n        const opts = (0,_util_js__WEBPACK_IMPORTED_MODULE_6__.pick)(this.opts, \\\"agent\\\", \\\"pfx\\\", \\\"key\\\", \\\"passphrase\\\", \\\"cert\\\", \\\"ca\\\", \\\"ciphers\\\", \\\"rejectUnauthorized\\\", \\\"autoUnref\\\");\\n        opts.xdomain = !!this.opts.xd;\\n        opts.xscheme = !!this.opts.xs;\\n        const xhr = (this.xhr = new _xmlhttprequest_js__WEBPACK_IMPORTED_MODULE_4__.XHR(opts));\\n        try {\\n            xhr.open(this.method, this.uri, this.async);\\n            try {\\n                if (this.opts.extraHeaders) {\\n                    xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\\n                    for (let i in this.opts.extraHeaders) {\\n                        if (this.opts.extraHeaders.hasOwnProperty(i)) {\\n                            xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\\n                        }\\n                    }\\n                }\\n            }\\n            catch (e) { }\\n            if (\\\"POST\\\" === this.method) {\\n                try {\\n                    xhr.setRequestHeader(\\\"Content-type\\\", \\\"text/plain;charset=UTF-8\\\");\\n                }\\n                catch (e) { }\\n            }\\n            try {\\n                xhr.setRequestHeader(\\\"Accept\\\", \\\"*/*\\\");\\n            }\\n            catch (e) { }\\n            // ie6 check\\n            if (\\\"withCredentials\\\" in xhr) {\\n                xhr.withCredentials = this.opts.withCredentials;\\n            }\\n            if (this.opts.requestTimeout) {\\n                xhr.timeout = this.opts.requestTimeout;\\n            }\\n            xhr.onreadystatechange = () => {\\n                if (4 !== xhr.readyState)\\n                    return;\\n                if (200 === xhr.status || 1223 === xhr.status) {\\n                    this.onLoad();\\n                }\\n                else {\\n                    // make sure the `error` event handler that's user-set\\n                    // does not throw in the same tick and gets caught here\\n                    this.setTimeoutFn(() => {\\n                        this.onError(typeof xhr.status === \\\"number\\\" ? xhr.status : 0);\\n                    }, 0);\\n                }\\n            };\\n            xhr.send(this.data);\\n        }\\n        catch (e) {\\n            // Need to defer since .create() is called directly from the constructor\\n            // and thus the 'error' event can only be only bound *after* this exception\\n            // occurs.  Therefore, also, we cannot throw here at all.\\n            this.setTimeoutFn(() => {\\n                this.onError(e);\\n            }, 0);\\n            return;\\n        }\\n        if (typeof document !== \\\"undefined\\\") {\\n            this.index = Request.requestsCount++;\\n            Request.requests[this.index] = this;\\n        }\\n    }\\n    /**\\n     * Called upon error.\\n     *\\n     * @api private\\n     */\\n    onError(err) {\\n        this.emitReserved(\\\"error\\\", err, this.xhr);\\n        this.cleanup(true);\\n    }\\n    /**\\n     * Cleans up house.\\n     *\\n     * @api private\\n     */\\n    cleanup(fromError) {\\n        if (\\\"undefined\\\" === typeof this.xhr || null === this.xhr) {\\n            return;\\n        }\\n        this.xhr.onreadystatechange = empty;\\n        if (fromError) {\\n            try {\\n                this.xhr.abort();\\n            }\\n            catch (e) { }\\n        }\\n        if (typeof document !== \\\"undefined\\\") {\\n            delete Request.requests[this.index];\\n        }\\n        this.xhr = null;\\n    }\\n    /**\\n     * Called upon load.\\n     *\\n     * @api private\\n     */\\n    onLoad() {\\n        const data = this.xhr.responseText;\\n        if (data !== null) {\\n            this.emitReserved(\\\"data\\\", data);\\n            this.emitReserved(\\\"success\\\");\\n            this.cleanup();\\n        }\\n    }\\n    /**\\n     * Aborts the request.\\n     *\\n     * @api public\\n     */\\n    abort() {\\n        this.cleanup();\\n    }\\n}\\nRequest.requestsCount = 0;\\nRequest.requests = {};\\n/**\\n * Aborts pending requests when unloading the window. This is needed to prevent\\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\\n * emitted.\\n */\\nif (typeof document !== \\\"undefined\\\") {\\n    // @ts-ignore\\n    if (typeof attachEvent === \\\"function\\\") {\\n        // @ts-ignore\\n        attachEvent(\\\"onunload\\\", unloadHandler);\\n    }\\n    else if (typeof addEventListener === \\\"function\\\") {\\n        const terminationEvent = \\\"onpagehide\\\" in _globalThis_js__WEBPACK_IMPORTED_MODULE_7__.globalThisShim ? \\\"pagehide\\\" : \\\"unload\\\";\\n        addEventListener(terminationEvent, unloadHandler, false);\\n    }\\n}\\nfunction unloadHandler() {\\n    for (let i in Request.requests) {\\n        if (Request.requests.hasOwnProperty(i)) {\\n            Request.requests[i].abort();\\n        }\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transports/polling.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js\":\n/*!*********************************************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js ***!\n  \\*********************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"WebSocket\\\": () => (/* binding */ WebSocket),\\n/* harmony export */   \\\"defaultBinaryType\\\": () => (/* binding */ defaultBinaryType),\\n/* harmony export */   \\\"nextTick\\\": () => (/* binding */ nextTick),\\n/* harmony export */   \\\"usingBrowserWebSocket\\\": () => (/* binding */ usingBrowserWebSocket)\\n/* harmony export */ });\\n/* harmony import */ var _globalThis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../globalThis.js */ \\\"./node_modules/engine.io-client/build/esm/globalThis.browser.js\\\");\\n\\nconst nextTick = (() => {\\n    const isPromiseAvailable = typeof Promise === \\\"function\\\" && typeof Promise.resolve === \\\"function\\\";\\n    if (isPromiseAvailable) {\\n        return cb => Promise.resolve().then(cb);\\n    }\\n    else {\\n        return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\\n    }\\n})();\\nconst WebSocket = _globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim.WebSocket || _globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim.MozWebSocket;\\nconst usingBrowserWebSocket = true;\\nconst defaultBinaryType = \\\"arraybuffer\\\";\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transports/websocket.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transports/websocket.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"WS\\\": () => (/* binding */ WS)\\n/* harmony export */ });\\n/* harmony import */ var _transport_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transport.js */ \\\"./node_modules/engine.io-client/build/esm/transport.js\\\");\\n/* harmony import */ var _contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../contrib/parseqs.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/parseqs.js\\\");\\n/* harmony import */ var _contrib_yeast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../contrib/yeast.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/yeast.js\\\");\\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util.js */ \\\"./node_modules/engine.io-client/build/esm/util.js\\\");\\n/* harmony import */ var _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./websocket-constructor.js */ \\\"./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js\\\");\\n/* harmony import */ var engine_io_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! engine.io-parser */ \\\"./node_modules/engine.io-parser/build/esm/index.js\\\");\\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \\\"./node_modules/buffer/index.js\\\")[\\\"Buffer\\\"];\\n\\n\\n\\n\\n\\n\\n// detect ReactNative environment\\nconst isReactNative = typeof navigator !== \\\"undefined\\\" &&\\n    typeof navigator.product === \\\"string\\\" &&\\n    navigator.product.toLowerCase() === \\\"reactnative\\\";\\nclass WS extends _transport_js__WEBPACK_IMPORTED_MODULE_0__.Transport {\\n    /**\\n     * WebSocket transport constructor.\\n     *\\n     * @api {Object} connection options\\n     * @api public\\n     */\\n    constructor(opts) {\\n        super(opts);\\n        this.supportsBinary = !opts.forceBase64;\\n    }\\n    /**\\n     * Transport name.\\n     *\\n     * @api public\\n     */\\n    get name() {\\n        return \\\"websocket\\\";\\n    }\\n    /**\\n     * Opens socket.\\n     *\\n     * @api private\\n     */\\n    doOpen() {\\n        if (!this.check()) {\\n            // let probe timeout\\n            return;\\n        }\\n        const uri = this.uri();\\n        const protocols = this.opts.protocols;\\n        // React Native only supports the 'headers' option, and will print a warning if anything else is passed\\n        const opts = isReactNative\\n            ? {}\\n            : (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.pick)(this.opts, \\\"agent\\\", \\\"perMessageDeflate\\\", \\\"pfx\\\", \\\"key\\\", \\\"passphrase\\\", \\\"cert\\\", \\\"ca\\\", \\\"ciphers\\\", \\\"rejectUnauthorized\\\", \\\"localAddress\\\", \\\"protocolVersion\\\", \\\"origin\\\", \\\"maxPayload\\\", \\\"family\\\", \\\"checkServerIdentity\\\");\\n        if (this.opts.extraHeaders) {\\n            opts.headers = this.opts.extraHeaders;\\n        }\\n        try {\\n            this.ws =\\n                _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.usingBrowserWebSocket && !isReactNative\\n                    ? protocols\\n                        ? new _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.WebSocket(uri, protocols)\\n                        : new _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.WebSocket(uri)\\n                    : new _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.WebSocket(uri, protocols, opts);\\n        }\\n        catch (err) {\\n            return this.emitReserved(\\\"error\\\", err);\\n        }\\n        this.ws.binaryType = this.socket.binaryType || _websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.defaultBinaryType;\\n        this.addEventListeners();\\n    }\\n    /**\\n     * Adds event listeners to the socket\\n     *\\n     * @api private\\n     */\\n    addEventListeners() {\\n        this.ws.onopen = () => {\\n            if (this.opts.autoUnref) {\\n                this.ws._socket.unref();\\n            }\\n            this.onOpen();\\n        };\\n        this.ws.onclose = closeEvent => this.onClose({\\n            description: \\\"websocket connection closed\\\",\\n            context: closeEvent\\n        });\\n        this.ws.onmessage = ev => this.onData(ev.data);\\n        this.ws.onerror = e => this.onError(\\\"websocket error\\\", e);\\n    }\\n    /**\\n     * Writes data to socket.\\n     *\\n     * @param {Array} array of packets.\\n     * @api private\\n     */\\n    write(packets) {\\n        this.writable = false;\\n        // encodePacket efficient as it uses WS framing\\n        // no need for encodePayload\\n        for (let i = 0; i < packets.length; i++) {\\n            const packet = packets[i];\\n            const lastPacket = i === packets.length - 1;\\n            (0,engine_io_parser__WEBPACK_IMPORTED_MODULE_5__.encodePacket)(packet, this.supportsBinary, data => {\\n                // always create a new object (GH-437)\\n                const opts = {};\\n                if (!_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.usingBrowserWebSocket) {\\n                    if (packet.options) {\\n                        opts.compress = packet.options.compress;\\n                    }\\n                    if (this.opts.perMessageDeflate) {\\n                        const len = \\n                        // @ts-ignore\\n                        \\\"string\\\" === typeof data ? Buffer.byteLength(data) : data.length;\\n                        if (len < this.opts.perMessageDeflate.threshold) {\\n                            opts.compress = false;\\n                        }\\n                    }\\n                }\\n                // Sometimes the websocket has already been closed but the browser didn't\\n                // have a chance of informing us about it yet, in that case send will\\n                // throw an error\\n                try {\\n                    if (_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.usingBrowserWebSocket) {\\n                        // TypeError is thrown when passing the second argument on Safari\\n                        this.ws.send(data);\\n                    }\\n                    else {\\n                        this.ws.send(data, opts);\\n                    }\\n                }\\n                catch (e) {\\n                }\\n                if (lastPacket) {\\n                    // fake drain\\n                    // defer to next tick to allow Socket to clear writeBuffer\\n                    (0,_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\\n                        this.writable = true;\\n                        this.emitReserved(\\\"drain\\\");\\n                    }, this.setTimeoutFn);\\n                }\\n            });\\n        }\\n    }\\n    /**\\n     * Closes socket.\\n     *\\n     * @api private\\n     */\\n    doClose() {\\n        if (typeof this.ws !== \\\"undefined\\\") {\\n            this.ws.close();\\n            this.ws = null;\\n        }\\n    }\\n    /**\\n     * Generates uri for connection.\\n     *\\n     * @api private\\n     */\\n    uri() {\\n        let query = this.query || {};\\n        const schema = this.opts.secure ? \\\"wss\\\" : \\\"ws\\\";\\n        let port = \\\"\\\";\\n        // avoid port if default for schema\\n        if (this.opts.port &&\\n            ((\\\"wss\\\" === schema && Number(this.opts.port) !== 443) ||\\n                (\\\"ws\\\" === schema && Number(this.opts.port) !== 80))) {\\n            port = \\\":\\\" + this.opts.port;\\n        }\\n        // append timestamp to URI\\n        if (this.opts.timestampRequests) {\\n            query[this.opts.timestampParam] = (0,_contrib_yeast_js__WEBPACK_IMPORTED_MODULE_2__.yeast)();\\n        }\\n        // communicate binary support capabilities\\n        if (!this.supportsBinary) {\\n            query.b64 = 1;\\n        }\\n        const encodedQuery = (0,_contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_1__.encode)(query);\\n        const ipv6 = this.opts.hostname.indexOf(\\\":\\\") !== -1;\\n        return (schema +\\n            \\\"://\\\" +\\n            (ipv6 ? \\\"[\\\" + this.opts.hostname + \\\"]\\\" : this.opts.hostname) +\\n            port +\\n            this.opts.path +\\n            (encodedQuery.length ? \\\"?\\\" + encodedQuery : \\\"\\\"));\\n    }\\n    /**\\n     * Feature detection for WebSocket.\\n     *\\n     * @return {Boolean} whether this transport is available.\\n     * @api public\\n     */\\n    check() {\\n        return !!_websocket_constructor_js__WEBPACK_IMPORTED_MODULE_4__.WebSocket;\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transports/websocket.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js\":\n/*!**************************************************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js ***!\n  \\**************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"XHR\\\": () => (/* binding */ XHR)\\n/* harmony export */ });\\n/* harmony import */ var _contrib_has_cors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../contrib/has-cors.js */ \\\"./node_modules/engine.io-client/build/esm/contrib/has-cors.js\\\");\\n/* harmony import */ var _globalThis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../globalThis.js */ \\\"./node_modules/engine.io-client/build/esm/globalThis.browser.js\\\");\\n// browser shim for xmlhttprequest module\\n\\n\\nfunction XHR(opts) {\\n    const xdomain = opts.xdomain;\\n    // XMLHttpRequest can be disabled on IE\\n    try {\\n        if (\\\"undefined\\\" !== typeof XMLHttpRequest && (!xdomain || _contrib_has_cors_js__WEBPACK_IMPORTED_MODULE_0__.hasCORS)) {\\n            return new XMLHttpRequest();\\n        }\\n    }\\n    catch (e) { }\\n    if (!xdomain) {\\n        try {\\n            return new _globalThis_js__WEBPACK_IMPORTED_MODULE_1__.globalThisShim[[\\\"Active\\\"].concat(\\\"Object\\\").join(\\\"X\\\")](\\\"Microsoft.XMLHTTP\\\");\\n        }\\n        catch (e) { }\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-client/build/esm/util.js\":\n/*!*********************************************************!*\\\n  !*** ./node_modules/engine.io-client/build/esm/util.js ***!\n  \\*********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"byteLength\\\": () => (/* binding */ byteLength),\\n/* harmony export */   \\\"installTimerFunctions\\\": () => (/* binding */ installTimerFunctions),\\n/* harmony export */   \\\"pick\\\": () => (/* binding */ pick)\\n/* harmony export */ });\\n/* harmony import */ var _globalThis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./globalThis.js */ \\\"./node_modules/engine.io-client/build/esm/globalThis.browser.js\\\");\\n\\nfunction pick(obj, ...attr) {\\n    return attr.reduce((acc, k) => {\\n        if (obj.hasOwnProperty(k)) {\\n            acc[k] = obj[k];\\n        }\\n        return acc;\\n    }, {});\\n}\\n// Keep a reference to the real timeout functions so they can be used when overridden\\nconst NATIVE_SET_TIMEOUT = setTimeout;\\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\\nfunction installTimerFunctions(obj, opts) {\\n    if (opts.useNativeTimers) {\\n        obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(_globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim);\\n        obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(_globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim);\\n    }\\n    else {\\n        obj.setTimeoutFn = setTimeout.bind(_globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim);\\n        obj.clearTimeoutFn = clearTimeout.bind(_globalThis_js__WEBPACK_IMPORTED_MODULE_0__.globalThisShim);\\n    }\\n}\\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\\nconst BASE64_OVERHEAD = 1.33;\\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\\nfunction byteLength(obj) {\\n    if (typeof obj === \\\"string\\\") {\\n        return utf8Length(obj);\\n    }\\n    // arraybuffer or blob\\n    return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\\n}\\nfunction utf8Length(str) {\\n    let c = 0, length = 0;\\n    for (let i = 0, l = str.length; i < l; i++) {\\n        c = str.charCodeAt(i);\\n        if (c < 0x80) {\\n            length += 1;\\n        }\\n        else if (c < 0x800) {\\n            length += 2;\\n        }\\n        else if (c < 0xd800 || c >= 0xe000) {\\n            length += 3;\\n        }\\n        else {\\n            i++;\\n            length += 4;\\n        }\\n    }\\n    return length;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-client/build/esm/util.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-parser/build/esm/commons.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/engine.io-parser/build/esm/commons.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"ERROR_PACKET\\\": () => (/* binding */ ERROR_PACKET),\\n/* harmony export */   \\\"PACKET_TYPES\\\": () => (/* binding */ PACKET_TYPES),\\n/* harmony export */   \\\"PACKET_TYPES_REVERSE\\\": () => (/* binding */ PACKET_TYPES_REVERSE)\\n/* harmony export */ });\\nconst PACKET_TYPES = Object.create(null); // no Map = no polyfill\\nPACKET_TYPES[\\\"open\\\"] = \\\"0\\\";\\nPACKET_TYPES[\\\"close\\\"] = \\\"1\\\";\\nPACKET_TYPES[\\\"ping\\\"] = \\\"2\\\";\\nPACKET_TYPES[\\\"pong\\\"] = \\\"3\\\";\\nPACKET_TYPES[\\\"message\\\"] = \\\"4\\\";\\nPACKET_TYPES[\\\"upgrade\\\"] = \\\"5\\\";\\nPACKET_TYPES[\\\"noop\\\"] = \\\"6\\\";\\nconst PACKET_TYPES_REVERSE = Object.create(null);\\nObject.keys(PACKET_TYPES).forEach(key => {\\n    PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\\n});\\nconst ERROR_PACKET = { type: \\\"error\\\", data: \\\"parser error\\\" };\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-parser/build/esm/commons.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js\":\n/*!*******************************************************************************!*\\\n  !*** ./node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js ***!\n  \\*******************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"decode\\\": () => (/* binding */ decode),\\n/* harmony export */   \\\"encode\\\": () => (/* binding */ encode)\\n/* harmony export */ });\\n// imported from https://github.com/socketio/base64-arraybuffer\\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\\n// Use a lookup table to find the index.\\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\\nfor (let i = 0; i < chars.length; i++) {\\n    lookup[chars.charCodeAt(i)] = i;\\n}\\nconst encode = (arraybuffer) => {\\n    let bytes = new Uint8Array(arraybuffer), 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};\\nconst decode = (base64) => {\\n    let 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    const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\\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 arraybuffer;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-parser/build/esm/decodePacket.browser.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/engine.io-parser/build/esm/decodePacket.browser.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony import */ var _commons_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./commons.js */ \\\"./node_modules/engine.io-parser/build/esm/commons.js\\\");\\n/* harmony import */ var _contrib_base64_arraybuffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contrib/base64-arraybuffer.js */ \\\"./node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js\\\");\\n\\n\\nconst withNativeArrayBuffer = typeof ArrayBuffer === \\\"function\\\";\\nconst decodePacket = (encodedPacket, binaryType) => {\\n    if (typeof encodedPacket !== \\\"string\\\") {\\n        return {\\n            type: \\\"message\\\",\\n            data: mapBinary(encodedPacket, binaryType)\\n        };\\n    }\\n    const type = encodedPacket.charAt(0);\\n    if (type === \\\"b\\\") {\\n        return {\\n            type: \\\"message\\\",\\n            data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\\n        };\\n    }\\n    const packetType = _commons_js__WEBPACK_IMPORTED_MODULE_0__.PACKET_TYPES_REVERSE[type];\\n    if (!packetType) {\\n        return _commons_js__WEBPACK_IMPORTED_MODULE_0__.ERROR_PACKET;\\n    }\\n    return encodedPacket.length > 1\\n        ? {\\n            type: _commons_js__WEBPACK_IMPORTED_MODULE_0__.PACKET_TYPES_REVERSE[type],\\n            data: encodedPacket.substring(1)\\n        }\\n        : {\\n            type: _commons_js__WEBPACK_IMPORTED_MODULE_0__.PACKET_TYPES_REVERSE[type]\\n        };\\n};\\nconst decodeBase64Packet = (data, binaryType) => {\\n    if (withNativeArrayBuffer) {\\n        const decoded = (0,_contrib_base64_arraybuffer_js__WEBPACK_IMPORTED_MODULE_1__.decode)(data);\\n        return mapBinary(decoded, binaryType);\\n    }\\n    else {\\n        return { base64: true, data }; // fallback for old browsers\\n    }\\n};\\nconst mapBinary = (data, binaryType) => {\\n    switch (binaryType) {\\n        case \\\"blob\\\":\\n            return data instanceof ArrayBuffer ? new Blob([data]) : data;\\n        case \\\"arraybuffer\\\":\\n        default:\\n            return data; // assuming the data is already an ArrayBuffer\\n    }\\n};\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodePacket);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-parser/build/esm/decodePacket.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-parser/build/esm/encodePacket.browser.js\":\n/*!*************************************************************************!*\\\n  !*** ./node_modules/engine.io-parser/build/esm/encodePacket.browser.js ***!\n  \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"default\\\": () => (__WEBPACK_DEFAULT_EXPORT__)\\n/* harmony export */ });\\n/* harmony import */ var _commons_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./commons.js */ \\\"./node_modules/engine.io-parser/build/esm/commons.js\\\");\\n\\nconst withNativeBlob = typeof Blob === \\\"function\\\" ||\\n    (typeof Blob !== \\\"undefined\\\" &&\\n        Object.prototype.toString.call(Blob) === \\\"[object BlobConstructor]\\\");\\nconst withNativeArrayBuffer = typeof ArrayBuffer === \\\"function\\\";\\n// ArrayBuffer.isView method is not defined in IE10\\nconst isView = obj => {\\n    return typeof ArrayBuffer.isView === \\\"function\\\"\\n        ? ArrayBuffer.isView(obj)\\n        : obj && obj.buffer instanceof ArrayBuffer;\\n};\\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\\n    if (withNativeBlob && data instanceof Blob) {\\n        if (supportsBinary) {\\n            return callback(data);\\n        }\\n        else {\\n            return encodeBlobAsBase64(data, callback);\\n        }\\n    }\\n    else if (withNativeArrayBuffer &&\\n        (data instanceof ArrayBuffer || isView(data))) {\\n        if (supportsBinary) {\\n            return callback(data);\\n        }\\n        else {\\n            return encodeBlobAsBase64(new Blob([data]), callback);\\n        }\\n    }\\n    // plain string\\n    return callback(_commons_js__WEBPACK_IMPORTED_MODULE_0__.PACKET_TYPES[type] + (data || \\\"\\\"));\\n};\\nconst encodeBlobAsBase64 = (data, callback) => {\\n    const fileReader = new FileReader();\\n    fileReader.onload = function () {\\n        const content = fileReader.result.split(\\\",\\\")[1];\\n        callback(\\\"b\\\" + (content || \\\"\\\"));\\n    };\\n    return fileReader.readAsDataURL(data);\\n};\\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (encodePacket);\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-parser/build/esm/encodePacket.browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/engine.io-parser/build/esm/index.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/engine.io-parser/build/esm/index.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"decodePacket\\\": () => (/* reexport safe */ _decodePacket_js__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"]),\\n/* harmony export */   \\\"decodePayload\\\": () => (/* binding */ decodePayload),\\n/* harmony export */   \\\"encodePacket\\\": () => (/* reexport safe */ _encodePacket_js__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]),\\n/* harmony export */   \\\"encodePayload\\\": () => (/* binding */ encodePayload),\\n/* harmony export */   \\\"protocol\\\": () => (/* binding */ protocol)\\n/* harmony export */ });\\n/* harmony import */ var _encodePacket_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encodePacket.js */ \\\"./node_modules/engine.io-parser/build/esm/encodePacket.browser.js\\\");\\n/* harmony import */ var _decodePacket_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./decodePacket.js */ \\\"./node_modules/engine.io-parser/build/esm/decodePacket.browser.js\\\");\\n\\n\\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\\nconst encodePayload = (packets, callback) => {\\n    // some packets may be added to the array while encoding, so the initial length must be saved\\n    const length = packets.length;\\n    const encodedPackets = new Array(length);\\n    let count = 0;\\n    packets.forEach((packet, i) => {\\n        // force base64 encoding for binary packets\\n        (0,_encodePacket_js__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"])(packet, false, encodedPacket => {\\n            encodedPackets[i] = encodedPacket;\\n            if (++count === length) {\\n                callback(encodedPackets.join(SEPARATOR));\\n            }\\n        });\\n    });\\n};\\nconst decodePayload = (encodedPayload, binaryType) => {\\n    const encodedPackets = encodedPayload.split(SEPARATOR);\\n    const packets = [];\\n    for (let i = 0; i < encodedPackets.length; i++) {\\n        const decodedPacket = (0,_decodePacket_js__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"])(encodedPackets[i], binaryType);\\n        packets.push(decodedPacket);\\n        if (decodedPacket.type === \\\"error\\\") {\\n            break;\\n        }\\n    }\\n    return packets;\\n};\\nconst protocol = 4;\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/engine.io-parser/build/esm/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/contrib/backo2.js\":\n/*!*******************************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/contrib/backo2.js ***!\n  \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Backoff\\\": () => (/* binding */ Backoff)\\n/* harmony export */ });\\n/**\\n * Initialize backoff timer with `opts`.\\n *\\n * - `min` initial timeout in milliseconds [100]\\n * - `max` max timeout [10000]\\n * - `jitter` [0]\\n * - `factor` [2]\\n *\\n * @param {Object} opts\\n * @api public\\n */\\nfunction Backoff(opts) {\\n    opts = opts || {};\\n    this.ms = opts.min || 100;\\n    this.max = opts.max || 10000;\\n    this.factor = opts.factor || 2;\\n    this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\\n    this.attempts = 0;\\n}\\n/**\\n * Return the backoff duration.\\n *\\n * @return {Number}\\n * @api public\\n */\\nBackoff.prototype.duration = function () {\\n    var ms = this.ms * Math.pow(this.factor, this.attempts++);\\n    if (this.jitter) {\\n        var rand = Math.random();\\n        var deviation = Math.floor(rand * this.jitter * ms);\\n        ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\\n    }\\n    return Math.min(ms, this.max) | 0;\\n};\\n/**\\n * Reset the number of attempts.\\n *\\n * @api public\\n */\\nBackoff.prototype.reset = function () {\\n    this.attempts = 0;\\n};\\n/**\\n * Set the minimum duration\\n *\\n * @api public\\n */\\nBackoff.prototype.setMin = function (min) {\\n    this.ms = min;\\n};\\n/**\\n * Set the maximum duration\\n *\\n * @api public\\n */\\nBackoff.prototype.setMax = function (max) {\\n    this.max = max;\\n};\\n/**\\n * Set the jitter\\n *\\n * @api public\\n */\\nBackoff.prototype.setJitter = function (jitter) {\\n    this.jitter = jitter;\\n};\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/contrib/backo2.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/index.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/index.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Manager\\\": () => (/* reexport safe */ _manager_js__WEBPACK_IMPORTED_MODULE_1__.Manager),\\n/* harmony export */   \\\"Socket\\\": () => (/* reexport safe */ _socket_js__WEBPACK_IMPORTED_MODULE_2__.Socket),\\n/* harmony export */   \\\"connect\\\": () => (/* binding */ lookup),\\n/* harmony export */   \\\"default\\\": () => (/* binding */ lookup),\\n/* harmony export */   \\\"io\\\": () => (/* binding */ lookup),\\n/* harmony export */   \\\"protocol\\\": () => (/* reexport safe */ socket_io_parser__WEBPACK_IMPORTED_MODULE_3__.protocol)\\n/* harmony export */ });\\n/* harmony import */ var _url_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url.js */ \\\"./node_modules/socket.io-client/build/esm/url.js\\\");\\n/* harmony import */ var _manager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./manager.js */ \\\"./node_modules/socket.io-client/build/esm/manager.js\\\");\\n/* harmony import */ var _socket_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./socket.js */ \\\"./node_modules/socket.io-client/build/esm/socket.js\\\");\\n/* harmony import */ var socket_io_parser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! socket.io-parser */ \\\"./node_modules/socket.io-parser/build/esm/index.js\\\");\\n\\n\\n\\n/**\\n * Managers cache.\\n */\\nconst cache = {};\\nfunction lookup(uri, opts) {\\n    if (typeof uri === \\\"object\\\") {\\n        opts = uri;\\n        uri = undefined;\\n    }\\n    opts = opts || {};\\n    const parsed = (0,_url_js__WEBPACK_IMPORTED_MODULE_0__.url)(uri, opts.path || \\\"/socket.io\\\");\\n    const source = parsed.source;\\n    const id = parsed.id;\\n    const path = parsed.path;\\n    const sameNamespace = cache[id] && path in cache[id][\\\"nsps\\\"];\\n    const newConnection = opts.forceNew ||\\n        opts[\\\"force new connection\\\"] ||\\n        false === opts.multiplex ||\\n        sameNamespace;\\n    let io;\\n    if (newConnection) {\\n        io = new _manager_js__WEBPACK_IMPORTED_MODULE_1__.Manager(source, opts);\\n    }\\n    else {\\n        if (!cache[id]) {\\n            cache[id] = new _manager_js__WEBPACK_IMPORTED_MODULE_1__.Manager(source, opts);\\n        }\\n        io = cache[id];\\n    }\\n    if (parsed.query && !opts.query) {\\n        opts.query = parsed.queryKey;\\n    }\\n    return io.socket(parsed.path, opts);\\n}\\n// so that \\\"lookup\\\" can be used both as a function (e.g. `io(...)`) and as a\\n// namespace (e.g. `io.connect(...)`), for backward compatibility\\nObject.assign(lookup, {\\n    Manager: _manager_js__WEBPACK_IMPORTED_MODULE_1__.Manager,\\n    Socket: _socket_js__WEBPACK_IMPORTED_MODULE_2__.Socket,\\n    io: lookup,\\n    connect: lookup,\\n});\\n/**\\n * Protocol version.\\n *\\n * @public\\n */\\n\\n/**\\n * Expose constructors for standalone build.\\n *\\n * @public\\n */\\n\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/manager.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/manager.js ***!\n  \\************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Manager\\\": () => (/* binding */ Manager)\\n/* harmony export */ });\\n/* harmony import */ var engine_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! engine.io-client */ \\\"./node_modules/engine.io-client/build/esm/index.js\\\");\\n/* harmony import */ var _socket_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./socket.js */ \\\"./node_modules/socket.io-client/build/esm/socket.js\\\");\\n/* harmony import */ var socket_io_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! socket.io-parser */ \\\"./node_modules/socket.io-parser/build/esm/index.js\\\");\\n/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./on.js */ \\\"./node_modules/socket.io-client/build/esm/on.js\\\");\\n/* harmony import */ var _contrib_backo2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contrib/backo2.js */ \\\"./node_modules/socket.io-client/build/esm/contrib/backo2.js\\\");\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n\\n\\n\\n\\n\\n\\nclass Manager extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_5__.Emitter {\\n    constructor(uri, opts) {\\n        var _a;\\n        super();\\n        this.nsps = {};\\n        this.subs = [];\\n        if (uri && \\\"object\\\" === typeof uri) {\\n            opts = uri;\\n            uri = undefined;\\n        }\\n        opts = opts || {};\\n        opts.path = opts.path || \\\"/socket.io\\\";\\n        this.opts = opts;\\n        (0,engine_io_client__WEBPACK_IMPORTED_MODULE_0__.installTimerFunctions)(this, opts);\\n        this.reconnection(opts.reconnection !== false);\\n        this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\\n        this.reconnectionDelay(opts.reconnectionDelay || 1000);\\n        this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\\n        this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\\n        this.backoff = new _contrib_backo2_js__WEBPACK_IMPORTED_MODULE_4__.Backoff({\\n            min: this.reconnectionDelay(),\\n            max: this.reconnectionDelayMax(),\\n            jitter: this.randomizationFactor(),\\n        });\\n        this.timeout(null == opts.timeout ? 20000 : opts.timeout);\\n        this._readyState = \\\"closed\\\";\\n        this.uri = uri;\\n        const _parser = opts.parser || socket_io_parser__WEBPACK_IMPORTED_MODULE_2__;\\n        this.encoder = new _parser.Encoder();\\n        this.decoder = new _parser.Decoder();\\n        this._autoConnect = opts.autoConnect !== false;\\n        if (this._autoConnect)\\n            this.open();\\n    }\\n    reconnection(v) {\\n        if (!arguments.length)\\n            return this._reconnection;\\n        this._reconnection = !!v;\\n        return this;\\n    }\\n    reconnectionAttempts(v) {\\n        if (v === undefined)\\n            return this._reconnectionAttempts;\\n        this._reconnectionAttempts = v;\\n        return this;\\n    }\\n    reconnectionDelay(v) {\\n        var _a;\\n        if (v === undefined)\\n            return this._reconnectionDelay;\\n        this._reconnectionDelay = v;\\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\\n        return this;\\n    }\\n    randomizationFactor(v) {\\n        var _a;\\n        if (v === undefined)\\n            return this._randomizationFactor;\\n        this._randomizationFactor = v;\\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\\n        return this;\\n    }\\n    reconnectionDelayMax(v) {\\n        var _a;\\n        if (v === undefined)\\n            return this._reconnectionDelayMax;\\n        this._reconnectionDelayMax = v;\\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\\n        return this;\\n    }\\n    timeout(v) {\\n        if (!arguments.length)\\n            return this._timeout;\\n        this._timeout = v;\\n        return this;\\n    }\\n    /**\\n     * Starts trying to reconnect if reconnection is enabled and we have not\\n     * started reconnecting yet\\n     *\\n     * @private\\n     */\\n    maybeReconnectOnOpen() {\\n        // Only try to reconnect if it's the first time we're connecting\\n        if (!this._reconnecting &&\\n            this._reconnection &&\\n            this.backoff.attempts === 0) {\\n            // keeps reconnection from firing twice for the same reconnection loop\\n            this.reconnect();\\n        }\\n    }\\n    /**\\n     * Sets the current transport `socket`.\\n     *\\n     * @param {Function} fn - optional, callback\\n     * @return self\\n     * @public\\n     */\\n    open(fn) {\\n        if (~this._readyState.indexOf(\\\"open\\\"))\\n            return this;\\n        this.engine = new engine_io_client__WEBPACK_IMPORTED_MODULE_0__.Socket(this.uri, this.opts);\\n        const socket = this.engine;\\n        const self = this;\\n        this._readyState = \\\"opening\\\";\\n        this.skipReconnect = false;\\n        // emit `open`\\n        const openSubDestroy = (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"open\\\", function () {\\n            self.onopen();\\n            fn && fn();\\n        });\\n        // emit `error`\\n        const errorSub = (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"error\\\", (err) => {\\n            self.cleanup();\\n            self._readyState = \\\"closed\\\";\\n            this.emitReserved(\\\"error\\\", err);\\n            if (fn) {\\n                fn(err);\\n            }\\n            else {\\n                // Only do this if there is no fn to handle the error\\n                self.maybeReconnectOnOpen();\\n            }\\n        });\\n        if (false !== this._timeout) {\\n            const timeout = this._timeout;\\n            if (timeout === 0) {\\n                openSubDestroy(); // prevents a race condition with the 'open' event\\n            }\\n            // set timer\\n            const timer = this.setTimeoutFn(() => {\\n                openSubDestroy();\\n                socket.close();\\n                // @ts-ignore\\n                socket.emit(\\\"error\\\", new Error(\\\"timeout\\\"));\\n            }, timeout);\\n            if (this.opts.autoUnref) {\\n                timer.unref();\\n            }\\n            this.subs.push(function subDestroy() {\\n                clearTimeout(timer);\\n            });\\n        }\\n        this.subs.push(openSubDestroy);\\n        this.subs.push(errorSub);\\n        return this;\\n    }\\n    /**\\n     * Alias for open()\\n     *\\n     * @return self\\n     * @public\\n     */\\n    connect(fn) {\\n        return this.open(fn);\\n    }\\n    /**\\n     * Called upon transport open.\\n     *\\n     * @private\\n     */\\n    onopen() {\\n        // clear old subs\\n        this.cleanup();\\n        // mark as open\\n        this._readyState = \\\"open\\\";\\n        this.emitReserved(\\\"open\\\");\\n        // add new subs\\n        const socket = this.engine;\\n        this.subs.push((0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"ping\\\", this.onping.bind(this)), (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"data\\\", this.ondata.bind(this)), (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"error\\\", this.onerror.bind(this)), (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(socket, \\\"close\\\", this.onclose.bind(this)), (0,_on_js__WEBPACK_IMPORTED_MODULE_3__.on)(this.decoder, \\\"decoded\\\", this.ondecoded.bind(this)));\\n    }\\n    /**\\n     * Called upon a ping.\\n     *\\n     * @private\\n     */\\n    onping() {\\n        this.emitReserved(\\\"ping\\\");\\n    }\\n    /**\\n     * Called with data.\\n     *\\n     * @private\\n     */\\n    ondata(data) {\\n        try {\\n            this.decoder.add(data);\\n        }\\n        catch (e) {\\n            this.onclose(\\\"parse error\\\", e);\\n        }\\n    }\\n    /**\\n     * Called when parser fully decodes a packet.\\n     *\\n     * @private\\n     */\\n    ondecoded(packet) {\\n        // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \\\"parse error\\\"\\n        (0,engine_io_client__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {\\n            this.emitReserved(\\\"packet\\\", packet);\\n        }, this.setTimeoutFn);\\n    }\\n    /**\\n     * Called upon socket error.\\n     *\\n     * @private\\n     */\\n    onerror(err) {\\n        this.emitReserved(\\\"error\\\", err);\\n    }\\n    /**\\n     * Creates a new socket for the given `nsp`.\\n     *\\n     * @return {Socket}\\n     * @public\\n     */\\n    socket(nsp, opts) {\\n        let socket = this.nsps[nsp];\\n        if (!socket) {\\n            socket = new _socket_js__WEBPACK_IMPORTED_MODULE_1__.Socket(this, nsp, opts);\\n            this.nsps[nsp] = socket;\\n        }\\n        return socket;\\n    }\\n    /**\\n     * Called upon a socket close.\\n     *\\n     * @param socket\\n     * @private\\n     */\\n    _destroy(socket) {\\n        const nsps = Object.keys(this.nsps);\\n        for (const nsp of nsps) {\\n            const socket = this.nsps[nsp];\\n            if (socket.active) {\\n                return;\\n            }\\n        }\\n        this._close();\\n    }\\n    /**\\n     * Writes a packet.\\n     *\\n     * @param packet\\n     * @private\\n     */\\n    _packet(packet) {\\n        const encodedPackets = this.encoder.encode(packet);\\n        for (let i = 0; i < encodedPackets.length; i++) {\\n            this.engine.write(encodedPackets[i], packet.options);\\n        }\\n    }\\n    /**\\n     * Clean up transport subscriptions and packet buffer.\\n     *\\n     * @private\\n     */\\n    cleanup() {\\n        this.subs.forEach((subDestroy) => subDestroy());\\n        this.subs.length = 0;\\n        this.decoder.destroy();\\n    }\\n    /**\\n     * Close the current socket.\\n     *\\n     * @private\\n     */\\n    _close() {\\n        this.skipReconnect = true;\\n        this._reconnecting = false;\\n        this.onclose(\\\"forced close\\\");\\n        if (this.engine)\\n            this.engine.close();\\n    }\\n    /**\\n     * Alias for close()\\n     *\\n     * @private\\n     */\\n    disconnect() {\\n        return this._close();\\n    }\\n    /**\\n     * Called upon engine close.\\n     *\\n     * @private\\n     */\\n    onclose(reason, description) {\\n        this.cleanup();\\n        this.backoff.reset();\\n        this._readyState = \\\"closed\\\";\\n        this.emitReserved(\\\"close\\\", reason, description);\\n        if (this._reconnection && !this.skipReconnect) {\\n            this.reconnect();\\n        }\\n    }\\n    /**\\n     * Attempt a reconnection.\\n     *\\n     * @private\\n     */\\n    reconnect() {\\n        if (this._reconnecting || this.skipReconnect)\\n            return this;\\n        const self = this;\\n        if (this.backoff.attempts >= this._reconnectionAttempts) {\\n            this.backoff.reset();\\n            this.emitReserved(\\\"reconnect_failed\\\");\\n            this._reconnecting = false;\\n        }\\n        else {\\n            const delay = this.backoff.duration();\\n            this._reconnecting = true;\\n            const timer = this.setTimeoutFn(() => {\\n                if (self.skipReconnect)\\n                    return;\\n                this.emitReserved(\\\"reconnect_attempt\\\", self.backoff.attempts);\\n                // check again for the case socket closed in above events\\n                if (self.skipReconnect)\\n                    return;\\n                self.open((err) => {\\n                    if (err) {\\n                        self._reconnecting = false;\\n                        self.reconnect();\\n                        this.emitReserved(\\\"reconnect_error\\\", err);\\n                    }\\n                    else {\\n                        self.onreconnect();\\n                    }\\n                });\\n            }, delay);\\n            if (this.opts.autoUnref) {\\n                timer.unref();\\n            }\\n            this.subs.push(function subDestroy() {\\n                clearTimeout(timer);\\n            });\\n        }\\n    }\\n    /**\\n     * Called upon successful reconnect.\\n     *\\n     * @private\\n     */\\n    onreconnect() {\\n        const attempt = this.backoff.attempts;\\n        this._reconnecting = false;\\n        this.backoff.reset();\\n        this.emitReserved(\\\"reconnect\\\", attempt);\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/manager.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/on.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/on.js ***!\n  \\*******************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"on\\\": () => (/* binding */ on)\\n/* harmony export */ });\\nfunction on(obj, ev, fn) {\\n    obj.on(ev, fn);\\n    return function subDestroy() {\\n        obj.off(ev, fn);\\n    };\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/on.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/socket.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/socket.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Socket\\\": () => (/* binding */ Socket)\\n/* harmony export */ });\\n/* harmony import */ var socket_io_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-parser */ \\\"./node_modules/socket.io-parser/build/esm/index.js\\\");\\n/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./on.js */ \\\"./node_modules/socket.io-client/build/esm/on.js\\\");\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n\\n\\n\\n/**\\n * Internal events.\\n * These events can't be emitted by the user.\\n */\\nconst RESERVED_EVENTS = Object.freeze({\\n    connect: 1,\\n    connect_error: 1,\\n    disconnect: 1,\\n    disconnecting: 1,\\n    // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\\n    newListener: 1,\\n    removeListener: 1,\\n});\\n/**\\n * A Socket is the fundamental class for interacting with the server.\\n *\\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\\n *\\n * @example\\n * const socket = io();\\n *\\n * socket.on(\\\"connect\\\", () => {\\n *   console.log(\\\"connected\\\");\\n * });\\n *\\n * // send an event to the server\\n * socket.emit(\\\"foo\\\", \\\"bar\\\");\\n *\\n * socket.on(\\\"foobar\\\", () => {\\n *   // an event was received from the server\\n * });\\n *\\n * // upon disconnection\\n * socket.on(\\\"disconnect\\\", (reason) => {\\n *   console.log(`disconnected due to ${reason}`);\\n * });\\n */\\nclass Socket extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_2__.Emitter {\\n    /**\\n     * `Socket` constructor.\\n     */\\n    constructor(io, nsp, opts) {\\n        super();\\n        /**\\n         * Whether the socket is currently connected to the server.\\n         *\\n         * @example\\n         * const socket = io();\\n         *\\n         * socket.on(\\\"connect\\\", () => {\\n         *   console.log(socket.connected); // true\\n         * });\\n         *\\n         * socket.on(\\\"disconnect\\\", () => {\\n         *   console.log(socket.connected); // false\\n         * });\\n         */\\n        this.connected = false;\\n        /**\\n         * Buffer for packets received before the CONNECT packet\\n         */\\n        this.receiveBuffer = [];\\n        /**\\n         * Buffer for packets that will be sent once the socket is connected\\n         */\\n        this.sendBuffer = [];\\n        this.ids = 0;\\n        this.acks = {};\\n        this.flags = {};\\n        this.io = io;\\n        this.nsp = nsp;\\n        if (opts && opts.auth) {\\n            this.auth = opts.auth;\\n        }\\n        if (this.io._autoConnect)\\n            this.open();\\n    }\\n    /**\\n     * Whether the socket is currently disconnected\\n     *\\n     * @example\\n     * const socket = io();\\n     *\\n     * socket.on(\\\"connect\\\", () => {\\n     *   console.log(socket.disconnected); // false\\n     * });\\n     *\\n     * socket.on(\\\"disconnect\\\", () => {\\n     *   console.log(socket.disconnected); // true\\n     * });\\n     */\\n    get disconnected() {\\n        return !this.connected;\\n    }\\n    /**\\n     * Subscribe to open, close and packet events\\n     *\\n     * @private\\n     */\\n    subEvents() {\\n        if (this.subs)\\n            return;\\n        const io = this.io;\\n        this.subs = [\\n            (0,_on_js__WEBPACK_IMPORTED_MODULE_1__.on)(io, \\\"open\\\", this.onopen.bind(this)),\\n            (0,_on_js__WEBPACK_IMPORTED_MODULE_1__.on)(io, \\\"packet\\\", this.onpacket.bind(this)),\\n            (0,_on_js__WEBPACK_IMPORTED_MODULE_1__.on)(io, \\\"error\\\", this.onerror.bind(this)),\\n            (0,_on_js__WEBPACK_IMPORTED_MODULE_1__.on)(io, \\\"close\\\", this.onclose.bind(this)),\\n        ];\\n    }\\n    /**\\n     * Whether the Socket will try to reconnect when its Manager connects or reconnects.\\n     *\\n     * @example\\n     * const socket = io();\\n     *\\n     * console.log(socket.active); // true\\n     *\\n     * socket.on(\\\"disconnect\\\", (reason) => {\\n     *   if (reason === \\\"io server disconnect\\\") {\\n     *     // the disconnection was initiated by the server, you need to manually reconnect\\n     *     console.log(socket.active); // false\\n     *   }\\n     *   // else the socket will automatically try to reconnect\\n     *   console.log(socket.active); // true\\n     * });\\n     */\\n    get active() {\\n        return !!this.subs;\\n    }\\n    /**\\n     * \\\"Opens\\\" the socket.\\n     *\\n     * @example\\n     * const socket = io({\\n     *   autoConnect: false\\n     * });\\n     *\\n     * socket.connect();\\n     */\\n    connect() {\\n        if (this.connected)\\n            return this;\\n        this.subEvents();\\n        if (!this.io[\\\"_reconnecting\\\"])\\n            this.io.open(); // ensure open\\n        if (\\\"open\\\" === this.io._readyState)\\n            this.onopen();\\n        return this;\\n    }\\n    /**\\n     * Alias for {@link connect()}.\\n     */\\n    open() {\\n        return this.connect();\\n    }\\n    /**\\n     * Sends a `message` event.\\n     *\\n     * This method mimics the WebSocket.send() method.\\n     *\\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\\n     *\\n     * @example\\n     * socket.send(\\\"hello\\\");\\n     *\\n     * // this is equivalent to\\n     * socket.emit(\\\"message\\\", \\\"hello\\\");\\n     *\\n     * @return self\\n     */\\n    send(...args) {\\n        args.unshift(\\\"message\\\");\\n        this.emit.apply(this, args);\\n        return this;\\n    }\\n    /**\\n     * Override `emit`.\\n     * If the event is in `events`, it's emitted normally.\\n     *\\n     * @example\\n     * socket.emit(\\\"hello\\\", \\\"world\\\");\\n     *\\n     * // all serializable datastructures are supported (no need to call JSON.stringify)\\n     * socket.emit(\\\"hello\\\", 1, \\\"2\\\", { 3: [\\\"4\\\"], 5: Uint8Array.from([6]) });\\n     *\\n     * // with an acknowledgement from the server\\n     * socket.emit(\\\"hello\\\", \\\"world\\\", (val) => {\\n     *   // ...\\n     * });\\n     *\\n     * @return self\\n     */\\n    emit(ev, ...args) {\\n        if (RESERVED_EVENTS.hasOwnProperty(ev)) {\\n            throw new Error('\\\"' + ev.toString() + '\\\" is a reserved event name');\\n        }\\n        args.unshift(ev);\\n        const packet = {\\n            type: socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.EVENT,\\n            data: args,\\n        };\\n        packet.options = {};\\n        packet.options.compress = this.flags.compress !== false;\\n        // event ack callback\\n        if (\\\"function\\\" === typeof args[args.length - 1]) {\\n            const id = this.ids++;\\n            const ack = args.pop();\\n            this._registerAckCallback(id, ack);\\n            packet.id = id;\\n        }\\n        const isTransportWritable = this.io.engine &&\\n            this.io.engine.transport &&\\n            this.io.engine.transport.writable;\\n        const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\\n        if (discardPacket) {\\n        }\\n        else if (this.connected) {\\n            this.notifyOutgoingListeners(packet);\\n            this.packet(packet);\\n        }\\n        else {\\n            this.sendBuffer.push(packet);\\n        }\\n        this.flags = {};\\n        return this;\\n    }\\n    /**\\n     * @private\\n     */\\n    _registerAckCallback(id, ack) {\\n        const timeout = this.flags.timeout;\\n        if (timeout === undefined) {\\n            this.acks[id] = ack;\\n            return;\\n        }\\n        // @ts-ignore\\n        const timer = this.io.setTimeoutFn(() => {\\n            delete this.acks[id];\\n            for (let i = 0; i < this.sendBuffer.length; i++) {\\n                if (this.sendBuffer[i].id === id) {\\n                    this.sendBuffer.splice(i, 1);\\n                }\\n            }\\n            ack.call(this, new Error(\\\"operation has timed out\\\"));\\n        }, timeout);\\n        this.acks[id] = (...args) => {\\n            // @ts-ignore\\n            this.io.clearTimeoutFn(timer);\\n            ack.apply(this, [null, ...args]);\\n        };\\n    }\\n    /**\\n     * Sends a packet.\\n     *\\n     * @param packet\\n     * @private\\n     */\\n    packet(packet) {\\n        packet.nsp = this.nsp;\\n        this.io._packet(packet);\\n    }\\n    /**\\n     * Called upon engine `open`.\\n     *\\n     * @private\\n     */\\n    onopen() {\\n        if (typeof this.auth == \\\"function\\\") {\\n            this.auth((data) => {\\n                this.packet({ type: socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.CONNECT, data });\\n            });\\n        }\\n        else {\\n            this.packet({ type: socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.CONNECT, data: this.auth });\\n        }\\n    }\\n    /**\\n     * Called upon engine or manager `error`.\\n     *\\n     * @param err\\n     * @private\\n     */\\n    onerror(err) {\\n        if (!this.connected) {\\n            this.emitReserved(\\\"connect_error\\\", err);\\n        }\\n    }\\n    /**\\n     * Called upon engine `close`.\\n     *\\n     * @param reason\\n     * @param description\\n     * @private\\n     */\\n    onclose(reason, description) {\\n        this.connected = false;\\n        delete this.id;\\n        this.emitReserved(\\\"disconnect\\\", reason, description);\\n    }\\n    /**\\n     * Called with socket packet.\\n     *\\n     * @param packet\\n     * @private\\n     */\\n    onpacket(packet) {\\n        const sameNamespace = packet.nsp === this.nsp;\\n        if (!sameNamespace)\\n            return;\\n        switch (packet.type) {\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.CONNECT:\\n                if (packet.data && packet.data.sid) {\\n                    const id = packet.data.sid;\\n                    this.onconnect(id);\\n                }\\n                else {\\n                    this.emitReserved(\\\"connect_error\\\", new Error(\\\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\\\"));\\n                }\\n                break;\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.EVENT:\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.BINARY_EVENT:\\n                this.onevent(packet);\\n                break;\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.ACK:\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.BINARY_ACK:\\n                this.onack(packet);\\n                break;\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.DISCONNECT:\\n                this.ondisconnect();\\n                break;\\n            case socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.CONNECT_ERROR:\\n                this.destroy();\\n                const err = new Error(packet.data.message);\\n                // @ts-ignore\\n                err.data = packet.data.data;\\n                this.emitReserved(\\\"connect_error\\\", err);\\n                break;\\n        }\\n    }\\n    /**\\n     * Called upon a server event.\\n     *\\n     * @param packet\\n     * @private\\n     */\\n    onevent(packet) {\\n        const args = packet.data || [];\\n        if (null != packet.id) {\\n            args.push(this.ack(packet.id));\\n        }\\n        if (this.connected) {\\n            this.emitEvent(args);\\n        }\\n        else {\\n            this.receiveBuffer.push(Object.freeze(args));\\n        }\\n    }\\n    emitEvent(args) {\\n        if (this._anyListeners && this._anyListeners.length) {\\n            const listeners = this._anyListeners.slice();\\n            for (const listener of listeners) {\\n                listener.apply(this, args);\\n            }\\n        }\\n        super.emit.apply(this, args);\\n    }\\n    /**\\n     * Produces an ack callback to emit with an event.\\n     *\\n     * @private\\n     */\\n    ack(id) {\\n        const self = this;\\n        let sent = false;\\n        return function (...args) {\\n            // prevent double callbacks\\n            if (sent)\\n                return;\\n            sent = true;\\n            self.packet({\\n                type: socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.ACK,\\n                id: id,\\n                data: args,\\n            });\\n        };\\n    }\\n    /**\\n     * Called upon a server acknowlegement.\\n     *\\n     * @param packet\\n     * @private\\n     */\\n    onack(packet) {\\n        const ack = this.acks[packet.id];\\n        if (\\\"function\\\" === typeof ack) {\\n            ack.apply(this, packet.data);\\n            delete this.acks[packet.id];\\n        }\\n        else {\\n        }\\n    }\\n    /**\\n     * Called upon server connect.\\n     *\\n     * @private\\n     */\\n    onconnect(id) {\\n        this.id = id;\\n        this.connected = true;\\n        this.emitBuffered();\\n        this.emitReserved(\\\"connect\\\");\\n    }\\n    /**\\n     * Emit buffered events (received and emitted).\\n     *\\n     * @private\\n     */\\n    emitBuffered() {\\n        this.receiveBuffer.forEach((args) => this.emitEvent(args));\\n        this.receiveBuffer = [];\\n        this.sendBuffer.forEach((packet) => {\\n            this.notifyOutgoingListeners(packet);\\n            this.packet(packet);\\n        });\\n        this.sendBuffer = [];\\n    }\\n    /**\\n     * Called upon server disconnect.\\n     *\\n     * @private\\n     */\\n    ondisconnect() {\\n        this.destroy();\\n        this.onclose(\\\"io server disconnect\\\");\\n    }\\n    /**\\n     * Called upon forced client/server side disconnections,\\n     * this method ensures the manager stops tracking us and\\n     * that reconnections don't get triggered for this.\\n     *\\n     * @private\\n     */\\n    destroy() {\\n        if (this.subs) {\\n            // clean subscriptions to avoid reconnections\\n            this.subs.forEach((subDestroy) => subDestroy());\\n            this.subs = undefined;\\n        }\\n        this.io[\\\"_destroy\\\"](this);\\n    }\\n    /**\\n     * Disconnects the socket manually. In that case, the socket will not try to reconnect.\\n     *\\n     * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\\n     *\\n     * @example\\n     * const socket = io();\\n     *\\n     * socket.on(\\\"disconnect\\\", (reason) => {\\n     *   // console.log(reason); prints \\\"io client disconnect\\\"\\n     * });\\n     *\\n     * socket.disconnect();\\n     *\\n     * @return self\\n     */\\n    disconnect() {\\n        if (this.connected) {\\n            this.packet({ type: socket_io_parser__WEBPACK_IMPORTED_MODULE_0__.PacketType.DISCONNECT });\\n        }\\n        // remove socket from pool\\n        this.destroy();\\n        if (this.connected) {\\n            // fire events\\n            this.onclose(\\\"io client disconnect\\\");\\n        }\\n        return this;\\n    }\\n    /**\\n     * Alias for {@link disconnect()}.\\n     *\\n     * @return self\\n     */\\n    close() {\\n        return this.disconnect();\\n    }\\n    /**\\n     * Sets the compress flag.\\n     *\\n     * @example\\n     * socket.compress(false).emit(\\\"hello\\\");\\n     *\\n     * @param compress - if `true`, compresses the sending data\\n     * @return self\\n     */\\n    compress(compress) {\\n        this.flags.compress = compress;\\n        return this;\\n    }\\n    /**\\n     * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\\n     * ready to send messages.\\n     *\\n     * @example\\n     * socket.volatile.emit(\\\"hello\\\"); // the server may or may not receive it\\n     *\\n     * @returns self\\n     */\\n    get volatile() {\\n        this.flags.volatile = true;\\n        return this;\\n    }\\n    /**\\n     * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\\n     * given number of milliseconds have elapsed without an acknowledgement from the server:\\n     *\\n     * @example\\n     * socket.timeout(5000).emit(\\\"my-event\\\", (err) => {\\n     *   if (err) {\\n     *     // the server did not acknowledge the event in the given delay\\n     *   }\\n     * });\\n     *\\n     * @returns self\\n     */\\n    timeout(timeout) {\\n        this.flags.timeout = timeout;\\n        return this;\\n    }\\n    /**\\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\\n     * callback.\\n     *\\n     * @example\\n     * socket.onAny((event, ...args) => {\\n     *   console.log(`got ${event}`);\\n     * });\\n     *\\n     * @param listener\\n     */\\n    onAny(listener) {\\n        this._anyListeners = this._anyListeners || [];\\n        this._anyListeners.push(listener);\\n        return this;\\n    }\\n    /**\\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\\n     * callback. The listener is added to the beginning of the listeners array.\\n     *\\n     * @example\\n     * socket.prependAny((event, ...args) => {\\n     *   console.log(`got event ${event}`);\\n     * });\\n     *\\n     * @param listener\\n     */\\n    prependAny(listener) {\\n        this._anyListeners = this._anyListeners || [];\\n        this._anyListeners.unshift(listener);\\n        return this;\\n    }\\n    /**\\n     * Removes the listener that will be fired when any event is emitted.\\n     *\\n     * @example\\n     * const catchAllListener = (event, ...args) => {\\n     *   console.log(`got event ${event}`);\\n     * }\\n     *\\n     * socket.onAny(catchAllListener);\\n     *\\n     * // remove a specific listener\\n     * socket.offAny(catchAllListener);\\n     *\\n     * // or remove all listeners\\n     * socket.offAny();\\n     *\\n     * @param listener\\n     */\\n    offAny(listener) {\\n        if (!this._anyListeners) {\\n            return this;\\n        }\\n        if (listener) {\\n            const listeners = this._anyListeners;\\n            for (let i = 0; i < listeners.length; i++) {\\n                if (listener === listeners[i]) {\\n                    listeners.splice(i, 1);\\n                    return this;\\n                }\\n            }\\n        }\\n        else {\\n            this._anyListeners = [];\\n        }\\n        return this;\\n    }\\n    /**\\n     * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\\n     * e.g. to remove listeners.\\n     */\\n    listenersAny() {\\n        return this._anyListeners || [];\\n    }\\n    /**\\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\\n     * callback.\\n     *\\n     * Note: acknowledgements sent to the server are not included.\\n     *\\n     * @example\\n     * socket.onAnyOutgoing((event, ...args) => {\\n     *   console.log(`sent event ${event}`);\\n     * });\\n     *\\n     * @param listener\\n     */\\n    onAnyOutgoing(listener) {\\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\\n        this._anyOutgoingListeners.push(listener);\\n        return this;\\n    }\\n    /**\\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\\n     * callback. The listener is added to the beginning of the listeners array.\\n     *\\n     * Note: acknowledgements sent to the server are not included.\\n     *\\n     * @example\\n     * socket.prependAnyOutgoing((event, ...args) => {\\n     *   console.log(`sent event ${event}`);\\n     * });\\n     *\\n     * @param listener\\n     */\\n    prependAnyOutgoing(listener) {\\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\\n        this._anyOutgoingListeners.unshift(listener);\\n        return this;\\n    }\\n    /**\\n     * Removes the listener that will be fired when any event is emitted.\\n     *\\n     * @example\\n     * const catchAllListener = (event, ...args) => {\\n     *   console.log(`sent event ${event}`);\\n     * }\\n     *\\n     * socket.onAnyOutgoing(catchAllListener);\\n     *\\n     * // remove a specific listener\\n     * socket.offAnyOutgoing(catchAllListener);\\n     *\\n     * // or remove all listeners\\n     * socket.offAnyOutgoing();\\n     *\\n     * @param [listener] - the catch-all listener (optional)\\n     */\\n    offAnyOutgoing(listener) {\\n        if (!this._anyOutgoingListeners) {\\n            return this;\\n        }\\n        if (listener) {\\n            const listeners = this._anyOutgoingListeners;\\n            for (let i = 0; i < listeners.length; i++) {\\n                if (listener === listeners[i]) {\\n                    listeners.splice(i, 1);\\n                    return this;\\n                }\\n            }\\n        }\\n        else {\\n            this._anyOutgoingListeners = [];\\n        }\\n        return this;\\n    }\\n    /**\\n     * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\\n     * e.g. to remove listeners.\\n     */\\n    listenersAnyOutgoing() {\\n        return this._anyOutgoingListeners || [];\\n    }\\n    /**\\n     * Notify the listeners for each packet sent\\n     *\\n     * @param packet\\n     *\\n     * @private\\n     */\\n    notifyOutgoingListeners(packet) {\\n        if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\\n            const listeners = this._anyOutgoingListeners.slice();\\n            for (const listener of listeners) {\\n                listener.apply(this, packet.data);\\n            }\\n        }\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/socket.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-client/build/esm/url.js\":\n/*!********************************************************!*\\\n  !*** ./node_modules/socket.io-client/build/esm/url.js ***!\n  \\********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"url\\\": () => (/* binding */ url)\\n/* harmony export */ });\\n/* harmony import */ var engine_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! engine.io-client */ \\\"./node_modules/engine.io-client/build/esm/index.js\\\");\\n\\n/**\\n * URL parser.\\n *\\n * @param uri - url\\n * @param path - the request path of the connection\\n * @param loc - An object meant to mimic window.location.\\n *        Defaults to window.location.\\n * @public\\n */\\nfunction url(uri, path = \\\"\\\", loc) {\\n    let obj = uri;\\n    // default to window.location\\n    loc = loc || (typeof location !== \\\"undefined\\\" && location);\\n    if (null == uri)\\n        uri = loc.protocol + \\\"//\\\" + loc.host;\\n    // relative path support\\n    if (typeof uri === \\\"string\\\") {\\n        if (\\\"/\\\" === uri.charAt(0)) {\\n            if (\\\"/\\\" === uri.charAt(1)) {\\n                uri = loc.protocol + uri;\\n            }\\n            else {\\n                uri = loc.host + uri;\\n            }\\n        }\\n        if (!/^(https?|wss?):\\\\/\\\\//.test(uri)) {\\n            if (\\\"undefined\\\" !== typeof loc) {\\n                uri = loc.protocol + \\\"//\\\" + uri;\\n            }\\n            else {\\n                uri = \\\"https://\\\" + uri;\\n            }\\n        }\\n        // parse\\n        obj = (0,engine_io_client__WEBPACK_IMPORTED_MODULE_0__.parse)(uri);\\n    }\\n    // make sure we treat `localhost:80` and `localhost` equally\\n    if (!obj.port) {\\n        if (/^(http|ws)$/.test(obj.protocol)) {\\n            obj.port = \\\"80\\\";\\n        }\\n        else if (/^(http|ws)s$/.test(obj.protocol)) {\\n            obj.port = \\\"443\\\";\\n        }\\n    }\\n    obj.path = obj.path || \\\"/\\\";\\n    const ipv6 = obj.host.indexOf(\\\":\\\") !== -1;\\n    const host = ipv6 ? \\\"[\\\" + obj.host + \\\"]\\\" : obj.host;\\n    // define unique id\\n    obj.id = obj.protocol + \\\"://\\\" + host + \\\":\\\" + obj.port + path;\\n    // define href\\n    obj.href =\\n        obj.protocol +\\n            \\\"://\\\" +\\n            host +\\n            (loc && loc.port === obj.port ? \\\"\\\" : \\\":\\\" + obj.port);\\n    return obj;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-client/build/esm/url.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-parser/build/esm/binary.js\":\n/*!***********************************************************!*\\\n  !*** ./node_modules/socket.io-parser/build/esm/binary.js ***!\n  \\***********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"deconstructPacket\\\": () => (/* binding */ deconstructPacket),\\n/* harmony export */   \\\"reconstructPacket\\\": () => (/* binding */ reconstructPacket)\\n/* harmony export */ });\\n/* harmony import */ var _is_binary_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-binary.js */ \\\"./node_modules/socket.io-parser/build/esm/is-binary.js\\\");\\n\\n/**\\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\\n *\\n * @param {Object} packet - socket.io event packet\\n * @return {Object} with deconstructed packet and list of buffers\\n * @public\\n */\\nfunction deconstructPacket(packet) {\\n    const buffers = [];\\n    const packetData = packet.data;\\n    const pack = packet;\\n    pack.data = _deconstructPacket(packetData, buffers);\\n    pack.attachments = buffers.length; // number of binary 'attachments'\\n    return { packet: pack, buffers: buffers };\\n}\\nfunction _deconstructPacket(data, buffers) {\\n    if (!data)\\n        return data;\\n    if ((0,_is_binary_js__WEBPACK_IMPORTED_MODULE_0__.isBinary)(data)) {\\n        const placeholder = { _placeholder: true, num: buffers.length };\\n        buffers.push(data);\\n        return placeholder;\\n    }\\n    else if (Array.isArray(data)) {\\n        const newData = new Array(data.length);\\n        for (let i = 0; i < data.length; i++) {\\n            newData[i] = _deconstructPacket(data[i], buffers);\\n        }\\n        return newData;\\n    }\\n    else if (typeof data === \\\"object\\\" && !(data instanceof Date)) {\\n        const newData = {};\\n        for (const key in data) {\\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\\n                newData[key] = _deconstructPacket(data[key], buffers);\\n            }\\n        }\\n        return newData;\\n    }\\n    return data;\\n}\\n/**\\n * Reconstructs a binary packet from its placeholder packet and buffers\\n *\\n * @param {Object} packet - event packet with placeholders\\n * @param {Array} buffers - binary buffers to put in placeholder positions\\n * @return {Object} reconstructed packet\\n * @public\\n */\\nfunction reconstructPacket(packet, buffers) {\\n    packet.data = _reconstructPacket(packet.data, buffers);\\n    delete packet.attachments; // no longer useful\\n    return packet;\\n}\\nfunction _reconstructPacket(data, buffers) {\\n    if (!data)\\n        return data;\\n    if (data && data._placeholder === true) {\\n        const isIndexValid = typeof data.num === \\\"number\\\" &&\\n            data.num >= 0 &&\\n            data.num < buffers.length;\\n        if (isIndexValid) {\\n            return buffers[data.num]; // appropriate buffer (should be natural order anyway)\\n        }\\n        else {\\n            throw new Error(\\\"illegal attachments\\\");\\n        }\\n    }\\n    else if (Array.isArray(data)) {\\n        for (let i = 0; i < data.length; i++) {\\n            data[i] = _reconstructPacket(data[i], buffers);\\n        }\\n    }\\n    else if (typeof data === \\\"object\\\") {\\n        for (const key in data) {\\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\\n                data[key] = _reconstructPacket(data[key], buffers);\\n            }\\n        }\\n    }\\n    return data;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-parser/build/esm/binary.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-parser/build/esm/index.js\":\n/*!**********************************************************!*\\\n  !*** ./node_modules/socket.io-parser/build/esm/index.js ***!\n  \\**********************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"Decoder\\\": () => (/* binding */ Decoder),\\n/* harmony export */   \\\"Encoder\\\": () => (/* binding */ Encoder),\\n/* harmony export */   \\\"PacketType\\\": () => (/* binding */ PacketType),\\n/* harmony export */   \\\"protocol\\\": () => (/* binding */ protocol)\\n/* harmony export */ });\\n/* harmony import */ var _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @socket.io/component-emitter */ \\\"./node_modules/@socket.io/component-emitter/index.mjs\\\");\\n/* harmony import */ var _binary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./binary.js */ \\\"./node_modules/socket.io-parser/build/esm/binary.js\\\");\\n/* harmony import */ var _is_binary_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-binary.js */ \\\"./node_modules/socket.io-parser/build/esm/is-binary.js\\\");\\n\\n\\n\\n/**\\n * Protocol version.\\n *\\n * @public\\n */\\nconst protocol = 5;\\nvar PacketType;\\n(function (PacketType) {\\n    PacketType[PacketType[\\\"CONNECT\\\"] = 0] = \\\"CONNECT\\\";\\n    PacketType[PacketType[\\\"DISCONNECT\\\"] = 1] = \\\"DISCONNECT\\\";\\n    PacketType[PacketType[\\\"EVENT\\\"] = 2] = \\\"EVENT\\\";\\n    PacketType[PacketType[\\\"ACK\\\"] = 3] = \\\"ACK\\\";\\n    PacketType[PacketType[\\\"CONNECT_ERROR\\\"] = 4] = \\\"CONNECT_ERROR\\\";\\n    PacketType[PacketType[\\\"BINARY_EVENT\\\"] = 5] = \\\"BINARY_EVENT\\\";\\n    PacketType[PacketType[\\\"BINARY_ACK\\\"] = 6] = \\\"BINARY_ACK\\\";\\n})(PacketType || (PacketType = {}));\\n/**\\n * A socket.io Encoder instance\\n */\\nclass Encoder {\\n    /**\\n     * Encoder constructor\\n     *\\n     * @param {function} replacer - custom replacer to pass down to JSON.parse\\n     */\\n    constructor(replacer) {\\n        this.replacer = replacer;\\n    }\\n    /**\\n     * Encode a packet as a single string if non-binary, or as a\\n     * buffer sequence, depending on packet type.\\n     *\\n     * @param {Object} obj - packet object\\n     */\\n    encode(obj) {\\n        if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\\n            if ((0,_is_binary_js__WEBPACK_IMPORTED_MODULE_2__.hasBinary)(obj)) {\\n                return this.encodeAsBinary({\\n                    type: obj.type === PacketType.EVENT\\n                        ? PacketType.BINARY_EVENT\\n                        : PacketType.BINARY_ACK,\\n                    nsp: obj.nsp,\\n                    data: obj.data,\\n                    id: obj.id,\\n                });\\n            }\\n        }\\n        return [this.encodeAsString(obj)];\\n    }\\n    /**\\n     * Encode packet as string.\\n     */\\n    encodeAsString(obj) {\\n        // first is type\\n        let str = \\\"\\\" + obj.type;\\n        // attachments if we have them\\n        if (obj.type === PacketType.BINARY_EVENT ||\\n            obj.type === PacketType.BINARY_ACK) {\\n            str += obj.attachments + \\\"-\\\";\\n        }\\n        // if we have a namespace other than `/`\\n        // we append it followed by a comma `,`\\n        if (obj.nsp && \\\"/\\\" !== obj.nsp) {\\n            str += obj.nsp + \\\",\\\";\\n        }\\n        // immediately followed by the id\\n        if (null != obj.id) {\\n            str += obj.id;\\n        }\\n        // json data\\n        if (null != obj.data) {\\n            str += JSON.stringify(obj.data, this.replacer);\\n        }\\n        return str;\\n    }\\n    /**\\n     * Encode packet as 'buffer sequence' by removing blobs, and\\n     * deconstructing packet into object with placeholders and\\n     * a list of buffers.\\n     */\\n    encodeAsBinary(obj) {\\n        const deconstruction = (0,_binary_js__WEBPACK_IMPORTED_MODULE_1__.deconstructPacket)(obj);\\n        const pack = this.encodeAsString(deconstruction.packet);\\n        const buffers = deconstruction.buffers;\\n        buffers.unshift(pack); // add packet info to beginning of data list\\n        return buffers; // write all the buffers\\n    }\\n}\\n/**\\n * A socket.io Decoder instance\\n *\\n * @return {Object} decoder\\n */\\nclass Decoder extends _socket_io_component_emitter__WEBPACK_IMPORTED_MODULE_0__.Emitter {\\n    /**\\n     * Decoder constructor\\n     *\\n     * @param {function} reviver - custom reviver to pass down to JSON.stringify\\n     */\\n    constructor(reviver) {\\n        super();\\n        this.reviver = reviver;\\n    }\\n    /**\\n     * Decodes an encoded packet string into packet JSON.\\n     *\\n     * @param {String} obj - encoded packet\\n     */\\n    add(obj) {\\n        let packet;\\n        if (typeof obj === \\\"string\\\") {\\n            if (this.reconstructor) {\\n                throw new Error(\\\"got plaintext data when reconstructing a packet\\\");\\n            }\\n            packet = this.decodeString(obj);\\n            const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\\n            if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\\n                packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\\n                // binary packet's json\\n                this.reconstructor = new BinaryReconstructor(packet);\\n                // no attachments, labeled binary but no binary data to follow\\n                if (packet.attachments === 0) {\\n                    super.emitReserved(\\\"decoded\\\", packet);\\n                }\\n            }\\n            else {\\n                // non-binary full packet\\n                super.emitReserved(\\\"decoded\\\", packet);\\n            }\\n        }\\n        else if ((0,_is_binary_js__WEBPACK_IMPORTED_MODULE_2__.isBinary)(obj) || obj.base64) {\\n            // raw binary data\\n            if (!this.reconstructor) {\\n                throw new Error(\\\"got binary data when not reconstructing a packet\\\");\\n            }\\n            else {\\n                packet = this.reconstructor.takeBinaryData(obj);\\n                if (packet) {\\n                    // received final buffer\\n                    this.reconstructor = null;\\n                    super.emitReserved(\\\"decoded\\\", packet);\\n                }\\n            }\\n        }\\n        else {\\n            throw new Error(\\\"Unknown type: \\\" + obj);\\n        }\\n    }\\n    /**\\n     * Decode a packet String (JSON data)\\n     *\\n     * @param {String} str\\n     * @return {Object} packet\\n     */\\n    decodeString(str) {\\n        let i = 0;\\n        // look up type\\n        const p = {\\n            type: Number(str.charAt(0)),\\n        };\\n        if (PacketType[p.type] === undefined) {\\n            throw new Error(\\\"unknown packet type \\\" + p.type);\\n        }\\n        // look up attachments if type binary\\n        if (p.type === PacketType.BINARY_EVENT ||\\n            p.type === PacketType.BINARY_ACK) {\\n            const start = i + 1;\\n            while (str.charAt(++i) !== \\\"-\\\" && i != str.length) { }\\n            const buf = str.substring(start, i);\\n            if (buf != Number(buf) || str.charAt(i) !== \\\"-\\\") {\\n                throw new Error(\\\"Illegal attachments\\\");\\n            }\\n            p.attachments = Number(buf);\\n        }\\n        // look up namespace (if any)\\n        if (\\\"/\\\" === str.charAt(i + 1)) {\\n            const start = i + 1;\\n            while (++i) {\\n                const c = str.charAt(i);\\n                if (\\\",\\\" === c)\\n                    break;\\n                if (i === str.length)\\n                    break;\\n            }\\n            p.nsp = str.substring(start, i);\\n        }\\n        else {\\n            p.nsp = \\\"/\\\";\\n        }\\n        // look up id\\n        const next = str.charAt(i + 1);\\n        if (\\\"\\\" !== next && Number(next) == next) {\\n            const start = i + 1;\\n            while (++i) {\\n                const c = str.charAt(i);\\n                if (null == c || Number(c) != c) {\\n                    --i;\\n                    break;\\n                }\\n                if (i === str.length)\\n                    break;\\n            }\\n            p.id = Number(str.substring(start, i + 1));\\n        }\\n        // look up json data\\n        if (str.charAt(++i)) {\\n            const payload = this.tryParse(str.substr(i));\\n            if (Decoder.isPayloadValid(p.type, payload)) {\\n                p.data = payload;\\n            }\\n            else {\\n                throw new Error(\\\"invalid payload\\\");\\n            }\\n        }\\n        return p;\\n    }\\n    tryParse(str) {\\n        try {\\n            return JSON.parse(str, this.reviver);\\n        }\\n        catch (e) {\\n            return false;\\n        }\\n    }\\n    static isPayloadValid(type, payload) {\\n        switch (type) {\\n            case PacketType.CONNECT:\\n                return typeof payload === \\\"object\\\";\\n            case PacketType.DISCONNECT:\\n                return payload === undefined;\\n            case PacketType.CONNECT_ERROR:\\n                return typeof payload === \\\"string\\\" || typeof payload === \\\"object\\\";\\n            case PacketType.EVENT:\\n            case PacketType.BINARY_EVENT:\\n                return Array.isArray(payload) && payload.length > 0;\\n            case PacketType.ACK:\\n            case PacketType.BINARY_ACK:\\n                return Array.isArray(payload);\\n        }\\n    }\\n    /**\\n     * Deallocates a parser's resources\\n     */\\n    destroy() {\\n        if (this.reconstructor) {\\n            this.reconstructor.finishedReconstruction();\\n            this.reconstructor = null;\\n        }\\n    }\\n}\\n/**\\n * A manager of a binary event's 'buffer sequence'. Should\\n * be constructed whenever a packet of type BINARY_EVENT is\\n * decoded.\\n *\\n * @param {Object} packet\\n * @return {BinaryReconstructor} initialized reconstructor\\n */\\nclass BinaryReconstructor {\\n    constructor(packet) {\\n        this.packet = packet;\\n        this.buffers = [];\\n        this.reconPack = packet;\\n    }\\n    /**\\n     * Method to be called when binary data received from connection\\n     * after a BINARY_EVENT packet.\\n     *\\n     * @param {Buffer | ArrayBuffer} binData - the raw binary data received\\n     * @return {null | Object} returns null if more binary data is expected or\\n     *   a reconstructed packet object if all buffers have been received.\\n     */\\n    takeBinaryData(binData) {\\n        this.buffers.push(binData);\\n        if (this.buffers.length === this.reconPack.attachments) {\\n            // done with buffer list\\n            const packet = (0,_binary_js__WEBPACK_IMPORTED_MODULE_1__.reconstructPacket)(this.reconPack, this.buffers);\\n            this.finishedReconstruction();\\n            return packet;\\n        }\\n        return null;\\n    }\\n    /**\\n     * Cleans up binary packet reconstruction variables.\\n     */\\n    finishedReconstruction() {\\n        this.reconPack = null;\\n        this.buffers = [];\\n    }\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-parser/build/esm/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/socket.io-parser/build/esm/is-binary.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/socket.io-parser/build/esm/is-binary.js ***!\n  \\**************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   \\\"hasBinary\\\": () => (/* binding */ hasBinary),\\n/* harmony export */   \\\"isBinary\\\": () => (/* binding */ isBinary)\\n/* harmony export */ });\\nconst withNativeArrayBuffer = typeof ArrayBuffer === \\\"function\\\";\\nconst isView = (obj) => {\\n    return typeof ArrayBuffer.isView === \\\"function\\\"\\n        ? ArrayBuffer.isView(obj)\\n        : obj.buffer instanceof ArrayBuffer;\\n};\\nconst toString = Object.prototype.toString;\\nconst withNativeBlob = typeof Blob === \\\"function\\\" ||\\n    (typeof Blob !== \\\"undefined\\\" &&\\n        toString.call(Blob) === \\\"[object BlobConstructor]\\\");\\nconst withNativeFile = typeof File === \\\"function\\\" ||\\n    (typeof File !== \\\"undefined\\\" &&\\n        toString.call(File) === \\\"[object FileConstructor]\\\");\\n/**\\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\\n *\\n * @private\\n */\\nfunction isBinary(obj) {\\n    return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\\n        (withNativeBlob && obj instanceof Blob) ||\\n        (withNativeFile && obj instanceof File));\\n}\\nfunction hasBinary(obj, toJSON) {\\n    if (!obj || typeof obj !== \\\"object\\\") {\\n        return false;\\n    }\\n    if (Array.isArray(obj)) {\\n        for (let i = 0, l = obj.length; i < l; i++) {\\n            if (hasBinary(obj[i])) {\\n                return true;\\n            }\\n        }\\n        return false;\\n    }\\n    if (isBinary(obj)) {\\n        return true;\\n    }\\n    if (obj.toJSON &&\\n        typeof obj.toJSON === \\\"function\\\" &&\\n        arguments.length === 1) {\\n        return hasBinary(obj.toJSON(), true);\\n    }\\n    for (const key in obj) {\\n        if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\\n            return true;\\n        }\\n    }\\n    return false;\\n}\\n\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/socket.io-parser/build/esm/is-binary.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/client-chime-sdk-messaging/package.json\":\n/*!***********************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/client-chime-sdk-messaging/package.json ***!\n  \\***********************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"module.exports = JSON.parse('{\\\"name\\\":\\\"@aws-sdk/client-chime-sdk-messaging\\\",\\\"description\\\":\\\"AWS SDK for JavaScript Chime Sdk Messaging Client for Node.js, Browser and React Native\\\",\\\"version\\\":\\\"3.259.0\\\",\\\"scripts\\\":{\\\"build\\\":\\\"concurrently \\\\'yarn:build:cjs\\\\' \\\\'yarn:build:es\\\\' \\\\'yarn:build:types\\\\'\\\",\\\"build:cjs\\\":\\\"tsc -p tsconfig.cjs.json\\\",\\\"build:docs\\\":\\\"typedoc\\\",\\\"build:es\\\":\\\"tsc -p tsconfig.es.json\\\",\\\"build:include:deps\\\":\\\"lerna run --scope $npm_package_name --include-dependencies build\\\",\\\"build:types\\\":\\\"tsc -p tsconfig.types.json\\\",\\\"build:types:downlevel\\\":\\\"downlevel-dts dist-types dist-types/ts3.4\\\",\\\"clean\\\":\\\"rimraf ./dist-* && rimraf *.tsbuildinfo\\\",\\\"generate:client\\\":\\\"node ../../scripts/generate-clients/single-service --solo chime-sdk-messaging\\\"},\\\"main\\\":\\\"./dist-cjs/index.js\\\",\\\"types\\\":\\\"./dist-types/index.d.ts\\\",\\\"module\\\":\\\"./dist-es/index.js\\\",\\\"sideEffects\\\":false,\\\"dependencies\\\":{\\\"@aws-crypto/sha256-browser\\\":\\\"3.0.0\\\",\\\"@aws-crypto/sha256-js\\\":\\\"3.0.0\\\",\\\"@aws-sdk/client-sts\\\":\\\"3.259.0\\\",\\\"@aws-sdk/config-resolver\\\":\\\"3.259.0\\\",\\\"@aws-sdk/credential-provider-node\\\":\\\"3.259.0\\\",\\\"@aws-sdk/fetch-http-handler\\\":\\\"3.257.0\\\",\\\"@aws-sdk/hash-node\\\":\\\"3.257.0\\\",\\\"@aws-sdk/invalid-dependency\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-content-length\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-endpoint\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-host-header\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-logger\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-recursion-detection\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-retry\\\":\\\"3.259.0\\\",\\\"@aws-sdk/middleware-serde\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-signing\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-stack\\\":\\\"3.257.0\\\",\\\"@aws-sdk/middleware-user-agent\\\":\\\"3.257.0\\\",\\\"@aws-sdk/node-config-provider\\\":\\\"3.259.0\\\",\\\"@aws-sdk/node-http-handler\\\":\\\"3.257.0\\\",\\\"@aws-sdk/protocol-http\\\":\\\"3.257.0\\\",\\\"@aws-sdk/smithy-client\\\":\\\"3.257.0\\\",\\\"@aws-sdk/types\\\":\\\"3.257.0\\\",\\\"@aws-sdk/url-parser\\\":\\\"3.257.0\\\",\\\"@aws-sdk/util-base64\\\":\\\"3.208.0\\\",\\\"@aws-sdk/util-body-length-browser\\\":\\\"3.188.0\\\",\\\"@aws-sdk/util-body-length-node\\\":\\\"3.208.0\\\",\\\"@aws-sdk/util-defaults-mode-browser\\\":\\\"3.257.0\\\",\\\"@aws-sdk/util-defaults-mode-node\\\":\\\"3.259.0\\\",\\\"@aws-sdk/util-endpoints\\\":\\\"3.257.0\\\",\\\"@aws-sdk/util-retry\\\":\\\"3.257.0\\\",\\\"@aws-sdk/util-user-agent-browser\\\":\\\"3.257.0\\\",\\\"@aws-sdk/util-user-agent-node\\\":\\\"3.259.0\\\",\\\"@aws-sdk/util-utf8\\\":\\\"3.254.0\\\",\\\"tslib\\\":\\\"^2.3.1\\\",\\\"uuid\\\":\\\"^8.3.2\\\"},\\\"devDependencies\\\":{\\\"@aws-sdk/service-client-documentation-generator\\\":\\\"3.208.0\\\",\\\"@tsconfig/node14\\\":\\\"1.0.3\\\",\\\"@types/node\\\":\\\"^14.14.31\\\",\\\"@types/uuid\\\":\\\"^8.3.0\\\",\\\"concurrently\\\":\\\"7.0.0\\\",\\\"downlevel-dts\\\":\\\"0.10.1\\\",\\\"rimraf\\\":\\\"3.0.2\\\",\\\"typedoc\\\":\\\"0.19.2\\\",\\\"typescript\\\":\\\"~4.6.2\\\"},\\\"overrides\\\":{\\\"typedoc\\\":{\\\"typescript\\\":\\\"~4.6.2\\\"}},\\\"engines\\\":{\\\"node\\\":\\\">=14.0.0\\\"},\\\"typesVersions\\\":{\\\"<4.0\\\":{\\\"dist-types/*\\\":[\\\"dist-types/ts3.4/*\\\"]}},\\\"files\\\":[\\\"dist-*\\\"],\\\"author\\\":{\\\"name\\\":\\\"AWS SDK for JavaScript Team\\\",\\\"url\\\":\\\"https://aws.amazon.com/javascript/\\\"},\\\"license\\\":\\\"Apache-2.0\\\",\\\"browser\\\":{\\\"./dist-es/runtimeConfig\\\":\\\"./dist-es/runtimeConfig.browser\\\"},\\\"react-native\\\":{\\\"./dist-es/runtimeConfig\\\":\\\"./dist-es/runtimeConfig.native\\\"},\\\"homepage\\\":\\\"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-chime-sdk-messaging\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"https://github.com/aws/aws-sdk-js-v3.git\\\",\\\"directory\\\":\\\"clients/client-chime-sdk-messaging\\\"}}');\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/client-chime-sdk-messaging/package.json?\");\n\n/***/ }),\n\n/***/ \"./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json\":\n/*!******************************************************************************!*\\\n  !*** ./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json ***!\n  \\******************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\neval(\"module.exports = JSON.parse('{\\\"partitions\\\":[{\\\"id\\\":\\\"aws\\\",\\\"outputs\\\":{\\\"dnsSuffix\\\":\\\"amazonaws.com\\\",\\\"dualStackDnsSuffix\\\":\\\"api.aws\\\",\\\"name\\\":\\\"aws\\\",\\\"supportsDualStack\\\":true,\\\"supportsFIPS\\\":true},\\\"regionRegex\\\":\\\"^(us|eu|ap|sa|ca|me|af)\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\d+$\\\",\\\"regions\\\":{\\\"af-south-1\\\":{\\\"description\\\":\\\"Africa (Cape Town)\\\"},\\\"ap-east-1\\\":{\\\"description\\\":\\\"Asia Pacific (Hong Kong)\\\"},\\\"ap-northeast-1\\\":{\\\"description\\\":\\\"Asia Pacific (Tokyo)\\\"},\\\"ap-northeast-2\\\":{\\\"description\\\":\\\"Asia Pacific (Seoul)\\\"},\\\"ap-northeast-3\\\":{\\\"description\\\":\\\"Asia Pacific (Osaka)\\\"},\\\"ap-south-1\\\":{\\\"description\\\":\\\"Asia Pacific (Mumbai)\\\"},\\\"ap-south-2\\\":{\\\"description\\\":\\\"Asia Pacific (Hyderabad)\\\"},\\\"ap-southeast-1\\\":{\\\"description\\\":\\\"Asia Pacific (Singapore)\\\"},\\\"ap-southeast-2\\\":{\\\"description\\\":\\\"Asia Pacific (Sydney)\\\"},\\\"ap-southeast-3\\\":{\\\"description\\\":\\\"Asia Pacific (Jakarta)\\\"},\\\"ap-southeast-4\\\":{\\\"description\\\":\\\"Asia Pacific (Melbourne)\\\"},\\\"aws-global\\\":{\\\"description\\\":\\\"AWS Standard global region\\\"},\\\"ca-central-1\\\":{\\\"description\\\":\\\"Canada (Central)\\\"},\\\"eu-central-1\\\":{\\\"description\\\":\\\"Europe (Frankfurt)\\\"},\\\"eu-central-2\\\":{\\\"description\\\":\\\"Europe (Zurich)\\\"},\\\"eu-north-1\\\":{\\\"description\\\":\\\"Europe (Stockholm)\\\"},\\\"eu-south-1\\\":{\\\"description\\\":\\\"Europe (Milan)\\\"},\\\"eu-south-2\\\":{\\\"description\\\":\\\"Europe (Spain)\\\"},\\\"eu-west-1\\\":{\\\"description\\\":\\\"Europe (Ireland)\\\"},\\\"eu-west-2\\\":{\\\"description\\\":\\\"Europe (London)\\\"},\\\"eu-west-3\\\":{\\\"description\\\":\\\"Europe (Paris)\\\"},\\\"me-central-1\\\":{\\\"description\\\":\\\"Middle East (UAE)\\\"},\\\"me-south-1\\\":{\\\"description\\\":\\\"Middle East (Bahrain)\\\"},\\\"sa-east-1\\\":{\\\"description\\\":\\\"South America (Sao Paulo)\\\"},\\\"us-east-1\\\":{\\\"description\\\":\\\"US East (N. Virginia)\\\"},\\\"us-east-2\\\":{\\\"description\\\":\\\"US East (Ohio)\\\"},\\\"us-west-1\\\":{\\\"description\\\":\\\"US West (N. California)\\\"},\\\"us-west-2\\\":{\\\"description\\\":\\\"US West (Oregon)\\\"}}},{\\\"id\\\":\\\"aws-cn\\\",\\\"outputs\\\":{\\\"dnsSuffix\\\":\\\"amazonaws.com.cn\\\",\\\"dualStackDnsSuffix\\\":\\\"api.amazonwebservices.com.cn\\\",\\\"name\\\":\\\"aws-cn\\\",\\\"supportsDualStack\\\":true,\\\"supportsFIPS\\\":true},\\\"regionRegex\\\":\\\"^cn\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\d+$\\\",\\\"regions\\\":{\\\"aws-cn-global\\\":{\\\"description\\\":\\\"AWS China global region\\\"},\\\"cn-north-1\\\":{\\\"description\\\":\\\"China (Beijing)\\\"},\\\"cn-northwest-1\\\":{\\\"description\\\":\\\"China (Ningxia)\\\"}}},{\\\"id\\\":\\\"aws-us-gov\\\",\\\"outputs\\\":{\\\"dnsSuffix\\\":\\\"amazonaws.com\\\",\\\"dualStackDnsSuffix\\\":\\\"api.aws\\\",\\\"name\\\":\\\"aws-us-gov\\\",\\\"supportsDualStack\\\":true,\\\"supportsFIPS\\\":true},\\\"regionRegex\\\":\\\"^us\\\\\\\\\\\\\\\\-gov\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\d+$\\\",\\\"regions\\\":{\\\"aws-us-gov-global\\\":{\\\"description\\\":\\\"AWS GovCloud (US) global region\\\"},\\\"us-gov-east-1\\\":{\\\"description\\\":\\\"AWS GovCloud (US-East)\\\"},\\\"us-gov-west-1\\\":{\\\"description\\\":\\\"AWS GovCloud (US-West)\\\"}}},{\\\"id\\\":\\\"aws-iso\\\",\\\"outputs\\\":{\\\"dnsSuffix\\\":\\\"c2s.ic.gov\\\",\\\"dualStackDnsSuffix\\\":\\\"c2s.ic.gov\\\",\\\"name\\\":\\\"aws-iso\\\",\\\"supportsDualStack\\\":false,\\\"supportsFIPS\\\":true},\\\"regionRegex\\\":\\\"^us\\\\\\\\\\\\\\\\-iso\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\d+$\\\",\\\"regions\\\":{\\\"aws-iso-global\\\":{\\\"description\\\":\\\"AWS ISO (US) global region\\\"},\\\"us-iso-east-1\\\":{\\\"description\\\":\\\"US ISO East\\\"},\\\"us-iso-west-1\\\":{\\\"description\\\":\\\"US ISO WEST\\\"}}},{\\\"id\\\":\\\"aws-iso-b\\\",\\\"outputs\\\":{\\\"dnsSuffix\\\":\\\"sc2s.sgov.gov\\\",\\\"dualStackDnsSuffix\\\":\\\"sc2s.sgov.gov\\\",\\\"name\\\":\\\"aws-iso-b\\\",\\\"supportsDualStack\\\":false,\\\"supportsFIPS\\\":true},\\\"regionRegex\\\":\\\"^us\\\\\\\\\\\\\\\\-isob\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\\-\\\\\\\\\\\\\\\\d+$\\\",\\\"regions\\\":{\\\"aws-iso-b-global\\\":{\\\"description\\\":\\\"AWS ISOB (US) global region\\\"},\\\"us-isob-east-1\\\":{\\\"description\\\":\\\"US ISOB East (Ohio)\\\"}}}],\\\"version\\\":\\\"1.1\\\"}');\\n\\n//# sourceURL=webpack://@dannadori/voice-changer-client-js/./node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json?\");\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_4368832__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_4368832__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/amd options */\n/******/ \t(() => {\n/******/ \t\t__nested_webpack_require_4368832__.amdO = {};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__nested_webpack_require_4368832__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__nested_webpack_require_4368832__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__nested_webpack_require_4368832__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__nested_webpack_require_4368832__.o(definition, key) && !__nested_webpack_require_4368832__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__nested_webpack_require_4368832__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__nested_webpack_require_4368832__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__nested_webpack_require_4368832__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module can't be inlined because the eval devtool is used.\n/******/ \tvar __webpack_exports__ = __nested_webpack_require_4368832__(\"./src/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n\n//# sourceURL=webpack://demo/./node_modules/@dannadori/voice-changer-client-js/dist/index.js?");

/***/ }),

/***/ "./src/000_index.tsx":
/*!***************************!*\
  !*** ./src/000_index.tsx ***!
  \***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _css_App_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./css/App.css */ \"./src/css/App.css\");\n/* harmony import */ var _100_options_microphone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./100_options_microphone */ \"./src/100_options_microphone.tsx\");\n\n\n\n\n\n\n\nvar container = document.getElementById(\"app\");\nvar root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_3__.createRoot)(container);\nvar App = function App() {\n  var _useMicrophoneOptions = (0,_100_options_microphone__WEBPACK_IMPORTED_MODULE_5__.useMicrophoneOptions)(),\n    voiceChangerSetting = _useMicrophoneOptions.voiceChangerSetting,\n    clearSetting = _useMicrophoneOptions.clearSetting;\n  var onClearSettingClicked = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n        while (1) switch (_context.prev = _context.next) {\n          case 0:\n            clearSetting();\n            location.reload();\n          case 2:\n          case \"end\":\n            return _context.stop();\n        }\n      }, _callee);\n    }));\n    return function onClearSettingClicked() {\n      return _ref.apply(this, arguments);\n    };\n  }();\n  var clearRow = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onClearSettingClicked\n    }, \"clear setting\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n      className: \"body-item-text\"\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n      className: \"body-item-text\"\n    })));\n  }, []);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"main-body\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"body-row split-6-4\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"body-top-title\"\n  }, \"Voice Changer Setting\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", {\n    className: \"body-top-title-version\"\n  }, \"for v.1.5.x\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"body-top-title-belongings\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"belonging-item\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"a\", {\n    className: \"link\",\n    href: \"https://github.com/w-okada/voice-changer\",\n    target: \"_blank\",\n    rel: \"noopener noreferrer\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"img\", {\n    src: \"./assets/icons/github.svg\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", null, \"github\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n    className: \"belonging-item\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"a\", {\n    className: \"link\",\n    href: \"https://zenn.dev/wok/articles/s01_vc001_top\",\n    target: \"_blank\",\n    rel: \"noopener noreferrer\"\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"img\", {\n    src: \"./assets/icons/help-circle.svg\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"span\", null, \"manual\"))))), clearRow, voiceChangerSetting, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"audio\", {\n    id: \"audio-output\"\n  })));\n};\nroot.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(App, null));\n\n//# sourceURL=webpack://demo/./src/000_index.tsx?");

/***/ }),

/***/ "./src/100_options_microphone.tsx":
/*!****************************************!*\
  !*** ./src/100_options_microphone.tsx ***!
  \****************************************/
/***/ ((__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 */   \"useMicrophoneOptions\": () => (/* binding */ useMicrophoneOptions)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./const */ \"./src/const.ts\");\n/* harmony import */ var _101_server_setting__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./101_server_setting */ \"./src/101_server_setting.tsx\");\n/* harmony import */ var _102_device_setting__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./102_device_setting */ \"./src/102_device_setting.tsx\");\n/* harmony import */ var _104_convert_setting__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./104_convert_setting */ \"./src/104_convert_setting.tsx\");\n/* harmony import */ var _105_advanced_setting__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./105_advanced_setting */ \"./src/105_advanced_setting.tsx\");\n/* harmony import */ var _103_speaker_setting__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./103_speaker_setting */ \"./src/103_speaker_setting.tsx\");\n/* harmony import */ var _106_server_control__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./106_server_control */ \"./src/106_server_control.tsx\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__);\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar useMicrophoneOptions = function useMicrophoneOptions() {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(null),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n    audioContext = _useState2[0],\n    setAudioContext = _useState2[1];\n  var clientState = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.useClient)({\n    audioContext: audioContext,\n    audioOutputElementId: _const__WEBPACK_IMPORTED_MODULE_4__.AUDIO_ELEMENT_FOR_PLAY_RESULT\n  });\n  var serverSetting = (0,_101_server_setting__WEBPACK_IMPORTED_MODULE_5__.useServerSettingArea)({\n    clientState: clientState\n  });\n  var deviceSetting = (0,_102_device_setting__WEBPACK_IMPORTED_MODULE_6__.useDeviceSetting)(audioContext, {\n    clientState: clientState\n  });\n  var speakerSetting = (0,_103_speaker_setting__WEBPACK_IMPORTED_MODULE_9__.useSpeakerSetting)({\n    clientState: clientState\n  });\n  var convertSetting = (0,_104_convert_setting__WEBPACK_IMPORTED_MODULE_7__.useConvertSetting)({\n    clientState: clientState\n  });\n  var advancedSetting = (0,_105_advanced_setting__WEBPACK_IMPORTED_MODULE_8__.useAdvancedSetting)({\n    clientState: clientState\n  });\n  var serverControl = (0,_106_server_control__WEBPACK_IMPORTED_MODULE_10__.useServerControl)({\n    clientState: clientState\n  });\n  var clearSetting = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n        while (1) switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return clientState.clearSetting();\n          case 2:\n          case \"end\":\n            return _context.stop();\n        }\n      }, _callee);\n    }));\n    return function clearSetting() {\n      return _ref.apply(this, arguments);\n    };\n  }();\n  (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n    var createAudioContext = function createAudioContext() {\n      var ctx = new AudioContext();\n      setAudioContext(ctx);\n      document.removeEventListener('touchstart', createAudioContext);\n      document.removeEventListener('mousedown', createAudioContext);\n    };\n    document.addEventListener('touchstart', createAudioContext);\n    document.addEventListener('mousedown', createAudioContext);\n  }, []);\n  var voiceChangerSetting = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n      className: \"body-row left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n      className: \"body-section-title\"\n    }, \"Virtual Microphone\")), serverControl.serverControl, serverSetting.serverSetting, deviceSetting.deviceSetting, speakerSetting.speakerSetting, convertSetting.convertSetting, advancedSetting.advancedSetting);\n  }, [serverControl.serverControl, serverSetting.serverSetting, deviceSetting.deviceSetting, speakerSetting.speakerSetting, convertSetting.convertSetting, advancedSetting.advancedSetting]);\n  return {\n    voiceChangerSetting: voiceChangerSetting,\n    clearSetting: clearSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/100_options_microphone.tsx?");

/***/ }),

/***/ "./src/101_server_setting.tsx":
/*!************************************!*\
  !*** ./src/101_server_setting.tsx ***!
  \************************************/
/***/ ((__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 */   \"useServerSettingArea\": () => (/* binding */ useServerSettingArea)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(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; }\n\n\n\nvar useServerSettingArea = function useServerSettingArea(props) {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState, 2),\n    showPyTorch = _useState2[0],\n    setShowPyTorch = _useState2[1];\n  var uploadeModelRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    var _props$clientState$se, _props$clientState$se2, _props$clientState$se3, _props$clientState$se4, _props$clientState$se5, _props$clientState$se6, _props$clientState$se7, _props$clientState$se8, _props$clientState$se9;\n    var onPyTorchFileLoadClicked = /*#__PURE__*/function () {\n      var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() {\n        var file;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.fileSelector)(\"\");\n            case 2:\n              file = _context.sent;\n              if (!(file.name.endsWith(\".pth\") == false)) {\n                _context.next = 6;\n                break;\n              }\n              alert(\"モデルファイルの拡張子はpthである必要があります。\");\n              return _context.abrupt(\"return\");\n            case 6:\n              props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n                pyTorchModel: {\n                  file: file\n                }\n              }));\n            case 7:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function onPyTorchFileLoadClicked() {\n        return _ref.apply(this, arguments);\n      };\n    }();\n    var onPyTorchFileClearClicked = function onPyTorchFileClearClicked() {\n      props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n        pyTorchModel: null\n      }));\n    };\n    var onConfigFileLoadClicked = /*#__PURE__*/function () {\n      var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() {\n        var file;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.fileSelector)(\"\");\n            case 2:\n              file = _context2.sent;\n              if (!(file.name.endsWith(\".json\") == false)) {\n                _context2.next = 6;\n                break;\n              }\n              alert(\"モデルファイルの拡張子はjsonである必要があります。\");\n              return _context2.abrupt(\"return\");\n            case 6:\n              props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n                configFile: {\n                  file: file\n                }\n              }));\n            case 7:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2);\n      }));\n      return function onConfigFileLoadClicked() {\n        return _ref2.apply(this, arguments);\n      };\n    }();\n    var onConfigFileClearClicked = function onConfigFileClearClicked() {\n      props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n        configFile: null\n      }));\n    };\n    var onOnnxFileLoadClicked = /*#__PURE__*/function () {\n      var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() {\n        var file;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.fileSelector)(\"\");\n            case 2:\n              file = _context3.sent;\n              if (!(file.name.endsWith(\".onnx\") == false)) {\n                _context3.next = 6;\n                break;\n              }\n              alert(\"モデルファイルの拡張子はonnxである必要があります。\");\n              return _context3.abrupt(\"return\");\n            case 6:\n              props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n                onnxModel: {\n                  file: file\n                }\n              }));\n            case 7:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3);\n      }));\n      return function onOnnxFileLoadClicked() {\n        return _ref3.apply(this, arguments);\n      };\n    }();\n    var onOnnxFileClearClicked = function onOnnxFileClearClicked() {\n      props.clientState.serverSetting.setFileUploadSetting(_objectSpread(_objectSpread({}, props.clientState.serverSetting.fileUploadSetting), {}, {\n        onnxModel: null\n      }));\n    };\n    var onCorrespondenceFileLoadClicked = /*#__PURE__*/function () {\n      var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee4() {\n        var file;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee4$(_context4) {\n          while (1) switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.next = 2;\n              return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.fileSelector)(\"\");\n            case 2:\n              file = _context4.sent;\n              props.clientState.clientSetting.setCorrespondences(file);\n            case 4:\n            case \"end\":\n              return _context4.stop();\n          }\n        }, _callee4);\n      }));\n      return function onCorrespondenceFileLoadClicked() {\n        return _ref4.apply(this, arguments);\n      };\n    }();\n    var onCorrespondenceFileClearClicked = function onCorrespondenceFileClearClicked() {\n      props.clientState.clientSetting.setCorrespondences(null);\n    };\n    var onModelUploadClicked = /*#__PURE__*/function () {\n      var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee5() {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee5$(_context5) {\n          while (1) switch (_context5.prev = _context5.next) {\n            case 0:\n              props.clientState.serverSetting.loadModel();\n            case 1:\n            case \"end\":\n              return _context5.stop();\n          }\n        }, _callee5);\n      }));\n      return function onModelUploadClicked() {\n        return _ref5.apply(this, arguments);\n      };\n    }();\n    var uploadButtonClassName = props.clientState.serverSetting.isUploading ? \"body-button-disabled\" : \"body-button\";\n    var uploadButtonAction = props.clientState.serverSetting.isUploading ? function () {} : onModelUploadClicked;\n    var uploadButtonLabel = props.clientState.serverSetting.isUploading ? \"wait...\" : \"upload\";\n    var configFilenameText = ((_props$clientState$se = props.clientState.serverSetting.fileUploadSetting.configFile) === null || _props$clientState$se === void 0 ? void 0 : _props$clientState$se.filename) || ((_props$clientState$se2 = props.clientState.serverSetting.fileUploadSetting.configFile) === null || _props$clientState$se2 === void 0 ? void 0 : (_props$clientState$se3 = _props$clientState$se2.file) === null || _props$clientState$se3 === void 0 ? void 0 : _props$clientState$se3.name) || \"\";\n    var onnxModelFilenameText = ((_props$clientState$se4 = props.clientState.serverSetting.fileUploadSetting.onnxModel) === null || _props$clientState$se4 === void 0 ? void 0 : _props$clientState$se4.filename) || ((_props$clientState$se5 = props.clientState.serverSetting.fileUploadSetting.onnxModel) === null || _props$clientState$se5 === void 0 ? void 0 : (_props$clientState$se6 = _props$clientState$se5.file) === null || _props$clientState$se6 === void 0 ? void 0 : _props$clientState$se6.name) || \"\";\n    var pyTorchFilenameText = ((_props$clientState$se7 = props.clientState.serverSetting.fileUploadSetting.pyTorchModel) === null || _props$clientState$se7 === void 0 ? void 0 : _props$clientState$se7.filename) || ((_props$clientState$se8 = props.clientState.serverSetting.fileUploadSetting.pyTorchModel) === null || _props$clientState$se8 === void 0 ? void 0 : (_props$clientState$se9 = _props$clientState$se8.file) === null || _props$clientState$se9 === void 0 ? void 0 : _props$clientState$se9.name) || \"\";\n    var correspondenceFileText = JSON.stringify(props.clientState.clientSetting.setting.correspondences.map(function (x) {\n      return x.dirname;\n    }));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Model Uploader\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"checkbox\",\n      checked: showPyTorch,\n      onChange: function onChange(e) {\n        setShowPyTorch(e.target.checked);\n      }\n    }), \" enable PyTorch\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"Config(.json)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, configFilenameText)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onConfigFileLoadClicked\n    }, \"select\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button left-margin-1\",\n      onClick: onConfigFileClearClicked\n    }, \"clear\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"Correspondence\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, correspondenceFileText)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onCorrespondenceFileLoadClicked\n    }, \"select\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button left-margin-1\",\n      onClick: onCorrespondenceFileClearClicked\n    }, \"clear\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"Onnx(.onnx)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, onnxModelFilenameText)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onOnnxFileLoadClicked\n    }, \"select\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button left-margin-1\",\n      onClick: onOnnxFileClearClicked\n    }, \"clear\"))), showPyTorch ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"PyTorch(.pth)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, pyTorchFilenameText)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onPyTorchFileLoadClicked\n    }, \"select\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button left-margin-1\",\n      onClick: onPyTorchFileClearClicked\n    }, \"clear\"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, props.clientState.serverSetting.isUploading ? \"uploading.... \".concat(props.clientState.serverSetting.uploadProgress, \"%\") : \"\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: uploadButtonClassName,\n      onClick: uploadButtonAction\n    }, uploadButtonLabel))));\n  }, [props.clientState.serverSetting.fileUploadSetting, props.clientState.serverSetting.loadModel, props.clientState.serverSetting.isUploading, props.clientState.serverSetting.uploadProgress, props.clientState.clientSetting.setting.correspondences, showPyTorch]);\n  var frameworkRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    var onFrameworkChanged = /*#__PURE__*/function () {\n      var _ref6 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee6(val) {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee6$(_context6) {\n          while (1) switch (_context6.prev = _context6.next) {\n            case 0:\n              props.clientState.serverSetting.setFramework(val);\n            case 1:\n            case \"end\":\n              return _context6.stop();\n          }\n        }, _callee6);\n      }));\n      return function onFrameworkChanged(_x) {\n        return _ref6.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Framework\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.serverSetting.setting.framework,\n      onChange: function onChange(e) {\n        onFrameworkChanged(e.target.value);\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.Framework).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.serverSetting.setting.framework, props.clientState.serverSetting.setFramework]);\n  var onnxExecutionProviderRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    if (props.clientState.serverSetting.setting.framework != \"ONNX\") {\n      return;\n    }\n    var onOnnxExecutionProviderChanged = /*#__PURE__*/function () {\n      var _ref7 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee7(val) {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee7$(_context7) {\n          while (1) switch (_context7.prev = _context7.next) {\n            case 0:\n              props.clientState.serverSetting.setOnnxExecutionProvider(val);\n            case 1:\n            case \"end\":\n              return _context7.stop();\n          }\n        }, _callee7);\n      }));\n      return function onOnnxExecutionProviderChanged(_x2) {\n        return _ref7.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"OnnxExecutionProvider\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.serverSetting.setting.onnxExecutionProvider,\n      onChange: function onChange(e) {\n        onOnnxExecutionProviderChanged(e.target.value);\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.OnnxExecutionProvider).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.serverSetting.setting.framework, props.clientState.serverSetting.setting.onnxExecutionProvider, props.clientState.serverSetting.setOnnxExecutionProvider]);\n  var serverSetting = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Server Setting\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    })), uploadeModelRow, frameworkRow, onnxExecutionProviderRow);\n  }, [uploadeModelRow, frameworkRow, onnxExecutionProviderRow]);\n  return {\n    serverSetting: serverSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/101_server_setting.tsx?");

/***/ }),

/***/ "./src/102_device_setting.tsx":
/*!************************************!*\
  !*** ./src/102_device_setting.tsx ***!
  \************************************/
/***/ ((__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 */   \"useDeviceSetting\": () => (/* binding */ useDeviceSetting)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./const */ \"./src/const.ts\");\n\n\n\n\n\n\nvar reloadDevices = /*#__PURE__*/function () {\n  var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n    var ms, mediaDeviceInfos, audioInputs, audioOutputs;\n    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          _context.prev = 0;\n          _context.next = 3;\n          return navigator.mediaDevices.getUserMedia({\n            video: false,\n            audio: true\n          });\n        case 3:\n          ms = _context.sent;\n          ms.getTracks().forEach(function (x) {\n            x.stop();\n          });\n          _context.next = 10;\n          break;\n        case 7:\n          _context.prev = 7;\n          _context.t0 = _context[\"catch\"](0);\n          console.warn(\"Enumerate device error::\", _context.t0);\n        case 10:\n          _context.next = 12;\n          return navigator.mediaDevices.enumerateDevices();\n        case 12:\n          mediaDeviceInfos = _context.sent;\n          audioInputs = mediaDeviceInfos.filter(function (x) {\n            return x.kind == \"audioinput\";\n          });\n          audioInputs.push({\n            deviceId: \"none\",\n            groupId: \"none\",\n            kind: \"audioinput\",\n            label: \"none\",\n            toJSON: function toJSON() {}\n          });\n          audioInputs.push({\n            deviceId: \"file\",\n            groupId: \"file\",\n            kind: \"audioinput\",\n            label: \"file\",\n            toJSON: function toJSON() {}\n          });\n          audioOutputs = mediaDeviceInfos.filter(function (x) {\n            return x.kind == \"audiooutput\";\n          }); // audioOutputs.push({\n          //     deviceId: \"record\",\n          //     groupId: \"record\",\n          //     kind: \"audiooutput\",\n          //     label: \"record\",\n          //     toJSON: () => { }\n          // })\n          return _context.abrupt(\"return\", [audioInputs, audioOutputs]);\n        case 18:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee, null, [[0, 7]]);\n  }));\n  return function reloadDevices() {\n    return _ref.apply(this, arguments);\n  };\n}();\nvar useDeviceSetting = function useDeviceSetting(audioContext, props) {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n    inputAudioDeviceInfo = _useState2[0],\n    setInputAudioDeviceInfo = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),\n    _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n    outputAudioDeviceInfo = _useState4[0],\n    setOutputAudioDeviceInfo = _useState4[1];\n  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(\"none\"),\n    _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState5, 2),\n    audioInputForGUI = _useState6[0],\n    setAudioInputForGUI = _useState6[1];\n  var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(\"none\"),\n    _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState7, 2),\n    audioOutputForGUI = _useState8[0],\n    setAudioOutputForGUI = _useState8[1];\n  var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(),\n    _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState9, 2),\n    fileInputEchoback = _useState10[0],\n    setFileInputEchoback = _useState10[1]; //最初のmuteが有効になるように。undefined\n  var _useIndexedDB = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_3__.useIndexedDB)(),\n    getItem = _useIndexedDB.getItem,\n    setItem = _useIndexedDB.setItem;\n  var audioSrcNode = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)();\n  var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),\n    _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState11, 2),\n    outputRecordingStarted = _useState12[0],\n    setOutputRecordingStarted = _useState12[1];\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    var initialize = /*#__PURE__*/function () {\n      var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n        var audioInfo;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return reloadDevices();\n            case 2:\n              audioInfo = _context2.sent;\n              setInputAudioDeviceInfo(audioInfo[0]);\n              setOutputAudioDeviceInfo(audioInfo[1]);\n            case 5:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2);\n      }));\n      return function initialize() {\n        return _ref2.apply(this, arguments);\n      };\n    }();\n    initialize();\n  }, []);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    if (typeof props.clientState.clientSetting.setting.audioInput == \"string\") {\n      if (inputAudioDeviceInfo.find(function (x) {\n        // console.log(\"COMPARE:\", x.deviceId, props.clientState.clientSetting.setting.audioInput)\n        return x.deviceId == props.clientState.clientSetting.setting.audioInput;\n      })) {\n        setAudioInputForGUI(props.clientState.clientSetting.setting.audioInput);\n      }\n    }\n  }, [inputAudioDeviceInfo, props.clientState.clientSetting.setting.audioInput]);\n  var audioInputRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1  guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"AudioInput\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: audioInputForGUI,\n      onChange: function onChange(e) {\n        setAudioInputForGUI(e.target.value);\n      }\n    }, inputAudioDeviceInfo.map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"option\", {\n        key: x.deviceId,\n        value: x.deviceId\n      }, x.label);\n    }))));\n  }, [inputAudioDeviceInfo, audioInputForGUI, props.clientState.clientSetting.setting.audioInput]);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    if (!audioContext) {\n      return;\n    }\n    if (audioInputForGUI == \"file\") {\n      // file selector (audioMediaInputRow)\n    } else {\n      props.clientState.clientSetting.setAudioInput(audioInputForGUI);\n    }\n  }, [audioContext, audioInputForGUI, props.clientState.clientSetting.setAudioInput]);\n  var audioMediaInputRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    if (audioInputForGUI != \"file\") {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((react__WEBPACK_IMPORTED_MODULE_4___default().Fragment), null);\n    }\n    var onFileLoadClicked = /*#__PURE__*/function () {\n      var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n        var url, audio, dst, audio_echo, audio_org;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_3__.fileSelectorAsDataURL)(\"\");\n            case 2:\n              url = _context3.sent;\n              // input stream for client.\n              audio = document.getElementById(_const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED);\n              audio.pause();\n              audio.srcObject = null;\n              audio.src = url;\n              _context3.next = 9;\n              return audio.play();\n            case 9:\n              if (!audioSrcNode.current) {\n                audioSrcNode.current = audioContext.createMediaElementSource(audio);\n              }\n              if (audioSrcNode.current.mediaElement != audio) {\n                audioSrcNode.current = audioContext.createMediaElementSource(audio);\n              }\n              dst = audioContext.createMediaStreamDestination();\n              audioSrcNode.current.connect(dst);\n              props.clientState.clientSetting.setAudioInput(dst.stream);\n              audio_echo = document.getElementById(_const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK);\n              audio_echo.srcObject = dst.stream;\n              audio_echo.play();\n              setFileInputEchoback(false);\n\n              // original stream to play.\n              audio_org = document.getElementById(_const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_ORIGINAL);\n              audio_org.src = url;\n              audio_org.pause();\n\n              // audio_org.onplay = () => {\n              //     console.log(audioOutputRef.current)\n              //     // @ts-ignore\n              //     audio_org.setSinkId(audioOutputRef.current)\n              // }\n            case 21:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3);\n      }));\n      return function onFileLoadClicked() {\n        return _ref3.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title\"\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      style: {\n        display: \"none\"\n      }\n    }, \"org:\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"audio\", {\n      id: _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_ORIGINAL,\n      controls: true\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"audio\", {\n      id: _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED,\n      controls: true\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"audio\", {\n      id: _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK,\n      controls: true,\n      hidden: true\n    }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onFileLoadClicked\n    }, \"load\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"input\", {\n      type: \"checkbox\",\n      checked: fileInputEchoback,\n      onChange: function onChange(e) {\n        setFileInputEchoback(e.target.checked);\n      }\n    }), \" echoback\"));\n  }, [audioInputForGUI, props.clientState.clientSetting.setAudioInput, fileInputEchoback]);\n  var audioOutputRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"AudioOutput\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: audioOutputForGUI,\n      onChange: function onChange(e) {\n        setAudioOutputForGUI(e.target.value);\n        setItem(_const__WEBPACK_IMPORTED_MODULE_5__.INDEXEDDB_KEY_AUDIO_OUTPUT, e.target.value);\n      }\n    }, outputAudioDeviceInfo.map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"option\", {\n        key: x.deviceId,\n        value: x.deviceId\n      }, x.label);\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"audio\", {\n      hidden: true,\n      id: _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_PLAY_RESULT\n    })));\n  }, [outputAudioDeviceInfo, audioOutputForGUI]);\n  var audioOutputRecordingRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    // if (audioOutputForGUI != \"record\") {\n    //     return <></>\n    // }\n    var onOutputRecordStartClicked = /*#__PURE__*/function () {\n      var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee4() {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee4$(_context4) {\n          while (1) switch (_context4.prev = _context4.next) {\n            case 0:\n              setOutputRecordingStarted(true);\n              _context4.next = 3;\n              return props.clientState.workletSetting.startOutputRecording();\n            case 3:\n            case \"end\":\n              return _context4.stop();\n          }\n        }, _callee4);\n      }));\n      return function onOutputRecordStartClicked() {\n        return _ref4.apply(this, arguments);\n      };\n    }();\n    var onOutputRecordStopClicked = /*#__PURE__*/function () {\n      var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee5() {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee5$(_context5) {\n          while (1) switch (_context5.prev = _context5.next) {\n            case 0:\n              setOutputRecordingStarted(false);\n              _context5.next = 3;\n              return props.clientState.workletSetting.stopOutputRecording();\n            case 3:\n            case \"end\":\n              return _context5.stop();\n          }\n        }, _callee5);\n      }));\n      return function onOutputRecordStopClicked() {\n        return _ref5.apply(this, arguments);\n      };\n    }();\n    var startClassName = outputRecordingStarted ? \"body-button-active\" : \"body-button-stanby\";\n    var stopClassName = outputRecordingStarted ? \"body-button-stanby\" : \"body-button-active\";\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1  guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-2\"\n    }, \"output record\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      onClick: onOutputRecordStartClicked,\n      className: startClassName\n    }, \"start\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      onClick: onOutputRecordStopClicked,\n      className: stopClassName\n    }, \"stop\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }));\n  }, [audioOutputForGUI, outputRecordingStarted, props.clientState.workletSetting.startOutputRecording, props.clientState.workletSetting.stopOutputRecording]);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    [_const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_PLAY_RESULT, _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_ORIGINAL, _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK].forEach(function (x) {\n      var audio = document.getElementById(x);\n      if (audio) {\n        if (audioOutputForGUI == \"none\") {\n          // @ts-ignore\n          audio.setSinkId(\"\");\n          if (x == _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK) {\n            audio.volume = fileInputEchoback ? 1 : 0;\n          } else {\n            audio.volume = 1;\n          }\n        } else if (audioOutputForGUI == \"record\") {\n          audio.volume = 0;\n        } else {\n          // @ts-ignore\n          audio.setSinkId(audioOutputForGUI);\n          if (x == _const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK) {\n            audio.volume = fileInputEchoback ? 1 : 0;\n          } else {\n            audio.volume = 1;\n          }\n        }\n      }\n    });\n  }, [audioOutputForGUI]);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    var loadCache = /*#__PURE__*/function () {\n      var _ref6 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee6() {\n        var key;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee6$(_context6) {\n          while (1) switch (_context6.prev = _context6.next) {\n            case 0:\n              _context6.next = 2;\n              return getItem(_const__WEBPACK_IMPORTED_MODULE_5__.INDEXEDDB_KEY_AUDIO_OUTPUT);\n            case 2:\n              key = _context6.sent;\n              if (key) {\n                setAudioOutputForGUI(key);\n              }\n            case 4:\n            case \"end\":\n              return _context6.stop();\n          }\n        }, _callee6);\n      }));\n      return function loadCache() {\n        return _ref6.apply(this, arguments);\n      };\n    }();\n    loadCache();\n  }, []);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    [_const__WEBPACK_IMPORTED_MODULE_5__.AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK].forEach(function (x) {\n      var audio = document.getElementById(x);\n      if (audio) {\n        audio.volume = fileInputEchoback ? 1 : 0;\n      }\n    });\n  }, [fileInputEchoback]);\n  var deviceSetting = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((react__WEBPACK_IMPORTED_MODULE_4___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Device Setting\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    })), audioInputRow, audioMediaInputRow, audioOutputRow, audioOutputRecordingRow);\n  }, [audioInputRow, audioMediaInputRow, audioOutputRow, audioOutputRecordingRow]);\n\n  // 出力の録音データ(from worklet)がストアされたら実行\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    var _props$clientState$ou;\n    if (!props.clientState.outputRecordData || ((_props$clientState$ou = props.clientState.outputRecordData) === null || _props$clientState$ou === void 0 ? void 0 : _props$clientState$ou.length) == 0) {\n      return;\n    }\n    var f32Datas = props.clientState.outputRecordData;\n    var sampleSize = f32Datas.reduce(function (prev, cur) {\n      return prev + cur.length;\n    }, 0);\n    var samples = new Float32Array(sampleSize);\n    var sampleIndex = 0;\n    for (var i = 0; i < f32Datas.length; i++) {\n      for (var j = 0; j < f32Datas[i].length; j++) {\n        samples[sampleIndex] = f32Datas[i][j];\n        sampleIndex++;\n      }\n    }\n    var writeString = function writeString(view, offset, string) {\n      for (var i = 0; i < string.length; i++) {\n        view.setUint8(offset + i, string.charCodeAt(i));\n      }\n    };\n    var floatTo16BitPCM = function floatTo16BitPCM(output, offset, input) {\n      for (var i = 0; i < input.length; i++, offset += 2) {\n        var s = Math.max(-1, Math.min(1, input[i]));\n        output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);\n      }\n    };\n    var buffer = new ArrayBuffer(44 + samples.length * 2);\n    var view = new DataView(buffer);\n\n    // https://www.youfit.co.jp/archives/1418\n    writeString(view, 0, 'RIFF'); // RIFFヘッダ\n    view.setUint32(4, 32 + samples.length * 2, true); // これ以降のファイルサイズ\n    writeString(view, 8, 'WAVE'); // WAVEヘッダ\n    writeString(view, 12, 'fmt '); // fmtチャンク\n    view.setUint32(16, 16, true); // fmtチャンクのバイト数\n    view.setUint16(20, 1, true); // フォーマットID\n    view.setUint16(22, 1, true); // チャンネル数\n    view.setUint32(24, 48000, true); // サンプリングレート\n    view.setUint32(28, 48000 * 2, true); // データ速度\n    view.setUint16(32, 2, true); // ブロックサイズ\n    view.setUint16(34, 16, true); // サンプルあたりのビット数\n    writeString(view, 36, 'data'); // dataチャンク\n    view.setUint32(40, samples.length * 2, true); // 波形データのバイト数\n    floatTo16BitPCM(view, 44, samples); // 波形データ\n    var audioBlob = new Blob([view], {\n      type: 'audio/wav'\n    });\n    var url = URL.createObjectURL(audioBlob);\n    var a = document.createElement(\"a\");\n    a.href = url;\n    a.download = \"output.wav\";\n    document.body.appendChild(a);\n    a.click();\n    document.body.removeChild(a);\n    URL.revokeObjectURL(url);\n  }, [props.clientState.outputRecordData]);\n  return {\n    deviceSetting: deviceSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/102_device_setting.tsx?");

/***/ }),

/***/ "./src/103_speaker_setting.tsx":
/*!*************************************!*\
  !*** ./src/103_speaker_setting.tsx ***!
  \*************************************/
/***/ ((__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 */   \"useSpeakerSetting\": () => (/* binding */ useSpeakerSetting)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar useSpeakerSetting = function useSpeakerSetting(props) {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(0),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState, 2),\n    editSpeakerTargetId = _useState2[0],\n    setEditSpeakerTargetId = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(\"\"),\n    _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState3, 2),\n    editSpeakerTargetName = _useState4[0],\n    setEditSpeakerTargetName = _useState4[1];\n  var srcIdRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    var selected = props.clientState.clientSetting.setting.correspondences.find(function (x) {\n      return x.sid == props.clientState.serverSetting.setting.srcId;\n    });\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-2-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Source Speaker Id\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.serverSetting.setting.srcId,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setSrcId(Number(e.target.value));\n      }\n    },\n    // props.clientState.clientSetting.setting.speakers.map(x => {\n    //     return <option key={x.id} value={x.id}>{x.name}({x.id})</option>\n    // })\n    props.clientState.clientSetting.setting.correspondences.map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"option\", {\n        key: x.sid,\n        value: x.sid\n      }, x.dirname, \"(\", x.sid, \")\");\n    }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", null, \"F0: \", (selected === null || selected === void 0 ? void 0 : selected.correspondence.toFixed(1)) || \"\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }));\n  }, [props.clientState.clientSetting.setting.speakers, props.clientState.serverSetting.setting.srcId, props.clientState.clientSetting.setting.correspondences, props.clientState.serverSetting.setSrcId]);\n  var dstIdRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    var selected = props.clientState.clientSetting.setting.correspondences.find(function (x) {\n      return x.sid == props.clientState.serverSetting.setting.dstId;\n    });\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-2-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Destination Speaker Id\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.serverSetting.setting.dstId,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setDstId(Number(e.target.value));\n      }\n    },\n    // props.clientState.clientSetting.setting.speakers.map(x => {\n    //     return <option key={x.id} value={x.id}>{x.name}({x.id})</option>\n    // })\n    props.clientState.clientSetting.setting.correspondences.map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"option\", {\n        key: x.sid,\n        value: x.sid\n      }, x.dirname, \"(\", x.sid, \")\");\n    }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", null, \"F0: \", (selected === null || selected === void 0 ? void 0 : selected.correspondence.toFixed(1)) || \"\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }));\n  }, [props.clientState.clientSetting.setting.speakers, props.clientState.serverSetting.setting.dstId, props.clientState.clientSetting.setting.correspondences, props.clientState.serverSetting.setDstId]);\n  var editSpeakerIdMappingRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    var onSetSpeakerMappingClicked = /*#__PURE__*/function () {\n      var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() {\n        var targetId, targetName, targetSpeaker, newSpeakers;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              targetId = editSpeakerTargetId;\n              targetName = editSpeakerTargetName;\n              targetSpeaker = props.clientState.clientSetting.setting.speakers.find(function (x) {\n                return x.id == targetId;\n              });\n              if (targetSpeaker) {\n                if (targetName.length == 0) {\n                  // Delete\n                  newSpeakers = props.clientState.clientSetting.setting.speakers.filter(function (x) {\n                    return x.id != targetId;\n                  });\n                  props.clientState.clientSetting.setSpeakers(newSpeakers);\n                } else {\n                  // Update\n                  targetSpeaker.name = targetName;\n                  props.clientState.clientSetting.setSpeakers((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props.clientState.clientSetting.setting.speakers));\n                }\n              } else {\n                if (targetName.length == 0) {// Noop\n                } else {\n                  // add\n                  props.clientState.clientSetting.setting.speakers.push({\n                    id: targetId,\n                    name: targetName\n                  });\n                  props.clientState.clientSetting.setSpeakers((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props.clientState.clientSetting.setting.speakers));\n                }\n              }\n            case 4:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function onSetSpeakerMappingClicked() {\n        return _ref.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-1-2-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Edit Speaker Mapping\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"input\", {\n      type: \"number\",\n      min: 1,\n      max: 256,\n      step: 1,\n      value: editSpeakerTargetId,\n      onChange: function onChange(e) {\n        var _props$clientState$cl;\n        var id = Number(e.target.value);\n        setEditSpeakerTargetId(id);\n        setEditSpeakerTargetName(((_props$clientState$cl = props.clientState.clientSetting.setting.speakers.find(function (x) {\n          return x.id == id;\n        })) === null || _props$clientState$cl === void 0 ? void 0 : _props$clientState$cl.name) || \"\");\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"input\", {\n      type: \"text\",\n      value: editSpeakerTargetName,\n      onChange: function onChange(e) {\n        setEditSpeakerTargetName(e.target.value);\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onSetSpeakerMappingClicked\n    }, \"set\")));\n  }, [props.clientState.clientSetting.setting.speakers, editSpeakerTargetId, editSpeakerTargetName]);\n  var f0FactorRow = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    var src = props.clientState.clientSetting.setting.correspondences.find(function (x) {\n      return x.sid == props.clientState.serverSetting.setting.srcId;\n    });\n    var dst = props.clientState.clientSetting.setting.correspondences.find(function (x) {\n      return x.sid == props.clientState.serverSetting.setting.dstId;\n    });\n    var recommendedF0Factor = dst && src ? dst.correspondence / src.correspondence : 0;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-2-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"F0 Factor\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"input\", {\n      type: \"range\",\n      className: \"body-item-input\",\n      min: \"0.1\",\n      max: \"5.0\",\n      step: \"0.1\",\n      value: props.clientState.serverSetting.setting.f0Factor,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setF0Factor(Number(e.target.value));\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", null, props.clientState.serverSetting.setting.f0Factor)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, \"recommended:\", recommendedF0Factor.toFixed(1)));\n  }, [props.clientState.serverSetting.setting.f0Factor, props.clientState.serverSetting.setting.srcId, props.clientState.serverSetting.setting.dstId, props.clientState.clientSetting.setting.correspondences, props.clientState.serverSetting.setF0Factor]);\n  var speakerSetting = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((react__WEBPACK_IMPORTED_MODULE_4___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Speaker Setting\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    })), srcIdRow, dstIdRow, editSpeakerIdMappingRow, f0FactorRow);\n  }, [srcIdRow, dstIdRow, editSpeakerIdMappingRow, f0FactorRow]);\n  return {\n    speakerSetting: speakerSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/103_speaker_setting.tsx?");

/***/ }),

/***/ "./src/104_convert_setting.tsx":
/*!*************************************!*\
  !*** ./src/104_convert_setting.tsx ***!
  \*************************************/
/***/ ((__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 */   \"useConvertSetting\": () => (/* binding */ useConvertSetting)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar useConvertSetting = function useConvertSetting(props) {\n  var inputChunkNumRow = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-row split-3-2-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Input Chunk Num(128sample/chunk)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n      type: \"number\",\n      min: 1,\n      max: 256,\n      step: 1,\n      value: props.clientState.clientSetting.setting.inputChunkNum,\n      onChange: function onChange(e) {\n        props.clientState.clientSetting.setInputChunkNum(Number(e.target.value));\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"buff: \", (props.clientState.clientSetting.setting.inputChunkNum * 128 * 1000 / 24000).toFixed(1), \"ms\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }));\n  }, [props.clientState.clientSetting.setting.inputChunkNum, props.clientState.clientSetting.setInputChunkNum]);\n  var gpuRow = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-item-title  left-padding-1\"\n    }, \"GPU\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n      type: \"number\",\n      min: -2,\n      max: 5,\n      step: 1,\n      value: props.clientState.serverSetting.setting.gpu,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setGpu(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.gpu, props.clientState.serverSetting.setGpu]);\n  var convertSetting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Converter Setting\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    })), inputChunkNumRow, gpuRow);\n  }, [inputChunkNumRow, gpuRow]);\n  return {\n    convertSetting: convertSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/104_convert_setting.tsx?");

/***/ }),

/***/ "./src/105_advanced_setting.tsx":
/*!**************************************!*\
  !*** ./src/105_advanced_setting.tsx ***!
  \**************************************/
/***/ ((__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 */   \"useAdvancedSetting\": () => (/* binding */ useAdvancedSetting)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n\n\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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(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; }\n\n\n\nvar useAdvancedSetting = function useAdvancedSetting(props) {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState, 2),\n    showAdvancedSetting = _useState2[0],\n    setShowAdvancedSetting = _useState2[1];\n  var mmvcServerUrlRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    var onSetServerClicked = /*#__PURE__*/function () {\n      var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() {\n        var input;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              input = document.getElementById(\"mmvc-server-url\");\n              props.clientState.clientSetting.setServerUrl(input.value);\n            case 2:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function onSetServerClicked() {\n        return _ref.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"MMVC Server\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"text\",\n      defaultValue: props.clientState.clientSetting.setting.mmvcServerUrl,\n      id: \"mmvc-server-url\",\n      className: \"body-item-input\"\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onSetServerClicked\n    }, \"set\")));\n  }, [props.clientState.clientSetting.setting.mmvcServerUrl, props.clientState.clientSetting.setServerUrl]);\n  var protocolRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    var onProtocolChanged = /*#__PURE__*/function () {\n      var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(val) {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              props.clientState.clientSetting.setProtocol(val);\n            case 1:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2);\n      }));\n      return function onProtocolChanged(_x) {\n        return _ref2.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Protocol\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.clientSetting.setting.protocol,\n      onChange: function onChange(e) {\n        onProtocolChanged(e.target.value);\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.Protocol).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.clientSetting.setting.protocol, props.clientState.clientSetting.setProtocol]);\n  var sampleRateRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Sample Rate\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.clientSetting.setting.sampleRate,\n      onChange: function onChange(e) {\n        props.clientState.clientSetting.setSampleRate(Number(e.target.value));\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.SampleRate).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.clientSetting.setting.sampleRate, props.clientState.clientSetting.setSampleRate]);\n  var bufferSizeRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Buffer Size\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.clientSetting.setting.bufferSize,\n      onChange: function onChange(e) {\n        props.clientState.clientSetting.setBufferSize(Number(e.target.value));\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.BufferSize).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.clientSetting.setting.bufferSize, props.clientState.clientSetting.setBufferSize]);\n  var convertChunkNumRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Convert Chunk Num(128sample/chunk)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 1,\n      max: 256,\n      step: 1,\n      value: props.clientState.serverSetting.setting.convertChunkNum,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setConvertChunkNum(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.convertChunkNum, props.clientState.serverSetting.setConvertChunkNum]);\n  var minConvertSizeRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Min Convert Size(byte)\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 0,\n      max: 8196,\n      step: 8196,\n      value: props.clientState.serverSetting.setting.minConvertSize,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setMinConvertSize(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.minConvertSize, props.clientState.serverSetting.setMinConvertSize]);\n  var crossFadeOverlapRateRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title  left-padding-1\"\n    }, \"Cross Fade Overlap Rate\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 0.1,\n      max: 1,\n      step: 0.1,\n      value: props.clientState.serverSetting.setting.crossFadeOverlapRate,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setCrossFadeOverlapRate(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.crossFadeOverlapRate, props.clientState.serverSetting.setCrossFadeOverlapRate]);\n  var crossFadeOffsetRateRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title  left-padding-1\"\n    }, \"Cross Fade Offset Rate\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 0,\n      max: 1,\n      step: 0.1,\n      value: props.clientState.serverSetting.setting.crossFadeOffsetRate,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setCrossFadeOffsetRate(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.crossFadeOffsetRate, props.clientState.serverSetting.setCrossFadeOffsetRate]);\n  var crossFadeEndRateRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Cross Fade End Rate\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 0,\n      max: 1,\n      step: 0.1,\n      value: props.clientState.serverSetting.setting.crossFadeEndRate,\n      onChange: function onChange(e) {\n        props.clientState.serverSetting.setCrossFadeEndRate(Number(e.target.value));\n      }\n    })));\n  }, [props.clientState.serverSetting.setting.crossFadeEndRate, props.clientState.serverSetting.setCrossFadeEndRate]);\n  var vfForceDisableRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1 \"\n    }, \"VF Disabled\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"checkbox\",\n      checked: props.clientState.clientSetting.setting.forceVfDisable,\n      onChange: function onChange(e) {\n        props.clientState.clientSetting.setVfForceDisabled(e.target.checked);\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }));\n  }, [props.clientState.clientSetting.setting.forceVfDisable, props.clientState.clientSetting.setVfForceDisabled]);\n  var voiceChangeModeRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1 \"\n    }, \"Voice Change Mode\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"select\", {\n      className: \"body-select\",\n      value: props.clientState.clientSetting.setting.voiceChangerMode,\n      onChange: function onChange(e) {\n        props.clientState.clientSetting.setVoiceChangerMode(e.target.value);\n      }\n    }, Object.values(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_4__.VoiceChangerMode).map(function (x) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"option\", {\n        key: x,\n        value: x\n      }, x);\n    }))));\n  }, [props.clientState.clientSetting.setting.voiceChangerMode, props.clientState.clientSetting.setVoiceChangerMode]);\n  var workletSettingRow = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Trancate Num\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"number\",\n      min: 50,\n      max: 300,\n      step: 1,\n      value: props.clientState.workletSetting.setting.numTrancateTreshold,\n      onChange: function onChange(e) {\n        props.clientState.workletSetting.setSetting(_objectSpread(_objectSpread({}, props.clientState.workletSetting.setting), {}, {\n          numTrancateTreshold: Number(e.target.value)\n        }));\n      }\n    }))));\n  }, [props.clientState.workletSetting.setting, props.clientState.workletSetting.setSetting]);\n  var advanceSettingContent = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    if (!showAdvancedSetting) return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }), mmvcServerUrlRow, protocolRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }), sampleRateRow, bufferSizeRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }), convertChunkNumRow, minConvertSizeRow, crossFadeOverlapRateRow, crossFadeOffsetRateRow, crossFadeEndRateRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }), vfForceDisableRow, voiceChangeModeRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }), workletSettingRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row divider\"\n    }));\n  }, [showAdvancedSetting, mmvcServerUrlRow, protocolRow, sampleRateRow, bufferSizeRow, convertChunkNumRow, minConvertSizeRow, crossFadeOverlapRateRow, crossFadeOffsetRateRow, crossFadeEndRateRow, vfForceDisableRow, voiceChangeModeRow, workletSettingRow]);\n  var advancedSetting = (0,react__WEBPACK_IMPORTED_MODULE_5__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Advanced Setting\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n      type: \"checkbox\",\n      checked: showAdvancedSetting,\n      onChange: function onChange(e) {\n        setShowAdvancedSetting(e.target.checked);\n      }\n    }), \" show\")), advanceSettingContent);\n  }, [showAdvancedSetting, advanceSettingContent]);\n  return {\n    advancedSetting: advancedSetting\n  };\n};\n\n//# sourceURL=webpack://demo/./src/105_advanced_setting.tsx?");

/***/ }),

/***/ "./src/106_server_control.tsx":
/*!************************************!*\
  !*** ./src/106_server_control.tsx ***!
  \************************************/
/***/ ((__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 */   \"useServerControl\": () => (/* binding */ useServerControl)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar useServerControl = function useServerControl(props) {\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false),\n    _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n    isStarted = _useState2[0],\n    setIsStarted = _useState2[1];\n  var startButtonRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    var onStartClicked = /*#__PURE__*/function () {\n      var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              setIsStarted(true);\n              _context.next = 3;\n              return props.clientState.clientSetting.start();\n            case 3:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function onStartClicked() {\n        return _ref.apply(this, arguments);\n      };\n    }();\n    var onStopClicked = /*#__PURE__*/function () {\n      var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              setIsStarted(false);\n              console.log(\"stop click1\");\n              _context2.next = 4;\n              return props.clientState.clientSetting.stop();\n            case 4:\n              console.log(\"stop click2\");\n            case 5:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2);\n      }));\n      return function onStopClicked() {\n        return _ref2.apply(this, arguments);\n      };\n    }();\n    var startClassName = isStarted ? \"body-button-active\" : \"body-button-stanby\";\n    var stopClassName = isStarted ? \"body-button-stanby\" : \"body-button-active\";\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1  guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Start\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      onClick: onStartClicked,\n      className: startClassName\n    }, \"start\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      onClick: onStopClicked,\n      className: stopClassName\n    }, \"stop\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-input-container\"\n    }));\n  }, [isStarted, props.clientState.clientSetting.start, props.clientState.clientSetting.stop]);\n  var performanceRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-row split-3-1-1-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"monitor:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, \"vol\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-small\"\n    }, \"(rms)\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, \"buf\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-small\"\n    }, \"(ms)\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, \"res\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-small\"\n    }, \"(ms)\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-row split-3-1-1-1-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, props.clientState.volume.toFixed(4)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, props.clientState.bufferingTime), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, props.clientState.responseTime), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    })));\n  }, [props.clientState.volume, props.clientState.bufferingTime, props.clientState.responseTime]);\n  var infoRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    var _props$clientState$se, _props$clientState$se2, _props$clientState$se3;\n    var onReloadClicked = /*#__PURE__*/function () {\n      var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n        var info;\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return props.clientState.getInfo();\n            case 2:\n              info = _context3.sent;\n              console.log(\"info\", info);\n            case 4:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3);\n      }));\n      return function onReloadClicked() {\n        return _ref3.apply(this, arguments);\n      };\n    }();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-row split-3-3-4 left-padding-1 guided\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-title left-padding-1\"\n    }, \"Model Info:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-item-text\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-item\"\n    }, ((_props$clientState$se = props.clientState.serverSetting.serverInfo) === null || _props$clientState$se === void 0 ? void 0 : _props$clientState$se.configFile) || \"\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-item\"\n    }, ((_props$clientState$se2 = props.clientState.serverSetting.serverInfo) === null || _props$clientState$se2 === void 0 ? void 0 : _props$clientState$se2.pyTorchModelFile) || \"\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"span\", {\n      className: \"body-item-text-item\"\n    }, ((_props$clientState$se3 = props.clientState.serverSetting.serverInfo) === null || _props$clientState$se3 === void 0 ? void 0 : _props$clientState$se3.onnxModelFile) || \"\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-button-container\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-button\",\n      onClick: onReloadClicked\n    }, \"reload\"))));\n  }, [props.clientState.getInfo, props.clientState.serverSetting.serverInfo]);\n  var serverControl = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-row split-3-7 left-padding-1\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-sub-section-title\"\n    }, \"Server Control\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n      className: \"body-select-container\"\n    })), startButtonRow, performanceRow, infoRow);\n  }, [startButtonRow, performanceRow, infoRow]);\n  return {\n    serverControl: serverControl\n  };\n};\n\n//# sourceURL=webpack://demo/./src/106_server_control.tsx?");

/***/ }),

/***/ "./src/const.ts":
/*!**********************!*\
  !*** ./src/const.ts ***!
  \**********************/
/***/ ((__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 */   \"AUDIO_ELEMENT_FOR_PLAY_RESULT\": () => (/* binding */ AUDIO_ELEMENT_FOR_PLAY_RESULT),\n/* harmony export */   \"AUDIO_ELEMENT_FOR_TEST_CONVERTED\": () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED),\n/* harmony export */   \"AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK\": () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK),\n/* harmony export */   \"AUDIO_ELEMENT_FOR_TEST_ORIGINAL\": () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_ORIGINAL),\n/* harmony export */   \"CHROME_EXTENSION\": () => (/* binding */ CHROME_EXTENSION),\n/* harmony export */   \"INDEXEDDB_KEY_AUDIO_OUTPUT\": () => (/* binding */ INDEXEDDB_KEY_AUDIO_OUTPUT)\n/* harmony export */ });\nvar CHROME_EXTENSION = false;\nvar AUDIO_ELEMENT_FOR_PLAY_RESULT = \"audio-result\";\nvar AUDIO_ELEMENT_FOR_TEST_ORIGINAL = \"audio-test-original\";\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED = \"audio-test-converted\";\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK = \"audio-test-converted-echoback\";\nvar INDEXEDDB_KEY_AUDIO_OUTPUT = \"INDEXEDDB_KEY_AUDIO_OUTPUT\";\n\n//# sourceURL=webpack://demo/./src/const.ts?");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js!./src/css/App.css":
/*!*************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js!./src/css/App.css ***!
  \*************************************************************************************************************************************/
/***/ ((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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://fonts.googleapis.com/css2?family=Chicle&family=Poppins:ital,wght@0,200;0,400;0,600;1,200;1,400;1,600&display=swap);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://fonts.googleapis.com/css2?family=Yusei+Magic&display=swap);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n    --text-color: #333;\\n    --company-color1: rgba(64, 119, 187, 1);\\n    --company-color2: rgba(29, 47, 78, 1);\\n    --company-color3: rgba(255, 255, 255, 1);\\n    --company-color1-alpha: rgba(64, 119, 187, 0.3);\\n    --company-color2-alpha: rgba(29, 47, 78, 0.3);\\n    --company-color3-alpha: rgba(255, 255, 255, 0.3);\\n    --global-shadow-color: rgba(0, 0, 0, 0.4);\\n\\n    --sidebar-transition-time: 0.3s;\\n    --sidebar-transition-time-quick: 0.1s;\\n    --sidebar-transition-animation: ease-in-out;\\n\\n    --header-height: 1.5rem;\\n    --right-sidebar-width: 320px;\\n\\n    --dialog-border-color: rgba(100, 100, 100, 1);\\n    --dialog-shadow-color: rgba(0, 0, 0, 0.3);\\n    --dialog-background-color: rgba(255, 255, 255, 1);\\n    --dialog-primary-color: rgba(19, 70, 209, 1);\\n    --dialog-active-color: rgba(40, 70, 209, 1);\\n    --dialog-input-border-color: rgba(200, 200, 200, 1);\\n    --dialog-submit-button-color: rgba(180, 190, 230, 1);\\n    --dialog-cancel-button-color: rgba(235, 80, 80, 1);\\n\\n    --body-video-seeker-height: 3rem;\\n}\\n\\n* {\\n    margin: 0;\\n    padding: 0;\\n    box-sizing: border-box;\\n    font-family: \\\"Poppins\\\", sans-serif;\\n}\\nhtml {\\n    font-size: 16px;\\n}\\nbody {\\n    height: 100%;\\n    width: 100%;\\n    overflow-y: scroll;\\n    overflow-x: hidden;\\n    color: var(--text-color);\\n    /* background: linear-gradient(45deg, var(--company-color1) 0, 5%, var(--company-color2) 5% 10%, var(--company-color3) 10% 80%, var(--company-color1) 80% 85%, var(--company-color2) 85% 100%); */\\n    background: linear-gradient(45deg, var(--company-color1) 0, 1%, var(--company-color2) 1% 5%, var(--company-color3) 5% 80%, var(--company-color1) 80% 85%, var(--company-color2) 85% 100%);\\n}\\n#app {\\n    height: 100%;\\n    width: 100%;\\n}\\n.main-body {\\n    height: 100%;\\n    width: 100%;\\n    padding: 2rem;\\n    font-family: \\\"Yusei Magic\\\", sans-serif;\\n    display: flex;\\n    flex-direction: column;\\n    font-size: 1rem;\\n}\\n.body-row {\\n}\\n.split-6-4 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-6-4 > div:nth-child(1) {\\n        left: 0px;\\n        width: 60%;\\n    }\\n.split-6-4 > div:nth-child(2) {\\n        left: 60%;\\n        width: 40%;\\n    }\\n\\n.split-4-6 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n\\n.split-4-6 > div:nth-child(1) {\\n        left: 0px;\\n        width: 40%;\\n    }\\n\\n.split-4-6 > div:nth-child(2) {\\n        left: 40%;\\n        width: 60%;\\n    }\\n.split-3-7 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-3-7 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n.split-3-7 > div:nth-child(2) {\\n        left: 30%;\\n        width: 70%;\\n    }\\n\\n.split-3-3-4 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n\\n.split-3-3-4 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n\\n.split-3-3-4 > div:nth-child(2) {\\n        left: 30%;\\n        width: 30%;\\n    }\\n\\n.split-3-3-4 > div:nth-child(3) {\\n        left: 60%;\\n        width: 40%;\\n    }\\n.split-3-1-2-4 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-3-1-2-4 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n.split-3-1-2-4 > div:nth-child(2) {\\n        left: 30%;\\n        width: 10%;\\n    }\\n.split-3-1-2-4 > div:nth-child(3) {\\n        left: 40%;\\n        width: 20%;\\n    }\\n.split-3-1-2-4 > div:nth-child(4) {\\n        left: 60%;\\n        width: 40%;\\n    }\\n.split-3-2-1-4 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-3-2-1-4 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n.split-3-2-1-4 > div:nth-child(2) {\\n        left: 30%;\\n        width: 20%;\\n    }\\n.split-3-2-1-4 > div:nth-child(3) {\\n        left: 50%;\\n        width: 10%;\\n    }\\n.split-3-2-1-4 > div:nth-child(4) {\\n        left: 60%;\\n        width: 40%;\\n    }\\n.split-3-2-2-2-1 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-3-2-2-2-1 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n.split-3-2-2-2-1 > div:nth-child(2) {\\n        left: 30%;\\n        width: 20%;\\n    }\\n.split-3-2-2-2-1 > div:nth-child(3) {\\n        left: 50%;\\n        width: 20%;\\n    }\\n.split-3-2-2-2-1 > div:nth-child(4) {\\n        left: 70%;\\n        width: 20%;\\n    }\\n.split-3-2-2-2-1 > div:nth-child(5) {\\n        left: 90%;\\n        width: 10%;\\n    }\\n.split-3-1-1-1-4 {\\n    display: flex;\\n    width: 100%;\\n    justify-content: center;\\n    margin: 1px 0px 1px 0px;\\n}\\n.split-3-1-1-1-4 > div:nth-child(1) {\\n        left: 0px;\\n        width: 30%;\\n    }\\n.split-3-1-1-1-4 > div:nth-child(2) {\\n        left: 30%;\\n        width: 10%;\\n    }\\n.split-3-1-1-1-4 > div:nth-child(3) {\\n        left: 40%;\\n        width: 10%;\\n    }\\n.split-3-1-1-1-4 > div:nth-child(4) {\\n        left: 50%;\\n        width: 10%;\\n    }\\n.split-3-1-1-1-4 > div:nth-child(5) {\\n        left: 60%;\\n        width: 40%;\\n    }\\n.underline {\\n    border-bottom: 3px solid #333;\\n}\\n.left-padding-1 {\\n    padding-left: 1rem;\\n}\\n.left-padding-2 {\\n    padding-left: 2rem;\\n}\\n.left-margin-1 {\\n    margin-left: 1rem;\\n}\\n.left-margin-2 {\\n    margin-left: 2rem;\\n}\\n.highlight {\\n    background-color: rgba(200, 200, 255, 0.3);\\n}\\n.guided {\\n    /* background-color: rgba(9, 133, 67, 0.3); */\\n    background-color: rgba(159, 165, 162, 0.1);\\n    /* border-bottom: 1px solid rgba(9, 133, 67, 0.3); */\\n}\\n\\n.divider {\\n    height: 4px;\\n    /* background-color: rgba(16, 210, 113, 0.1); */\\n    background-color: rgba(31, 42, 36, 0.1);\\n}\\n\\n.body-top-title {\\n    font-size: 3rem;\\n}\\n.body-top-title-version {\\n    margin-left: 2rem;\\n    font-size: 1.2rem;\\n    background: linear-gradient(transparent 60%, yellow 30%);\\n}\\n.body-top-title-belongings {\\n    display: flex;\\n    align-items: flex-end;\\n    justify-content: flex-start;\\n}\\n.body-top-title-belongings > div {\\n        margin-left: 10px;\\n        margin-right: 10px;\\n    }\\n.body-top-title-belongings > .belonging-item > .link {\\n            text-decoration: none;\\n        }\\n.body-top-title-belongings > .belonging-item > .link > span {\\n                font-size: small;\\n            }\\n\\n.body-section-title {\\n    font-size: 1.5rem;\\n    color: rgb(51, 49, 49);\\n}\\n.body-sub-section-title {\\n    font-size: 1.1rem;\\n    font-weight: 700;\\n    color: rgb(3, 53, 12);\\n}\\n\\n.body-item-title {\\n    color: rgb(51, 99, 49);\\n}\\n.body-item-text {\\n    color: rgb(30, 30, 30);\\n    overflow: hidden;\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n}\\n.body-item-text .body-item-text-item {\\n        padding-left: 1rem;\\n    }\\n.body-item-text-small {\\n    color: rgb(30, 30, 30);\\n    font-size: 0.7rem;\\n}\\n.body-item-input {\\n    width: 90%;\\n}\\n\\n.body-button-container {\\n    display: flex;\\n    flex-direction: row;\\n    align-items: center;\\n}\\n\\n.body-button-container > div {\\n        margin-left: 5px;\\n        margin-right: 5px;\\n        padding-left: 20px;\\n        padding-right: 20px;\\n    }\\n\\n.body-button-container .body-button {\\n        -webkit-user-select: none;\\n           -moz-user-select: none;\\n                user-select: none;\\n        border: solid 1px #999;\\n        border-radius: 2px;\\n        cursor: pointer;\\n        vertical-align: middle;\\n    }\\n\\n.body-button-container .body-button:hover {\\n            border: solid 1px #000;\\n        }\\n\\n.body-button-container .body-button-disabled {\\n        -webkit-user-select: none;\\n           -moz-user-select: none;\\n                user-select: none;\\n        border: solid 1px #999;\\n        border-radius: 2px;\\n        vertical-align: middle;\\n        background: #ddd;\\n    }\\n\\n.body-button-container .body-button-active {\\n        -webkit-user-select: none;\\n           -moz-user-select: none;\\n                user-select: none;\\n        border: solid 1px #333;\\n        border-radius: 2px;\\n        background: #ada;\\n    }\\n\\n.body-button-container .body-button-stanby {\\n        -webkit-user-select: none;\\n           -moz-user-select: none;\\n                user-select: none;\\n        border: solid 1px #999;\\n        border-radius: 2px;\\n        background: #aba;\\n        cursor: pointer;\\n    }\\n\\n.body-button-container .body-button-stanby:hover {\\n            border: solid 1px #000;\\n        }\\n.body-select-container .body-select {\\n        color: rgb(30, 30, 30);\\n    }\\n\", \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://demo/./src/css/App.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D!./node_modules/postcss-loader/dist/cjs.js");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = [];\n\n  // return the list of modules as css string\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n      content += cssWithMappingToString(item);\n      if (needLayer) {\n        content += \"}\";\n      }\n      if (item[2]) {\n        content += \"}\";\n      }\n      if (item[4]) {\n        content += \"}\";\n      }\n      return content;\n    }).join(\"\");\n  };\n\n  // import a list of modules into the list\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n    var alreadyImportedModules = {};\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n      list.push(item);\n    }\n  };\n  return list;\n};\n\n//# sourceURL=webpack://demo/./node_modules/css-loader/dist/runtime/api.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
/*!**************************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nmodule.exports = function (i) {\n  return i[1];\n};\n\n//# sourceURL=webpack://demo/./node_modules/css-loader/dist/runtime/noSourceMaps.js?");

/***/ }),

/***/ "./node_modules/react-dom/cjs/react-dom.development.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-dom/cjs/react-dom.development.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function() {\n\n          'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n          var React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar suppressWarning = false;\nfunction setSuppressWarning(newSuppressWarning) {\n  {\n    suppressWarning = newSuppressWarning;\n  }\n} // In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n  {\n    if (!suppressWarning) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      printWarning('warn', format, args);\n    }\n  }\n}\nfunction error(format) {\n  {\n    if (!suppressWarning) {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar ScopeComponent = 21;\nvar OffscreenComponent = 22;\nvar LegacyHiddenComponent = 23;\nvar CacheComponent = 24;\nvar TracingMarkerComponent = 25;\n\n// -----------------------------------------------------------------------------\n\nvar enableClientRenderFallbackOnTextMismatch = true; // TODO: Need to review this code one more time before landing\n// the react-reconciler package.\n\nvar enableNewReconciler = false; // Support legacy Primer support on internal FB www\n\nvar enableLazyContextPropagation = false; // FB-only usage. The new API has different semantics.\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n\nvar enableSuspenseAvoidThisFallback = false; // Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\n\nvar disableCommentsAsDOMContainers = true; // Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\n\nvar enableCustomElementPropertySupport = false; // Disables children for <textarea> elements\nvar warnAboutStringRefs = false; // -----------------------------------------------------------------------------\n// Debugging and DevTools\n// -----------------------------------------------------------------------------\n// Adds user timing marks for e.g. state updates, suspense, and work loop stuff,\n// for an experimental timeline tool.\n\nvar enableSchedulingProfiler = true; // Helps identify side effects in render-phase lifecycle hooks and setState\n\nvar enableProfilerTimer = true; // Record durations for commit and passive effects phases.\n\nvar enableProfilerCommitHooks = true; // Phase param passed to onRender callback differentiates between an \"update\" and a \"cascading-update\".\n\nvar allNativeEvents = new Set();\n/**\n * Mapping from registration name to event name\n */\n\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames =  {} ; // Trust the developer to only use possibleRegistrationNames in true\n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n  registerDirectEvent(registrationName, dependencies);\n  registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n  {\n    if (registrationNameDependencies[registrationName]) {\n      error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n    }\n  }\n\n  registrationNameDependencies[registrationName] = dependencies;\n\n  {\n    var lowerCasedName = registrationName.toLowerCase();\n    possibleRegistrationNames[lowerCasedName] = registrationName;\n\n    if (registrationName === 'onDoubleClick') {\n      possibleRegistrationNames.ondblclick = registrationName;\n    }\n  }\n\n  for (var i = 0; i < dependencies.length; i++) {\n    allNativeEvents.add(dependencies[i]);\n  }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\n\nfunction checkAttributeStringCoercion(value, attributeName) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided `%s` attribute is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', attributeName, typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\nfunction checkPropStringCoercion(value, propName) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided `%s` prop is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', propName, typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\nfunction checkCSSPropertyStringCoercion(value, propName) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided `%s` CSS property is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', propName, typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\nfunction checkHtmlStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided HTML markup uses a value of unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\nfunction checkFormFieldValueStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('Form field values (value, checked, defaultValue, or defaultChecked props)' + ' must be strings, not %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n    return true;\n  }\n\n  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n    return false;\n  }\n\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n\n  illegalAttributeNameCache[attributeName] = true;\n\n  {\n    error('Invalid attribute name: `%s`', attributeName);\n  }\n\n  return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null) {\n    return propertyInfo.type === RESERVED;\n  }\n\n  if (isCustomComponentTag) {\n    return false;\n  }\n\n  if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n    return true;\n  }\n\n  return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n    return false;\n  }\n\n  switch (typeof value) {\n    case 'function': // $FlowIssue symbol is perfectly valid here\n\n    case 'symbol':\n      // eslint-disable-line\n      return true;\n\n    case 'boolean':\n      {\n        if (isCustomComponentTag) {\n          return false;\n        }\n\n        if (propertyInfo !== null) {\n          return !propertyInfo.acceptsBooleans;\n        } else {\n          var prefix = name.toLowerCase().slice(0, 5);\n          return prefix !== 'data-' && prefix !== 'aria-';\n        }\n      }\n\n    default:\n      return false;\n  }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n  if (value === null || typeof value === 'undefined') {\n    return true;\n  }\n\n  if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n    return true;\n  }\n\n  if (isCustomComponentTag) {\n\n    return false;\n  }\n\n  if (propertyInfo !== null) {\n\n    switch (propertyInfo.type) {\n      case BOOLEAN:\n        return !value;\n\n      case OVERLOADED_BOOLEAN:\n        return value === false;\n\n      case NUMERIC:\n        return isNaN(value);\n\n      case POSITIVE_NUMERIC:\n        return isNaN(value) || value < 1;\n    }\n  }\n\n  return false;\n}\nfunction getPropertyInfo(name) {\n  return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n  this.sanitizeURL = sanitizeURL;\n  this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\n\nreservedProps.forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n  var name = _ref[0],\n      attributeName = _ref[1];\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n  return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n  false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n  false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  true, // sanitizeURL\n  true);\n});\n\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n  {\n    if (!didWarn && isJavaScriptProtocol.test(url)) {\n      didWarn = true;\n\n      error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n    }\n  }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n  {\n    if (propertyInfo.mustUseProperty) {\n      var propertyName = propertyInfo.propertyName;\n      return node[propertyName];\n    } else {\n      // This check protects multiple uses of `expected`, which is why the\n      // react-internal/safe-string-coercion rule is disabled in several spots\n      // below.\n      {\n        checkAttributeStringCoercion(expected, name);\n      }\n\n      if ( propertyInfo.sanitizeURL) {\n        // If we haven't fully disabled javascript: URLs, and if\n        // the hydration is successful of a javascript: URL, we\n        // still want to warn on the client.\n        // eslint-disable-next-line react-internal/safe-string-coercion\n        sanitizeURL('' + expected);\n      }\n\n      var attributeName = propertyInfo.attributeName;\n      var stringValue = null;\n\n      if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n        if (node.hasAttribute(attributeName)) {\n          var value = node.getAttribute(attributeName);\n\n          if (value === '') {\n            return true;\n          }\n\n          if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n            return value;\n          } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n          if (value === '' + expected) {\n            return expected;\n          }\n\n          return value;\n        }\n      } else if (node.hasAttribute(attributeName)) {\n        if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n          // We had an attribute but shouldn't have had one, so read it\n          // for the error message.\n          return node.getAttribute(attributeName);\n        }\n\n        if (propertyInfo.type === BOOLEAN) {\n          // If this was a boolean, it doesn't matter what the value is\n          // the fact that we have it is the same as the expected.\n          return expected;\n        } // Even if this property uses a namespace we use getAttribute\n        // because we assume its namespaced name is the same as our config.\n        // To use getAttributeNS we need the local name which we don't have\n        // in our config atm.\n\n\n        stringValue = node.getAttribute(attributeName);\n      }\n\n      if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n        return stringValue === null ? expected : stringValue; // eslint-disable-next-line react-internal/safe-string-coercion\n      } else if (stringValue === '' + expected) {\n        return expected;\n      } else {\n        return stringValue;\n      }\n    }\n  }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected, isCustomComponentTag) {\n  {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n\n    if (!node.hasAttribute(name)) {\n      return expected === undefined ? undefined : null;\n    }\n\n    var value = node.getAttribute(name);\n\n    {\n      checkAttributeStringCoercion(expected, name);\n    }\n\n    if (value === '' + expected) {\n      return expected;\n    }\n\n    return value;\n  }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n  var propertyInfo = getPropertyInfo(name);\n\n  if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n    return;\n  }\n\n  if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n    value = null;\n  }\n\n\n  if (isCustomComponentTag || propertyInfo === null) {\n    if (isAttributeNameSafe(name)) {\n      var _attributeName = name;\n\n      if (value === null) {\n        node.removeAttribute(_attributeName);\n      } else {\n        {\n          checkAttributeStringCoercion(value, name);\n        }\n\n        node.setAttribute(_attributeName,  '' + value);\n      }\n    }\n\n    return;\n  }\n\n  var mustUseProperty = propertyInfo.mustUseProperty;\n\n  if (mustUseProperty) {\n    var propertyName = propertyInfo.propertyName;\n\n    if (value === null) {\n      var type = propertyInfo.type;\n      node[propertyName] = type === BOOLEAN ? false : '';\n    } else {\n      // Contrary to `setAttribute`, object properties are properly\n      // `toString`ed by IE8/9.\n      node[propertyName] = value;\n    }\n\n    return;\n  } // The rest are treated as attributes with special cases.\n\n\n  var attributeName = propertyInfo.attributeName,\n      attributeNamespace = propertyInfo.attributeNamespace;\n\n  if (value === null) {\n    node.removeAttribute(attributeName);\n  } else {\n    var _type = propertyInfo.type;\n    var attributeValue;\n\n    if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n      // If attribute type is boolean, we know for sure it won't be an execution sink\n      // and we won't require Trusted Type here.\n      attributeValue = '';\n    } else {\n      // `setAttribute` with objects becomes only `[object]` in IE8/9,\n      // ('' + value) makes it output the correct toString()-value.\n      {\n        {\n          checkAttributeStringCoercion(value, attributeName);\n        }\n\n        attributeValue = '' + value;\n      }\n\n      if (propertyInfo.sanitizeURL) {\n        sanitizeURL(attributeValue.toString());\n      }\n    }\n\n    if (attributeNamespace) {\n      node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n    } else {\n      node.setAttribute(attributeName, attributeValue);\n    }\n  }\n}\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_SCOPE_TYPE = Symbol.for('react.scope');\nvar REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for('react.debug_trace_mode');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden');\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\nvar REACT_TRACING_MARKER_TYPE = Symbol.for('react.tracing_marker');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(ctor, true);\n  }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nfunction describeFiber(fiber) {\n  var owner =  fiber._debugOwner ? fiber._debugOwner.type : null ;\n  var source =  fiber._debugSource ;\n\n  switch (fiber.tag) {\n    case HostComponent:\n      return describeBuiltInComponentFrame(fiber.type);\n\n    case LazyComponent:\n      return describeBuiltInComponentFrame('Lazy');\n\n    case SuspenseComponent:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case SuspenseListComponent:\n      return describeBuiltInComponentFrame('SuspenseList');\n\n    case FunctionComponent:\n    case IndeterminateComponent:\n    case SimpleMemoComponent:\n      return describeFunctionComponentFrame(fiber.type);\n\n    case ForwardRef:\n      return describeFunctionComponentFrame(fiber.type.render);\n\n    case ClassComponent:\n      return describeClassComponentFrame(fiber.type);\n\n    default:\n      return '';\n  }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n  try {\n    var info = '';\n    var node = workInProgress;\n\n    do {\n      info += describeFiber(node);\n      node = node.return;\n    } while (node);\n\n    return info;\n  } catch (x) {\n    return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n  }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nfunction getWrappedName$1(outerType, innerType, wrapperName) {\n  var functionName = innerType.displayName || innerType.name || '';\n  return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n} // Keep in sync with shared/getComponentNameFromType\n\n\nfunction getContextName$1(type) {\n  return type.displayName || 'Context';\n}\n\nfunction getComponentNameFromFiber(fiber) {\n  var tag = fiber.tag,\n      type = fiber.type;\n\n  switch (tag) {\n    case CacheComponent:\n      return 'Cache';\n\n    case ContextConsumer:\n      var context = type;\n      return getContextName$1(context) + '.Consumer';\n\n    case ContextProvider:\n      var provider = type;\n      return getContextName$1(provider._context) + '.Provider';\n\n    case DehydratedFragment:\n      return 'DehydratedFragment';\n\n    case ForwardRef:\n      return getWrappedName$1(type, type.render, 'ForwardRef');\n\n    case Fragment:\n      return 'Fragment';\n\n    case HostComponent:\n      // Host component type is the display name (e.g. \"div\", \"View\")\n      return type;\n\n    case HostPortal:\n      return 'Portal';\n\n    case HostRoot:\n      return 'Root';\n\n    case HostText:\n      return 'Text';\n\n    case LazyComponent:\n      // Name comes from the type in this case; we don't have a tag.\n      return getComponentNameFromType(type);\n\n    case Mode:\n      if (type === REACT_STRICT_MODE_TYPE) {\n        // Don't be less specific than shared/getComponentNameFromType\n        return 'StrictMode';\n      }\n\n      return 'Mode';\n\n    case OffscreenComponent:\n      return 'Offscreen';\n\n    case Profiler:\n      return 'Profiler';\n\n    case ScopeComponent:\n      return 'Scope';\n\n    case SuspenseComponent:\n      return 'Suspense';\n\n    case SuspenseListComponent:\n      return 'SuspenseList';\n\n    case TracingMarkerComponent:\n      return 'TracingMarker';\n    // The display name for this tags come from the user-provided type:\n\n    case ClassComponent:\n    case FunctionComponent:\n    case IncompleteClassComponent:\n    case IndeterminateComponent:\n    case MemoComponent:\n    case SimpleMemoComponent:\n      if (typeof type === 'function') {\n        return type.displayName || type.name || null;\n      }\n\n      if (typeof type === 'string') {\n        return type;\n      }\n\n      break;\n\n  }\n\n  return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n  {\n    if (current === null) {\n      return null;\n    }\n\n    var owner = current._debugOwner;\n\n    if (owner !== null && typeof owner !== 'undefined') {\n      return getComponentNameFromFiber(owner);\n    }\n  }\n\n  return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n  {\n    if (current === null) {\n      return '';\n    } // Safe because if current fiber exists, we are reconciling,\n    // and it is guaranteed to be the work-in-progress version.\n\n\n    return getStackByFiberInDevAndProd(current);\n  }\n}\n\nfunction resetCurrentFiber() {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = null;\n    current = null;\n    isRendering = false;\n  }\n}\nfunction setCurrentFiber(fiber) {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = fiber === null ? null : getCurrentFiberStackInDev;\n    current = fiber;\n    isRendering = false;\n  }\n}\nfunction getCurrentFiber() {\n  {\n    return current;\n  }\n}\nfunction setIsRendering(rendering) {\n  {\n    isRendering = rendering;\n  }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n  // The coercion safety check is performed in getToStringValue().\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction getToStringValue(value) {\n  switch (typeof value) {\n    case 'boolean':\n    case 'number':\n    case 'string':\n    case 'undefined':\n      return value;\n\n    case 'object':\n      {\n        checkFormFieldValueStringCoercion(value);\n      }\n\n      return value;\n\n    default:\n      // function, symbol are assigned as empty strings\n      return '';\n  }\n}\n\nvar hasReadOnlyValue = {\n  button: true,\n  checkbox: true,\n  image: true,\n  hidden: true,\n  radio: true,\n  reset: true,\n  submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n  {\n    if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n      error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    }\n\n    if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n      error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    }\n  }\n}\n\nfunction isCheckable(elem) {\n  var type = elem.type;\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n  return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n  node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n  var value = '';\n\n  if (!node) {\n    return value;\n  }\n\n  if (isCheckable(node)) {\n    value = node.checked ? 'true' : 'false';\n  } else {\n    value = node.value;\n  }\n\n  return value;\n}\n\nfunction trackValueOnNode(node) {\n  var valueField = isCheckable(node) ? 'checked' : 'value';\n  var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n  {\n    checkFormFieldValueStringCoercion(node[valueField]);\n  }\n\n  var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n  // and don't track value will cause over reporting of changes,\n  // but it's better then a hard failure\n  // (needed for certain tests that spyOn input values and Safari)\n\n  if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n    return;\n  }\n\n  var get = descriptor.get,\n      set = descriptor.set;\n  Object.defineProperty(node, valueField, {\n    configurable: true,\n    get: function () {\n      return get.call(this);\n    },\n    set: function (value) {\n      {\n        checkFormFieldValueStringCoercion(value);\n      }\n\n      currentValue = '' + value;\n      set.call(this, value);\n    }\n  }); // We could've passed this the first time\n  // but it triggers a bug in IE11 and Edge 14/15.\n  // Calling defineProperty() again should be equivalent.\n  // https://github.com/facebook/react/issues/11768\n\n  Object.defineProperty(node, valueField, {\n    enumerable: descriptor.enumerable\n  });\n  var tracker = {\n    getValue: function () {\n      return currentValue;\n    },\n    setValue: function (value) {\n      {\n        checkFormFieldValueStringCoercion(value);\n      }\n\n      currentValue = '' + value;\n    },\n    stopTracking: function () {\n      detachTracker(node);\n      delete node[valueField];\n    }\n  };\n  return tracker;\n}\n\nfunction track(node) {\n  if (getTracker(node)) {\n    return;\n  } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n  node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n  if (!node) {\n    return false;\n  }\n\n  var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n  // that trying again will succeed\n\n  if (!tracker) {\n    return true;\n  }\n\n  var lastValue = tracker.getValue();\n  var nextValue = getValueFromNode(node);\n\n  if (nextValue !== lastValue) {\n    tracker.setValue(nextValue);\n    return true;\n  }\n\n  return false;\n}\n\nfunction getActiveElement(doc) {\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n  var node = element;\n  var checked = props.checked;\n  var hostProps = assign({}, props, {\n    defaultChecked: undefined,\n    defaultValue: undefined,\n    value: undefined,\n    checked: checked != null ? checked : node._wrapperState.initialChecked\n  });\n  return hostProps;\n}\nfunction initWrapperState(element, props) {\n  {\n    checkControlledValueProps('input', props);\n\n    if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n      error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n      didWarnCheckedDefaultChecked = true;\n    }\n\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n      error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n      didWarnValueDefaultValue = true;\n    }\n  }\n\n  var node = element;\n  var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n  node._wrapperState = {\n    initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n    initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n    controlled: isControlled(props)\n  };\n}\nfunction updateChecked(element, props) {\n  var node = element;\n  var checked = props.checked;\n\n  if (checked != null) {\n    setValueForProperty(node, 'checked', checked, false);\n  }\n}\nfunction updateWrapper(element, props) {\n  var node = element;\n\n  {\n    var controlled = isControlled(props);\n\n    if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n      error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n      didWarnUncontrolledToControlled = true;\n    }\n\n    if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n      error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n      didWarnControlledToUncontrolled = true;\n    }\n  }\n\n  updateChecked(element, props);\n  var value = getToStringValue(props.value);\n  var type = props.type;\n\n  if (value != null) {\n    if (type === 'number') {\n      if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n      // eslint-disable-next-line\n      node.value != value) {\n        node.value = toString(value);\n      }\n    } else if (node.value !== toString(value)) {\n      node.value = toString(value);\n    }\n  } else if (type === 'submit' || type === 'reset') {\n    // Submit/reset inputs need the attribute removed completely to avoid\n    // blank-text buttons.\n    node.removeAttribute('value');\n    return;\n  }\n\n  {\n    // When syncing the value attribute, the value comes from a cascade of\n    // properties:\n    //  1. The value React property\n    //  2. The defaultValue React property\n    //  3. Otherwise there should be no change\n    if (props.hasOwnProperty('value')) {\n      setDefaultValue(node, props.type, value);\n    } else if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  }\n\n  {\n    // When syncing the checked attribute, it only changes when it needs\n    // to be removed, such as transitioning from a checkbox into a text input\n    if (props.checked == null && props.defaultChecked != null) {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n  var node = element; // Do not assign value if it is already set. This prevents user text input\n  // from being lost during SSR hydration.\n\n  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n    var type = props.type;\n    var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n    // default value provided by the browser. See: #12872\n\n    if (isButton && (props.value === undefined || props.value === null)) {\n      return;\n    }\n\n    var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n    // from being lost during SSR hydration.\n\n    if (!isHydrating) {\n      {\n        // When syncing the value attribute, the value property should use\n        // the wrapperState._initialValue property. This uses:\n        //\n        //   1. The value React property when present\n        //   2. The defaultValue React property when present\n        //   3. An empty string\n        if (initialValue !== node.value) {\n          node.value = initialValue;\n        }\n      }\n    }\n\n    {\n      // Otherwise, the value attribute is synchronized to the property,\n      // so we assign defaultValue to the same thing as the value property\n      // assignment step above.\n      node.defaultValue = initialValue;\n    }\n  } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n  // this is needed to work around a chrome bug where setting defaultChecked\n  // will sometimes influence the value of checked (even after detachment).\n  // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n  // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n  var name = node.name;\n\n  if (name !== '') {\n    node.name = '';\n  }\n\n  {\n    // When syncing the checked attribute, both the checked property and\n    // attribute are assigned at the same time using defaultChecked. This uses:\n    //\n    //   1. The checked React property when present\n    //   2. The defaultChecked React property when present\n    //   3. Otherwise, false\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !!node._wrapperState.initialChecked;\n  }\n\n  if (name !== '') {\n    node.name = name;\n  }\n}\nfunction restoreControlledState(element, props) {\n  var node = element;\n  updateWrapper(node, props);\n  updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n  var name = props.name;\n\n  if (props.type === 'radio' && name != null) {\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    } // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form. It might not even be in the\n    // document. Let's just use the local `querySelectorAll` to ensure we don't\n    // miss anything.\n\n\n    {\n      checkAttributeStringCoercion(name, 'name');\n    }\n\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      } // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n\n\n      var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n      if (!otherProps) {\n        throw new Error('ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.');\n      } // We need update the tracked value on the named cousin since the value\n      // was changed but the input saw no event or value set\n\n\n      updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n\n      updateWrapper(otherNode, otherProps);\n    }\n  }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n  if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n  type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n    if (value == null) {\n      node.defaultValue = toString(node._wrapperState.initialValue);\n    } else if (node.defaultValue !== toString(value)) {\n      node.defaultValue = toString(value);\n    }\n  }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\nvar didWarnInvalidInnerHTML = false;\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\nfunction validateProps(element, props) {\n  {\n    // If a value is not provided, then the children must be simple.\n    if (props.value == null) {\n      if (typeof props.children === 'object' && props.children !== null) {\n        React.Children.forEach(props.children, function (child) {\n          if (child == null) {\n            return;\n          }\n\n          if (typeof child === 'string' || typeof child === 'number') {\n            return;\n          }\n\n          if (!didWarnInvalidChild) {\n            didWarnInvalidChild = true;\n\n            error('Cannot infer the option value of complex children. ' + 'Pass a `value` prop or use a plain string as children to <option>.');\n          }\n        });\n      } else if (props.dangerouslySetInnerHTML != null) {\n        if (!didWarnInvalidInnerHTML) {\n          didWarnInvalidInnerHTML = true;\n\n          error('Pass a `value` prop if you set dangerouslyInnerHTML so React knows ' + 'which value should be selected.');\n        }\n      }\n    } // TODO: Remove support for `selected` in <option>.\n\n\n    if (props.selected != null && !didWarnSelectedSetOnOption) {\n      error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n      didWarnSelectedSetOnOption = true;\n    }\n  }\n}\nfunction postMountWrapper$1(element, props) {\n  // value=\"\" should make a value attribute (#6219)\n  if (props.value != null) {\n    element.setAttribute('value', toString(getToStringValue(props.value)));\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n  didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n  if (ownerName) {\n    return '\\n\\nCheck the render method of `' + ownerName + '`.';\n  }\n\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n/**\n * Validation function for `value` and `defaultValue`.\n */\n\nfunction checkSelectPropTypes(props) {\n  {\n    checkControlledValueProps('select', props);\n\n    for (var i = 0; i < valuePropNames.length; i++) {\n      var propName = valuePropNames[i];\n\n      if (props[propName] == null) {\n        continue;\n      }\n\n      var propNameIsArray = isArray(props[propName]);\n\n      if (props.multiple && !propNameIsArray) {\n        error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n      } else if (!props.multiple && propNameIsArray) {\n        error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n      }\n    }\n  }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n  var options = node.options;\n\n  if (multiple) {\n    var selectedValues = propValue;\n    var selectedValue = {};\n\n    for (var i = 0; i < selectedValues.length; i++) {\n      // Prefix to avoid chaos with special keys.\n      selectedValue['$' + selectedValues[i]] = true;\n    }\n\n    for (var _i = 0; _i < options.length; _i++) {\n      var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n      if (options[_i].selected !== selected) {\n        options[_i].selected = selected;\n      }\n\n      if (selected && setDefaultSelected) {\n        options[_i].defaultSelected = true;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    var _selectedValue = toString(getToStringValue(propValue));\n\n    var defaultSelected = null;\n\n    for (var _i2 = 0; _i2 < options.length; _i2++) {\n      if (options[_i2].value === _selectedValue) {\n        options[_i2].selected = true;\n\n        if (setDefaultSelected) {\n          options[_i2].defaultSelected = true;\n        }\n\n        return;\n      }\n\n      if (defaultSelected === null && !options[_i2].disabled) {\n        defaultSelected = options[_i2];\n      }\n    }\n\n    if (defaultSelected !== null) {\n      defaultSelected.selected = true;\n    }\n  }\n}\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\n\nfunction getHostProps$1(element, props) {\n  return assign({}, props, {\n    value: undefined\n  });\n}\nfunction initWrapperState$1(element, props) {\n  var node = element;\n\n  {\n    checkSelectPropTypes(props);\n  }\n\n  node._wrapperState = {\n    wasMultiple: !!props.multiple\n  };\n\n  {\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n      error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components');\n\n      didWarnValueDefaultValue$1 = true;\n    }\n  }\n}\nfunction postMountWrapper$2(element, props) {\n  var node = element;\n  node.multiple = !!props.multiple;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (props.defaultValue != null) {\n    updateOptions(node, !!props.multiple, props.defaultValue, true);\n  }\n}\nfunction postUpdateWrapper(element, props) {\n  var node = element;\n  var wasMultiple = node._wrapperState.wasMultiple;\n  node._wrapperState.wasMultiple = !!props.multiple;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (wasMultiple !== !!props.multiple) {\n    // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n    if (props.defaultValue != null) {\n      updateOptions(node, !!props.multiple, props.defaultValue, true);\n    } else {\n      // Revert the select back to its default unselected state.\n      updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n    }\n  }\n}\nfunction restoreControlledState$1(element, props) {\n  var node = element;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nfunction getHostProps$2(element, props) {\n  var node = element;\n\n  if (props.dangerouslySetInnerHTML != null) {\n    throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');\n  } // Always set children to the same thing. In IE9, the selection range will\n  // get reset if `textContent` is mutated.  We could add a check in setTextContent\n  // to only set the value if/when the value differs from the node value (which would\n  // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n  // solution. The value can be a boolean or object so that's why it's forced\n  // to be a string.\n\n\n  var hostProps = assign({}, props, {\n    value: undefined,\n    defaultValue: undefined,\n    children: toString(node._wrapperState.initialValue)\n  });\n\n  return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n  var node = element;\n\n  {\n    checkControlledValueProps('textarea', props);\n\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n      error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n      didWarnValDefaultVal = true;\n    }\n  }\n\n  var initialValue = props.value; // Only bother fetching default value if we're going to use it\n\n  if (initialValue == null) {\n    var children = props.children,\n        defaultValue = props.defaultValue;\n\n    if (children != null) {\n      {\n        error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n      }\n\n      {\n        if (defaultValue != null) {\n          throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');\n        }\n\n        if (isArray(children)) {\n          if (children.length > 1) {\n            throw new Error('<textarea> can only have at most one child.');\n          }\n\n          children = children[0];\n        }\n\n        defaultValue = children;\n      }\n    }\n\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n\n    initialValue = defaultValue;\n  }\n\n  node._wrapperState = {\n    initialValue: getToStringValue(initialValue)\n  };\n}\nfunction updateWrapper$1(element, props) {\n  var node = element;\n  var value = getToStringValue(props.value);\n  var defaultValue = getToStringValue(props.defaultValue);\n\n  if (value != null) {\n    // Cast `value` to a string to ensure the value is set correctly. While\n    // browsers typically do this as necessary, jsdom doesn't.\n    var newValue = toString(value); // To avoid side effects (such as losing text selection), only set value if changed\n\n    if (newValue !== node.value) {\n      node.value = newValue;\n    }\n\n    if (props.defaultValue == null && node.defaultValue !== newValue) {\n      node.defaultValue = newValue;\n    }\n  }\n\n  if (defaultValue != null) {\n    node.defaultValue = toString(defaultValue);\n  }\n}\nfunction postMountWrapper$3(element, props) {\n  var node = element; // This is in postMount because we need access to the DOM node, which is not\n  // available until after the component has mounted.\n\n  var textContent = node.textContent; // Only set node.value if textContent is equal to the expected\n  // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n  // will populate textContent as well.\n  // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n\n  if (textContent === node._wrapperState.initialValue) {\n    if (textContent !== '' && textContent !== null) {\n      node.value = textContent;\n    }\n  }\n}\nfunction restoreControlledState$2(element, props) {\n  // DOM component is still mounted; update\n  updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; // Assumes there is no parent namespace.\n\nfunction getIntrinsicNamespace(type) {\n  switch (type) {\n    case 'svg':\n      return SVG_NAMESPACE;\n\n    case 'math':\n      return MATH_NAMESPACE;\n\n    default:\n      return HTML_NAMESPACE;\n  }\n}\nfunction getChildNamespace(parentNamespace, type) {\n  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n    // No (or default) parent namespace: potential entry point.\n    return getIntrinsicNamespace(type);\n  }\n\n  if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n    // We're leaving SVG.\n    return HTML_NAMESPACE;\n  } // By default, pass namespace below.\n\n\n  return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n    return function (arg0, arg1, arg2, arg3) {\n      MSApp.execUnsafeLocalFunction(function () {\n        return func(arg0, arg1, arg2, arg3);\n      });\n    };\n  } else {\n    return func;\n  }\n};\n\nvar reusableSVGContainer;\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n  if (node.namespaceURI === SVG_NAMESPACE) {\n\n    if (!('innerHTML' in node)) {\n      // IE does not have innerHTML for SVG nodes, so instead we inject the\n      // new markup in a temp node and then move the child nodes across into\n      // the target node\n      reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n      reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n      var svgNode = reusableSVGContainer.firstChild;\n\n      while (node.firstChild) {\n        node.removeChild(node.firstChild);\n      }\n\n      while (svgNode.firstChild) {\n        node.appendChild(svgNode.firstChild);\n      }\n\n      return;\n    }\n  }\n\n  node.innerHTML = html;\n});\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\n\nvar setTextContent = function (node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n\n    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n\n  node.textContent = text;\n};\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n  animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n  background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n  backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n  border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n  borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n  borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n  borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n  borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n  borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n  borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n  borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n  borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n  borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n  borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n  borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n  columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n  columns: ['columnCount', 'columnWidth'],\n  flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n  flexFlow: ['flexDirection', 'flexWrap'],\n  font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n  fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n  gap: ['columnGap', 'rowGap'],\n  grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n  gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n  gridColumnGap: ['columnGap'],\n  gridGap: ['columnGap', 'rowGap'],\n  gridRow: ['gridRowEnd', 'gridRowStart'],\n  gridRowGap: ['rowGap'],\n  gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n  margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n  marker: ['markerEnd', 'markerMid', 'markerStart'],\n  mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n  maskPosition: ['maskPositionX', 'maskPositionY'],\n  outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n  overflow: ['overflowX', 'overflowY'],\n  padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n  placeContent: ['alignContent', 'justifyContent'],\n  placeItems: ['alignItems', 'justifyItems'],\n  placeSelf: ['alignSelf', 'justifySelf'],\n  textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n  textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n  transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n  wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  aspectRatio: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  columns: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridArea: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n  if (isEmpty) {\n    return '';\n  }\n\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n  }\n\n  {\n    checkCSSPropertyStringCoercion(value, name);\n  }\n\n  return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\n\nfunction hyphenateStyleName(name) {\n  return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n  var msPattern$1 = /^-ms-/;\n  var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n  var warnedForNaNValue = false;\n  var warnedForInfinityValue = false;\n\n  var camelize = function (string) {\n    return string.replace(hyphenPattern, function (_, character) {\n      return character.toUpperCase();\n    });\n  };\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n\n    error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests\n    // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n    // is converted to lowercase `ms`.\n    camelize(name.replace(msPattern$1, 'ms-')));\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n\n    error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n\n    error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n  };\n\n  var warnStyleValueIsNaN = function (name, value) {\n    if (warnedForNaNValue) {\n      return;\n    }\n\n    warnedForNaNValue = true;\n\n    error('`NaN` is an invalid value for the `%s` css style property.', name);\n  };\n\n  var warnStyleValueIsInfinity = function (name, value) {\n    if (warnedForInfinityValue) {\n      return;\n    }\n\n    warnedForInfinityValue = true;\n\n    error('`Infinity` is an invalid value for the `%s` css style property.', name);\n  };\n\n  warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n\n    if (typeof value === 'number') {\n      if (isNaN(value)) {\n        warnStyleValueIsNaN(name, value);\n      } else if (!isFinite(value)) {\n        warnStyleValueIsInfinity(name, value);\n      }\n    }\n  };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\n\nfunction createDangerousStringForStyles(styles) {\n  {\n    var serialized = '';\n    var delimiter = '';\n\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n\n      var styleValue = styles[styleName];\n\n      if (styleValue != null) {\n        var isCustomProperty = styleName.indexOf('--') === 0;\n        serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n        delimiter = ';';\n      }\n    }\n\n    return serialized || null;\n  }\n}\n/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n  var style = node.style;\n\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n\n    var isCustomProperty = styleName.indexOf('--') === 0;\n\n    {\n      if (!isCustomProperty) {\n        warnValidStyle$1(styleName, styles[styleName]);\n      }\n    }\n\n    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n    if (styleName === 'float') {\n      styleName = 'cssFloat';\n    }\n\n    if (isCustomProperty) {\n      style.setProperty(styleName, styleValue);\n    } else {\n      style[styleName] = styleValue;\n    }\n  }\n}\n\nfunction isValueEmpty(value) {\n  return value == null || typeof value === 'boolean' || value === '';\n}\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n *   color: 'color',\n *   overflowX: 'overflow',\n *   overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\n\n\nfunction expandShorthandMap(styles) {\n  var expanded = {};\n\n  for (var key in styles) {\n    var longhands = shorthandToLonghand[key] || [key];\n\n    for (var i = 0; i < longhands.length; i++) {\n      expanded[longhands[i]] = key;\n    }\n  }\n\n  return expanded;\n}\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n *   becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n *   {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n *   becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n *   becomes .style.fontVariant = ''\n */\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n  {\n    if (!nextStyles) {\n      return;\n    }\n\n    var expandedUpdates = expandShorthandMap(styleUpdates);\n    var expandedStyles = expandShorthandMap(nextStyles);\n    var warnedAbout = {};\n\n    for (var key in expandedUpdates) {\n      var originalKey = expandedUpdates[key];\n      var correctOriginalKey = expandedStyles[key];\n\n      if (correctOriginalKey && originalKey !== correctOriginalKey) {\n        var warningKey = originalKey + ',' + correctOriginalKey;\n\n        if (warnedAbout[warningKey]) {\n          continue;\n        }\n\n        warnedAbout[warningKey] = true;\n\n        error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n      }\n    }\n  }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a list for\n// those special-case tags.\nvar omittedCloseTags = {\n  area: true,\n  base: true,\n  br: true,\n  col: true,\n  embed: true,\n  hr: true,\n  img: true,\n  input: true,\n  keygen: true,\n  link: true,\n  meta: true,\n  param: true,\n  source: true,\n  track: true,\n  wbr: true // NOTE: menuitem's close tag should be omitted, but that causes problems.\n\n};\n\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = assign({\n  menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\n\nfunction assertValidProps(tag, props) {\n  if (!props) {\n    return;\n  } // Note the use of `==` which checks for null or undefined.\n\n\n  if (voidElementTags[tag]) {\n    if (props.children != null || props.dangerouslySetInnerHTML != null) {\n      throw new Error(tag + \" is a void element tag and must neither have `children` nor \" + 'use `dangerouslySetInnerHTML`.');\n    }\n  }\n\n  if (props.dangerouslySetInnerHTML != null) {\n    if (props.children != null) {\n      throw new Error('Can only set one of `children` or `props.dangerouslySetInnerHTML`.');\n    }\n\n    if (typeof props.dangerouslySetInnerHTML !== 'object' || !(HTML in props.dangerouslySetInnerHTML)) {\n      throw new Error('`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://reactjs.org/link/dangerously-set-inner-html ' + 'for more information.');\n    }\n  }\n\n  {\n    if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n      error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n    }\n  }\n\n  if (props.style != null && typeof props.style !== 'object') {\n    throw new Error('The `style` prop expects a mapping from style properties to values, ' + \"not a string. For example, style={{marginRight: spacing + 'em'}} when \" + 'using JSX.');\n  }\n}\n\nfunction isCustomComponent(tagName, props) {\n  if (tagName.indexOf('-') === -1) {\n    return typeof props.is === 'string';\n  }\n\n  switch (tagName) {\n    // These are reserved SVG and MathML elements.\n    // We don't mind this list too much because we expect it to never grow.\n    // The alternative is to track the namespace in a few places which is convoluted.\n    // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n    case 'annotation-xml':\n    case 'color-profile':\n    case 'font-face':\n    case 'font-face-src':\n    case 'font-face-uri':\n    case 'font-face-format':\n    case 'font-face-name':\n    case 'missing-glyph':\n      return false;\n\n    default:\n      return true;\n  }\n}\n\n// When adding attributes to the HTML or SVG allowed attribute list, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n  // HTML\n  accept: 'accept',\n  acceptcharset: 'acceptCharset',\n  'accept-charset': 'acceptCharset',\n  accesskey: 'accessKey',\n  action: 'action',\n  allowfullscreen: 'allowFullScreen',\n  alt: 'alt',\n  as: 'as',\n  async: 'async',\n  autocapitalize: 'autoCapitalize',\n  autocomplete: 'autoComplete',\n  autocorrect: 'autoCorrect',\n  autofocus: 'autoFocus',\n  autoplay: 'autoPlay',\n  autosave: 'autoSave',\n  capture: 'capture',\n  cellpadding: 'cellPadding',\n  cellspacing: 'cellSpacing',\n  challenge: 'challenge',\n  charset: 'charSet',\n  checked: 'checked',\n  children: 'children',\n  cite: 'cite',\n  class: 'className',\n  classid: 'classID',\n  classname: 'className',\n  cols: 'cols',\n  colspan: 'colSpan',\n  content: 'content',\n  contenteditable: 'contentEditable',\n  contextmenu: 'contextMenu',\n  controls: 'controls',\n  controlslist: 'controlsList',\n  coords: 'coords',\n  crossorigin: 'crossOrigin',\n  dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n  data: 'data',\n  datetime: 'dateTime',\n  default: 'default',\n  defaultchecked: 'defaultChecked',\n  defaultvalue: 'defaultValue',\n  defer: 'defer',\n  dir: 'dir',\n  disabled: 'disabled',\n  disablepictureinpicture: 'disablePictureInPicture',\n  disableremoteplayback: 'disableRemotePlayback',\n  download: 'download',\n  draggable: 'draggable',\n  enctype: 'encType',\n  enterkeyhint: 'enterKeyHint',\n  for: 'htmlFor',\n  form: 'form',\n  formmethod: 'formMethod',\n  formaction: 'formAction',\n  formenctype: 'formEncType',\n  formnovalidate: 'formNoValidate',\n  formtarget: 'formTarget',\n  frameborder: 'frameBorder',\n  headers: 'headers',\n  height: 'height',\n  hidden: 'hidden',\n  high: 'high',\n  href: 'href',\n  hreflang: 'hrefLang',\n  htmlfor: 'htmlFor',\n  httpequiv: 'httpEquiv',\n  'http-equiv': 'httpEquiv',\n  icon: 'icon',\n  id: 'id',\n  imagesizes: 'imageSizes',\n  imagesrcset: 'imageSrcSet',\n  innerhtml: 'innerHTML',\n  inputmode: 'inputMode',\n  integrity: 'integrity',\n  is: 'is',\n  itemid: 'itemID',\n  itemprop: 'itemProp',\n  itemref: 'itemRef',\n  itemscope: 'itemScope',\n  itemtype: 'itemType',\n  keyparams: 'keyParams',\n  keytype: 'keyType',\n  kind: 'kind',\n  label: 'label',\n  lang: 'lang',\n  list: 'list',\n  loop: 'loop',\n  low: 'low',\n  manifest: 'manifest',\n  marginwidth: 'marginWidth',\n  marginheight: 'marginHeight',\n  max: 'max',\n  maxlength: 'maxLength',\n  media: 'media',\n  mediagroup: 'mediaGroup',\n  method: 'method',\n  min: 'min',\n  minlength: 'minLength',\n  multiple: 'multiple',\n  muted: 'muted',\n  name: 'name',\n  nomodule: 'noModule',\n  nonce: 'nonce',\n  novalidate: 'noValidate',\n  open: 'open',\n  optimum: 'optimum',\n  pattern: 'pattern',\n  placeholder: 'placeholder',\n  playsinline: 'playsInline',\n  poster: 'poster',\n  preload: 'preload',\n  profile: 'profile',\n  radiogroup: 'radioGroup',\n  readonly: 'readOnly',\n  referrerpolicy: 'referrerPolicy',\n  rel: 'rel',\n  required: 'required',\n  reversed: 'reversed',\n  role: 'role',\n  rows: 'rows',\n  rowspan: 'rowSpan',\n  sandbox: 'sandbox',\n  scope: 'scope',\n  scoped: 'scoped',\n  scrolling: 'scrolling',\n  seamless: 'seamless',\n  selected: 'selected',\n  shape: 'shape',\n  size: 'size',\n  sizes: 'sizes',\n  span: 'span',\n  spellcheck: 'spellCheck',\n  src: 'src',\n  srcdoc: 'srcDoc',\n  srclang: 'srcLang',\n  srcset: 'srcSet',\n  start: 'start',\n  step: 'step',\n  style: 'style',\n  summary: 'summary',\n  tabindex: 'tabIndex',\n  target: 'target',\n  title: 'title',\n  type: 'type',\n  usemap: 'useMap',\n  value: 'value',\n  width: 'width',\n  wmode: 'wmode',\n  wrap: 'wrap',\n  // SVG\n  about: 'about',\n  accentheight: 'accentHeight',\n  'accent-height': 'accentHeight',\n  accumulate: 'accumulate',\n  additive: 'additive',\n  alignmentbaseline: 'alignmentBaseline',\n  'alignment-baseline': 'alignmentBaseline',\n  allowreorder: 'allowReorder',\n  alphabetic: 'alphabetic',\n  amplitude: 'amplitude',\n  arabicform: 'arabicForm',\n  'arabic-form': 'arabicForm',\n  ascent: 'ascent',\n  attributename: 'attributeName',\n  attributetype: 'attributeType',\n  autoreverse: 'autoReverse',\n  azimuth: 'azimuth',\n  basefrequency: 'baseFrequency',\n  baselineshift: 'baselineShift',\n  'baseline-shift': 'baselineShift',\n  baseprofile: 'baseProfile',\n  bbox: 'bbox',\n  begin: 'begin',\n  bias: 'bias',\n  by: 'by',\n  calcmode: 'calcMode',\n  capheight: 'capHeight',\n  'cap-height': 'capHeight',\n  clip: 'clip',\n  clippath: 'clipPath',\n  'clip-path': 'clipPath',\n  clippathunits: 'clipPathUnits',\n  cliprule: 'clipRule',\n  'clip-rule': 'clipRule',\n  color: 'color',\n  colorinterpolation: 'colorInterpolation',\n  'color-interpolation': 'colorInterpolation',\n  colorinterpolationfilters: 'colorInterpolationFilters',\n  'color-interpolation-filters': 'colorInterpolationFilters',\n  colorprofile: 'colorProfile',\n  'color-profile': 'colorProfile',\n  colorrendering: 'colorRendering',\n  'color-rendering': 'colorRendering',\n  contentscripttype: 'contentScriptType',\n  contentstyletype: 'contentStyleType',\n  cursor: 'cursor',\n  cx: 'cx',\n  cy: 'cy',\n  d: 'd',\n  datatype: 'datatype',\n  decelerate: 'decelerate',\n  descent: 'descent',\n  diffuseconstant: 'diffuseConstant',\n  direction: 'direction',\n  display: 'display',\n  divisor: 'divisor',\n  dominantbaseline: 'dominantBaseline',\n  'dominant-baseline': 'dominantBaseline',\n  dur: 'dur',\n  dx: 'dx',\n  dy: 'dy',\n  edgemode: 'edgeMode',\n  elevation: 'elevation',\n  enablebackground: 'enableBackground',\n  'enable-background': 'enableBackground',\n  end: 'end',\n  exponent: 'exponent',\n  externalresourcesrequired: 'externalResourcesRequired',\n  fill: 'fill',\n  fillopacity: 'fillOpacity',\n  'fill-opacity': 'fillOpacity',\n  fillrule: 'fillRule',\n  'fill-rule': 'fillRule',\n  filter: 'filter',\n  filterres: 'filterRes',\n  filterunits: 'filterUnits',\n  floodopacity: 'floodOpacity',\n  'flood-opacity': 'floodOpacity',\n  floodcolor: 'floodColor',\n  'flood-color': 'floodColor',\n  focusable: 'focusable',\n  fontfamily: 'fontFamily',\n  'font-family': 'fontFamily',\n  fontsize: 'fontSize',\n  'font-size': 'fontSize',\n  fontsizeadjust: 'fontSizeAdjust',\n  'font-size-adjust': 'fontSizeAdjust',\n  fontstretch: 'fontStretch',\n  'font-stretch': 'fontStretch',\n  fontstyle: 'fontStyle',\n  'font-style': 'fontStyle',\n  fontvariant: 'fontVariant',\n  'font-variant': 'fontVariant',\n  fontweight: 'fontWeight',\n  'font-weight': 'fontWeight',\n  format: 'format',\n  from: 'from',\n  fx: 'fx',\n  fy: 'fy',\n  g1: 'g1',\n  g2: 'g2',\n  glyphname: 'glyphName',\n  'glyph-name': 'glyphName',\n  glyphorientationhorizontal: 'glyphOrientationHorizontal',\n  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n  glyphorientationvertical: 'glyphOrientationVertical',\n  'glyph-orientation-vertical': 'glyphOrientationVertical',\n  glyphref: 'glyphRef',\n  gradienttransform: 'gradientTransform',\n  gradientunits: 'gradientUnits',\n  hanging: 'hanging',\n  horizadvx: 'horizAdvX',\n  'horiz-adv-x': 'horizAdvX',\n  horizoriginx: 'horizOriginX',\n  'horiz-origin-x': 'horizOriginX',\n  ideographic: 'ideographic',\n  imagerendering: 'imageRendering',\n  'image-rendering': 'imageRendering',\n  in2: 'in2',\n  in: 'in',\n  inlist: 'inlist',\n  intercept: 'intercept',\n  k1: 'k1',\n  k2: 'k2',\n  k3: 'k3',\n  k4: 'k4',\n  k: 'k',\n  kernelmatrix: 'kernelMatrix',\n  kernelunitlength: 'kernelUnitLength',\n  kerning: 'kerning',\n  keypoints: 'keyPoints',\n  keysplines: 'keySplines',\n  keytimes: 'keyTimes',\n  lengthadjust: 'lengthAdjust',\n  letterspacing: 'letterSpacing',\n  'letter-spacing': 'letterSpacing',\n  lightingcolor: 'lightingColor',\n  'lighting-color': 'lightingColor',\n  limitingconeangle: 'limitingConeAngle',\n  local: 'local',\n  markerend: 'markerEnd',\n  'marker-end': 'markerEnd',\n  markerheight: 'markerHeight',\n  markermid: 'markerMid',\n  'marker-mid': 'markerMid',\n  markerstart: 'markerStart',\n  'marker-start': 'markerStart',\n  markerunits: 'markerUnits',\n  markerwidth: 'markerWidth',\n  mask: 'mask',\n  maskcontentunits: 'maskContentUnits',\n  maskunits: 'maskUnits',\n  mathematical: 'mathematical',\n  mode: 'mode',\n  numoctaves: 'numOctaves',\n  offset: 'offset',\n  opacity: 'opacity',\n  operator: 'operator',\n  order: 'order',\n  orient: 'orient',\n  orientation: 'orientation',\n  origin: 'origin',\n  overflow: 'overflow',\n  overlineposition: 'overlinePosition',\n  'overline-position': 'overlinePosition',\n  overlinethickness: 'overlineThickness',\n  'overline-thickness': 'overlineThickness',\n  paintorder: 'paintOrder',\n  'paint-order': 'paintOrder',\n  panose1: 'panose1',\n  'panose-1': 'panose1',\n  pathlength: 'pathLength',\n  patterncontentunits: 'patternContentUnits',\n  patterntransform: 'patternTransform',\n  patternunits: 'patternUnits',\n  pointerevents: 'pointerEvents',\n  'pointer-events': 'pointerEvents',\n  points: 'points',\n  pointsatx: 'pointsAtX',\n  pointsaty: 'pointsAtY',\n  pointsatz: 'pointsAtZ',\n  prefix: 'prefix',\n  preservealpha: 'preserveAlpha',\n  preserveaspectratio: 'preserveAspectRatio',\n  primitiveunits: 'primitiveUnits',\n  property: 'property',\n  r: 'r',\n  radius: 'radius',\n  refx: 'refX',\n  refy: 'refY',\n  renderingintent: 'renderingIntent',\n  'rendering-intent': 'renderingIntent',\n  repeatcount: 'repeatCount',\n  repeatdur: 'repeatDur',\n  requiredextensions: 'requiredExtensions',\n  requiredfeatures: 'requiredFeatures',\n  resource: 'resource',\n  restart: 'restart',\n  result: 'result',\n  results: 'results',\n  rotate: 'rotate',\n  rx: 'rx',\n  ry: 'ry',\n  scale: 'scale',\n  security: 'security',\n  seed: 'seed',\n  shaperendering: 'shapeRendering',\n  'shape-rendering': 'shapeRendering',\n  slope: 'slope',\n  spacing: 'spacing',\n  specularconstant: 'specularConstant',\n  specularexponent: 'specularExponent',\n  speed: 'speed',\n  spreadmethod: 'spreadMethod',\n  startoffset: 'startOffset',\n  stddeviation: 'stdDeviation',\n  stemh: 'stemh',\n  stemv: 'stemv',\n  stitchtiles: 'stitchTiles',\n  stopcolor: 'stopColor',\n  'stop-color': 'stopColor',\n  stopopacity: 'stopOpacity',\n  'stop-opacity': 'stopOpacity',\n  strikethroughposition: 'strikethroughPosition',\n  'strikethrough-position': 'strikethroughPosition',\n  strikethroughthickness: 'strikethroughThickness',\n  'strikethrough-thickness': 'strikethroughThickness',\n  string: 'string',\n  stroke: 'stroke',\n  strokedasharray: 'strokeDasharray',\n  'stroke-dasharray': 'strokeDasharray',\n  strokedashoffset: 'strokeDashoffset',\n  'stroke-dashoffset': 'strokeDashoffset',\n  strokelinecap: 'strokeLinecap',\n  'stroke-linecap': 'strokeLinecap',\n  strokelinejoin: 'strokeLinejoin',\n  'stroke-linejoin': 'strokeLinejoin',\n  strokemiterlimit: 'strokeMiterlimit',\n  'stroke-miterlimit': 'strokeMiterlimit',\n  strokewidth: 'strokeWidth',\n  'stroke-width': 'strokeWidth',\n  strokeopacity: 'strokeOpacity',\n  'stroke-opacity': 'strokeOpacity',\n  suppresscontenteditablewarning: 'suppressContentEditableWarning',\n  suppresshydrationwarning: 'suppressHydrationWarning',\n  surfacescale: 'surfaceScale',\n  systemlanguage: 'systemLanguage',\n  tablevalues: 'tableValues',\n  targetx: 'targetX',\n  targety: 'targetY',\n  textanchor: 'textAnchor',\n  'text-anchor': 'textAnchor',\n  textdecoration: 'textDecoration',\n  'text-decoration': 'textDecoration',\n  textlength: 'textLength',\n  textrendering: 'textRendering',\n  'text-rendering': 'textRendering',\n  to: 'to',\n  transform: 'transform',\n  typeof: 'typeof',\n  u1: 'u1',\n  u2: 'u2',\n  underlineposition: 'underlinePosition',\n  'underline-position': 'underlinePosition',\n  underlinethickness: 'underlineThickness',\n  'underline-thickness': 'underlineThickness',\n  unicode: 'unicode',\n  unicodebidi: 'unicodeBidi',\n  'unicode-bidi': 'unicodeBidi',\n  unicoderange: 'unicodeRange',\n  'unicode-range': 'unicodeRange',\n  unitsperem: 'unitsPerEm',\n  'units-per-em': 'unitsPerEm',\n  unselectable: 'unselectable',\n  valphabetic: 'vAlphabetic',\n  'v-alphabetic': 'vAlphabetic',\n  values: 'values',\n  vectoreffect: 'vectorEffect',\n  'vector-effect': 'vectorEffect',\n  version: 'version',\n  vertadvy: 'vertAdvY',\n  'vert-adv-y': 'vertAdvY',\n  vertoriginx: 'vertOriginX',\n  'vert-origin-x': 'vertOriginX',\n  vertoriginy: 'vertOriginY',\n  'vert-origin-y': 'vertOriginY',\n  vhanging: 'vHanging',\n  'v-hanging': 'vHanging',\n  videographic: 'vIdeographic',\n  'v-ideographic': 'vIdeographic',\n  viewbox: 'viewBox',\n  viewtarget: 'viewTarget',\n  visibility: 'visibility',\n  vmathematical: 'vMathematical',\n  'v-mathematical': 'vMathematical',\n  vocab: 'vocab',\n  widths: 'widths',\n  wordspacing: 'wordSpacing',\n  'word-spacing': 'wordSpacing',\n  writingmode: 'writingMode',\n  'writing-mode': 'writingMode',\n  x1: 'x1',\n  x2: 'x2',\n  x: 'x',\n  xchannelselector: 'xChannelSelector',\n  xheight: 'xHeight',\n  'x-height': 'xHeight',\n  xlinkactuate: 'xlinkActuate',\n  'xlink:actuate': 'xlinkActuate',\n  xlinkarcrole: 'xlinkArcrole',\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkhref: 'xlinkHref',\n  'xlink:href': 'xlinkHref',\n  xlinkrole: 'xlinkRole',\n  'xlink:role': 'xlinkRole',\n  xlinkshow: 'xlinkShow',\n  'xlink:show': 'xlinkShow',\n  xlinktitle: 'xlinkTitle',\n  'xlink:title': 'xlinkTitle',\n  xlinktype: 'xlinkType',\n  'xlink:type': 'xlinkType',\n  xmlbase: 'xmlBase',\n  'xml:base': 'xmlBase',\n  xmllang: 'xmlLang',\n  'xml:lang': 'xmlLang',\n  xmlns: 'xmlns',\n  'xml:space': 'xmlSpace',\n  xmlnsxlink: 'xmlnsXlink',\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlspace: 'xmlSpace',\n  y1: 'y1',\n  y2: 'y2',\n  y: 'y',\n  ychannelselector: 'yChannelSelector',\n  z: 'z',\n  zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n  'aria-current': 0,\n  // state\n  'aria-description': 0,\n  'aria-details': 0,\n  'aria-disabled': 0,\n  // state\n  'aria-hidden': 0,\n  // state\n  'aria-invalid': 0,\n  // state\n  'aria-keyshortcuts': 0,\n  'aria-label': 0,\n  'aria-roledescription': 0,\n  // Widget Attributes\n  'aria-autocomplete': 0,\n  'aria-checked': 0,\n  'aria-expanded': 0,\n  'aria-haspopup': 0,\n  'aria-level': 0,\n  'aria-modal': 0,\n  'aria-multiline': 0,\n  'aria-multiselectable': 0,\n  'aria-orientation': 0,\n  'aria-placeholder': 0,\n  'aria-pressed': 0,\n  'aria-readonly': 0,\n  'aria-required': 0,\n  'aria-selected': 0,\n  'aria-sort': 0,\n  'aria-valuemax': 0,\n  'aria-valuemin': 0,\n  'aria-valuenow': 0,\n  'aria-valuetext': 0,\n  // Live Region Attributes\n  'aria-atomic': 0,\n  'aria-busy': 0,\n  'aria-live': 0,\n  'aria-relevant': 0,\n  // Drag-and-Drop Attributes\n  'aria-dropeffect': 0,\n  'aria-grabbed': 0,\n  // Relationship Attributes\n  'aria-activedescendant': 0,\n  'aria-colcount': 0,\n  'aria-colindex': 0,\n  'aria-colspan': 0,\n  'aria-controls': 0,\n  'aria-describedby': 0,\n  'aria-errormessage': 0,\n  'aria-flowto': 0,\n  'aria-labelledby': 0,\n  'aria-owns': 0,\n  'aria-posinset': 0,\n  'aria-rowcount': 0,\n  'aria-rowindex': 0,\n  'aria-rowspan': 0,\n  'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nfunction validateProperty(tagName, name) {\n  {\n    if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {\n      return true;\n    }\n\n    if (rARIACamel.test(name)) {\n      var ariaName = 'aria-' + name.slice(4).toLowerCase();\n      var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n      // DOM properties, then it is an invalid aria-* attribute.\n\n      if (correctName == null) {\n        error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n        warnedProperties[name] = true;\n        return true;\n      } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n      if (name !== correctName) {\n        error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n        warnedProperties[name] = true;\n        return true;\n      }\n    }\n\n    if (rARIA.test(name)) {\n      var lowerCasedName = name.toLowerCase();\n      var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n      // DOM properties, then it is an invalid aria-* attribute.\n\n      if (standardName == null) {\n        warnedProperties[name] = true;\n        return false;\n      } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n      if (name !== standardName) {\n        error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n        warnedProperties[name] = true;\n        return true;\n      }\n    }\n  }\n\n  return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n  {\n    var invalidProps = [];\n\n    for (var key in props) {\n      var isValid = validateProperty(type, key);\n\n      if (!isValid) {\n        invalidProps.push(key);\n      }\n    }\n\n    var unknownPropString = invalidProps.map(function (prop) {\n      return '`' + prop + '`';\n    }).join(', ');\n\n    if (invalidProps.length === 1) {\n      error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n    } else if (invalidProps.length > 1) {\n      error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n    }\n  }\n}\n\nfunction validateProperties(type, props) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n\n  warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n  {\n    if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n      return;\n    }\n\n    if (props != null && props.value === null && !didWarnValueNull) {\n      didWarnValueNull = true;\n\n      if (type === 'select' && props.multiple) {\n        error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n      } else {\n        error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n      }\n    }\n  }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n  var warnedProperties$1 = {};\n  var EVENT_NAME_REGEX = /^on./;\n  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n  validateProperty$1 = function (tagName, name, value, eventRegistry) {\n    if (hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n      return true;\n    }\n\n    var lowerCasedName = name.toLowerCase();\n\n    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n      error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // We can't rely on the event system being injected on the server.\n\n\n    if (eventRegistry != null) {\n      var registrationNameDependencies = eventRegistry.registrationNameDependencies,\n          possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n\n      if (registrationNameDependencies.hasOwnProperty(name)) {\n        return true;\n      }\n\n      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n      if (registrationName != null) {\n        error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n\n      if (EVENT_NAME_REGEX.test(name)) {\n        error('Unknown event handler property `%s`. It will be ignored.', name);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (EVENT_NAME_REGEX.test(name)) {\n      // If no event plugins have been injected, we are in a server environment.\n      // So we can't tell if the event name is correct for sure, but we can filter\n      // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n      if (INVALID_EVENT_NAME_REGEX.test(name)) {\n        error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n      }\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // Let the ARIA attribute hook validate ARIA attributes\n\n\n    if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n      return true;\n    }\n\n    if (lowerCasedName === 'innerhtml') {\n      error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'aria') {\n      error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n      error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'number' && isNaN(value)) {\n      error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    var propertyInfo = getPropertyInfo(name);\n    var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config.\n\n    if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      var standardName = possibleStandardNames[lowerCasedName];\n\n      if (standardName !== name) {\n        error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (!isReserved && name !== lowerCasedName) {\n      // Unknown attributes should have lowercase casing since that's how they\n      // will be cased anyway with server rendering.\n      error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      if (value) {\n        error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n      } else {\n        error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n      }\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // Now that we've validated casing, do not validate\n    // data types for reserved props\n\n\n    if (isReserved) {\n      return true;\n    } // Warn when a known attribute is a bad type\n\n\n    if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      warnedProperties$1[name] = true;\n      return false;\n    } // Warn when passing the strings 'false' or 'true' into a boolean prop\n\n\n    if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n      error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    return true;\n  };\n}\n\nvar warnUnknownProperties = function (type, props, eventRegistry) {\n  {\n    var unknownProps = [];\n\n    for (var key in props) {\n      var isValid = validateProperty$1(type, key, props[key], eventRegistry);\n\n      if (!isValid) {\n        unknownProps.push(key);\n      }\n    }\n\n    var unknownPropString = unknownProps.map(function (prop) {\n      return '`' + prop + '`';\n    }).join(', ');\n\n    if (unknownProps.length === 1) {\n      error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n    } else if (unknownProps.length > 1) {\n      error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n    }\n  }\n};\n\nfunction validateProperties$2(type, props, eventRegistry) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n\n  warnUnknownProperties(type, props, eventRegistry);\n}\n\nvar IS_EVENT_HANDLE_NON_MANAGED_NODE = 1;\nvar IS_NON_DELEGATED = 1 << 1;\nvar IS_CAPTURE_PHASE = 1 << 2;\n// set to LEGACY_FB_SUPPORT. LEGACY_FB_SUPPORT only gets set when\n// we call willDeferLaterForLegacyFBSupport, thus not bailing out\n// will result in endless cycles like an infinite loop.\n// We also don't want to defer during event replaying.\n\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS = IS_EVENT_HANDLE_NON_MANAGED_NODE | IS_NON_DELEGATED | IS_CAPTURE_PHASE;\n\n// This exists to avoid circular dependency between ReactDOMEventReplaying\n// and DOMPluginEventSystem.\nvar currentReplayingEvent = null;\nfunction setReplayingEvent(event) {\n  {\n    if (currentReplayingEvent !== null) {\n      error('Expected currently replaying event to be null. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n    }\n  }\n\n  currentReplayingEvent = event;\n}\nfunction resetReplayingEvent() {\n  {\n    if (currentReplayingEvent === null) {\n      error('Expected currently replaying event to not be null. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n    }\n  }\n\n  currentReplayingEvent = null;\n}\nfunction isReplayingEvent(event) {\n  return event === currentReplayingEvent;\n}\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n  // Fallback to nativeEvent.srcElement for IE9\n  // https://github.com/facebook/react/issues/12506\n  var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG <use> element events #4963\n\n  if (target.correspondingUseElement) {\n    target = target.correspondingUseElement;\n  } // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n\n\n  return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n  // We perform this translation at the end of the event loop so that we\n  // always receive the correct fiber here\n  var internalInstance = getInstanceFromNode(target);\n\n  if (!internalInstance) {\n    // Unmounted\n    return;\n  }\n\n  if (typeof restoreImpl !== 'function') {\n    throw new Error('setRestoreImplementation() needs to be called to handle a target for controlled ' + 'events. This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n  if (stateNode) {\n    var _props = getFiberCurrentPropsFromNode(stateNode);\n\n    restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n  }\n}\n\nfunction setRestoreImplementation(impl) {\n  restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n  if (restoreTarget) {\n    if (restoreQueue) {\n      restoreQueue.push(target);\n    } else {\n      restoreQueue = [target];\n    }\n  } else {\n    restoreTarget = target;\n  }\n}\nfunction needsStateRestore() {\n  return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n  if (!restoreTarget) {\n    return;\n  }\n\n  var target = restoreTarget;\n  var queuedTargets = restoreQueue;\n  restoreTarget = null;\n  restoreQueue = null;\n  restoreStateOfTarget(target);\n\n  if (queuedTargets) {\n    for (var i = 0; i < queuedTargets.length; i++) {\n      restoreStateOfTarget(queuedTargets[i]);\n    }\n  }\n}\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n  return fn(bookkeeping);\n};\n\nvar flushSyncImpl = function () {};\n\nvar isInsideEventHandler = false;\n\nfunction finishEventHandler() {\n  // Here we wait until all updates have propagated, which is important\n  // when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  // Then we restore state of any controlled component.\n  var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n  if (controlledComponentsHavePendingUpdates) {\n    // If a controlled event was fired, we may need to restore the state of\n    // the DOM node back to the controlled value. This is necessary when React\n    // bails out of the update without touching the DOM.\n    // TODO: Restore state in the microtask, after the discrete updates flush,\n    // instead of early flushing them here.\n    flushSyncImpl();\n    restoreStateIfNeeded();\n  }\n}\n\nfunction batchedUpdates(fn, a, b) {\n  if (isInsideEventHandler) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(a, b);\n  }\n\n  isInsideEventHandler = true;\n\n  try {\n    return batchedUpdatesImpl(fn, a, b);\n  } finally {\n    isInsideEventHandler = false;\n    finishEventHandler();\n  }\n} // TODO: Replace with flushSync\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushSyncImpl) {\n  batchedUpdatesImpl = _batchedUpdatesImpl;\n  flushSyncImpl = _flushSyncImpl;\n}\n\nfunction isInteractive(tag) {\n  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n  switch (name) {\n    case 'onClick':\n    case 'onClickCapture':\n    case 'onDoubleClick':\n    case 'onDoubleClickCapture':\n    case 'onMouseDown':\n    case 'onMouseDownCapture':\n    case 'onMouseMove':\n    case 'onMouseMoveCapture':\n    case 'onMouseUp':\n    case 'onMouseUpCapture':\n    case 'onMouseEnter':\n      return !!(props.disabled && isInteractive(type));\n\n    default:\n      return false;\n  }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n  var stateNode = inst.stateNode;\n\n  if (stateNode === null) {\n    // Work in progress (ex: onload events in incremental mode).\n    return null;\n  }\n\n  var props = getFiberCurrentPropsFromNode(stateNode);\n\n  if (props === null) {\n    // Work in progress.\n    return null;\n  }\n\n  var listener = props[registrationName];\n\n  if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n    return null;\n  }\n\n  if (listener && typeof listener !== 'function') {\n    throw new Error(\"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\");\n  }\n\n  return listener;\n}\n\nvar passiveBrowserEventsSupported = false; // Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\nif (canUseDOM) {\n  try {\n    var options = {}; // $FlowFixMe: Ignore Flow complaining about needing a value\n\n    Object.defineProperty(options, 'passive', {\n      get: function () {\n        passiveBrowserEventsSupported = true;\n      }\n    });\n    window.addEventListener('test', options, options);\n    window.removeEventListener('test', options, options);\n  } catch (e) {\n    passiveBrowserEventsSupported = false;\n  }\n}\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n  var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n  try {\n    func.apply(context, funcArgs);\n  } catch (error) {\n    this.onError(error);\n  }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n  // In DEV mode, we swap out invokeGuardedCallback for a special version\n  // that plays more nicely with the browser's DevTools. The idea is to preserve\n  // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n  // functions in invokeGuardedCallback, and the production version of\n  // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n  // like caught exceptions, and the DevTools won't pause unless the developer\n  // takes the extra step of enabling pause on caught exceptions. This is\n  // unintuitive, though, because even though React has caught the error, from\n  // the developer's perspective, the error is uncaught.\n  //\n  // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n  // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n  // DOM node, and call the user-provided callback from inside an event handler\n  // for that fake event. If the callback throws, the error is \"captured\" using\n  // a global event handler. But because the error happens in a different\n  // event loop context, it does not interrupt the normal program flow.\n  // Effectively, this gives us try-catch behavior without actually using\n  // try-catch. Neat!\n  // Check that the browser supports the APIs we need to implement our special\n  // DEV version of invokeGuardedCallback\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n\n    invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n      // If document doesn't exist we know for sure we will crash in this method\n      // when we call document.createEvent(). However this can cause confusing\n      // errors: https://github.com/facebook/create-react-app/issues/3482\n      // So we preemptively throw with a better message instead.\n      if (typeof document === 'undefined' || document === null) {\n        throw new Error('The `document` global was defined when React was initialized, but is not ' + 'defined anymore. This can happen in a test environment if a component ' + 'schedules an update from an asynchronous callback, but the test has already ' + 'finished running. To solve this, you can either unmount the component at ' + 'the end of your test (and ensure that any asynchronous operations get ' + 'canceled in `componentWillUnmount`), or you can change the test itself ' + 'to be asynchronous.');\n      }\n\n      var evt = document.createEvent('Event');\n      var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n      // set this to true at the beginning, then set it to false right after\n      // calling the function. If the function errors, `didError` will never be\n      // set to false. This strategy works even if the browser is flaky and\n      // fails to call our global error handler, because it doesn't rely on\n      // the error event at all.\n\n      var didError = true; // Keeps track of the value of window.event so that we can reset it\n      // during the callback to let user code access window.event in the\n      // browsers that support it.\n\n      var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n      // dispatching: https://github.com/facebook/react/issues/13688\n\n      var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n      function restoreAfterDispatch() {\n        // We immediately remove the callback from event listeners so that\n        // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n        // nested call would trigger the fake event handlers of any call higher\n        // in the stack.\n        fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n        // window.event assignment in both IE <= 10 as they throw an error\n        // \"Member not found\" in strict mode, and in Firefox which does not\n        // support window.event.\n\n        if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n          window.event = windowEvent;\n        }\n      } // Create an event handler for our fake event. We will synchronously\n      // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n      // call the user-provided callback.\n\n\n      var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n      function callCallback() {\n        didCall = true;\n        restoreAfterDispatch();\n        func.apply(context, funcArgs);\n        didError = false;\n      } // Create a global error event handler. We use this to capture the value\n      // that was thrown. It's possible that this error handler will fire more\n      // than once; for example, if non-React code also calls `dispatchEvent`\n      // and a handler for that event throws. We should be resilient to most of\n      // those cases. Even if our error event handler fires more than once, the\n      // last error event is always used. If the callback actually does error,\n      // we know that the last error event is the correct one, because it's not\n      // possible for anything else to have happened in between our callback\n      // erroring and the code that follows the `dispatchEvent` call below. If\n      // the callback doesn't error, but the error event was fired, we know to\n      // ignore it because `didError` will be false, as described above.\n\n\n      var error; // Use this to track whether the error event is ever called.\n\n      var didSetError = false;\n      var isCrossOriginError = false;\n\n      function handleWindowError(event) {\n        error = event.error;\n        didSetError = true;\n\n        if (error === null && event.colno === 0 && event.lineno === 0) {\n          isCrossOriginError = true;\n        }\n\n        if (event.defaultPrevented) {\n          // Some other error handler has prevented default.\n          // Browsers silence the error report if this happens.\n          // We'll remember this to later decide whether to log it or not.\n          if (error != null && typeof error === 'object') {\n            try {\n              error._suppressLogging = true;\n            } catch (inner) {// Ignore.\n            }\n          }\n        }\n      } // Create a fake event type.\n\n\n      var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n      window.addEventListener('error', handleWindowError);\n      fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n      // errors, it will trigger our global error handler.\n\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n\n      if (windowEventDescriptor) {\n        Object.defineProperty(window, 'event', windowEventDescriptor);\n      }\n\n      if (didCall && didError) {\n        if (!didSetError) {\n          // The callback errored, but the error event never fired.\n          // eslint-disable-next-line react-internal/prod-error-codes\n          error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n        } else if (isCrossOriginError) {\n          // eslint-disable-next-line react-internal/prod-error-codes\n          error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n        }\n\n        this.onError(error);\n      } // Remove our event listeners\n\n\n      window.removeEventListener('error', handleWindowError);\n\n      if (!didCall) {\n        // Something went really wrong, and our event was not dispatched.\n        // https://github.com/facebook/react/issues/16734\n        // https://github.com/facebook/react/issues/16585\n        // Fall back to the production implementation.\n        restoreAfterDispatch();\n        return invokeGuardedCallbackProd.apply(this, arguments);\n      }\n    };\n  }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n  onError: function (error) {\n    hasError = true;\n    caughtError = error;\n  }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n  hasError = false;\n  caughtError = null;\n  invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n  invokeGuardedCallback.apply(this, arguments);\n\n  if (hasError) {\n    var error = clearCaughtError();\n\n    if (!hasRethrowError) {\n      hasRethrowError = true;\n      rethrowError = error;\n    }\n  }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n  if (hasRethrowError) {\n    var error = rethrowError;\n    hasRethrowError = false;\n    rethrowError = null;\n    throw error;\n  }\n}\nfunction hasCaughtError() {\n  return hasError;\n}\nfunction clearCaughtError() {\n  if (hasError) {\n    var error = caughtError;\n    hasError = false;\n    caughtError = null;\n    return error;\n  } else {\n    throw new Error('clearCaughtError was called but no error was captured. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n  }\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n  return key._reactInternals;\n}\nfunction has(key) {\n  return key._reactInternals !== undefined;\n}\nfunction set(key, value) {\n  key._reactInternals = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags =\n/*                      */\n0;\nvar PerformedWork =\n/*                */\n1; // You can change the rest (and add more).\n\nvar Placement =\n/*                    */\n2;\nvar Update =\n/*                       */\n4;\nvar ChildDeletion =\n/*                */\n16;\nvar ContentReset =\n/*                 */\n32;\nvar Callback =\n/*                     */\n64;\nvar DidCapture =\n/*                   */\n128;\nvar ForceClientRender =\n/*            */\n256;\nvar Ref =\n/*                          */\n512;\nvar Snapshot =\n/*                     */\n1024;\nvar Passive =\n/*                      */\n2048;\nvar Hydrating =\n/*                    */\n4096;\nvar Visibility =\n/*                   */\n8192;\nvar StoreConsistency =\n/*             */\n16384;\nvar LifecycleEffectMask = Passive | Update | Callback | Ref | Snapshot | StoreConsistency; // Union of all commit flags (flags with the lifetime of a particular commit)\n\nvar HostEffectMask =\n/*               */\n32767; // These are not really side effects, but we still reuse this field.\n\nvar Incomplete =\n/*                   */\n32768;\nvar ShouldCapture =\n/*                */\n65536;\nvar ForceUpdateForLegacySuspense =\n/* */\n131072;\nvar Forked =\n/*                       */\n1048576; // Static tags describe aspects of a fiber that are not specific to a render,\n// e.g. a fiber uses a passive effect (even if there are no updates on this particular render).\n// This enables us to defer more work in the unmount case,\n// since we can defer traversing the tree during layout to look for Passive effects,\n// and instead rely on the static flag as a signal that there may be cleanup work.\n\nvar RefStatic =\n/*                    */\n2097152;\nvar LayoutStatic =\n/*                 */\n4194304;\nvar PassiveStatic =\n/*                */\n8388608; // These flags allow us to traverse to fibers that have effects on mount\n// without traversing the entire tree after every commit for\n// double invoking\n\nvar MountLayoutDev =\n/*               */\n16777216;\nvar MountPassiveDev =\n/*              */\n33554432; // Groups of flags that are used in the commit phase to skip over trees that\n// don't contain effects, by checking subtreeFlags.\n\nvar BeforeMutationMask = // TODO: Remove Update flag from before mutation phase by re-landing Visibility\n// flag logic (see #20043)\nUpdate | Snapshot | ( 0);\nvar MutationMask = Placement | Update | ChildDeletion | ContentReset | Ref | Hydrating | Visibility;\nvar LayoutMask = Update | Callback | Ref | Visibility; // TODO: Split into PassiveMountMask and PassiveUnmountMask\n\nvar PassiveMask = Passive | ChildDeletion; // Union of tags that don't get reset on clones.\n// This allows certain concepts to persist without recalculating them,\n// e.g. whether a subtree contains passive effects or portals.\n\nvar StaticMask = LayoutStatic | PassiveStatic | RefStatic;\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n  var node = fiber;\n  var nearestMounted = fiber;\n\n  if (!fiber.alternate) {\n    // If there is no alternate, this might be a new tree that isn't inserted\n    // yet. If it is, then it will have a pending insertion effect on it.\n    var nextNode = node;\n\n    do {\n      node = nextNode;\n\n      if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n        // This is an insertion or in-progress hydration. The nearest possible\n        // mounted fiber is the parent but we need to continue to figure out\n        // if that one is still mounted.\n        nearestMounted = node.return;\n      }\n\n      nextNode = node.return;\n    } while (nextNode);\n  } else {\n    while (node.return) {\n      node = node.return;\n    }\n  }\n\n  if (node.tag === HostRoot) {\n    // TODO: Check if this was a nested HostRoot when used with\n    // renderContainerIntoSubtree.\n    return nearestMounted;\n  } // If we didn't hit the root, that means that we're in an disconnected tree\n  // that has been unmounted.\n\n\n  return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n  if (fiber.tag === SuspenseComponent) {\n    var suspenseState = fiber.memoizedState;\n\n    if (suspenseState === null) {\n      var current = fiber.alternate;\n\n      if (current !== null) {\n        suspenseState = current.memoizedState;\n      }\n    }\n\n    if (suspenseState !== null) {\n      return suspenseState.dehydrated;\n    }\n  }\n\n  return null;\n}\nfunction getContainerFromFiber(fiber) {\n  return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n  return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n  {\n    var owner = ReactCurrentOwner.current;\n\n    if (owner !== null && owner.tag === ClassComponent) {\n      var ownerFiber = owner;\n      var instance = ownerFiber.stateNode;\n\n      if (!instance._warnedAboutRefsInRender) {\n        error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentNameFromFiber(ownerFiber) || 'A component');\n      }\n\n      instance._warnedAboutRefsInRender = true;\n    }\n  }\n\n  var fiber = get(component);\n\n  if (!fiber) {\n    return false;\n  }\n\n  return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n  if (getNearestMountedFiber(fiber) !== fiber) {\n    throw new Error('Unable to find node on an unmounted component.');\n  }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n  var alternate = fiber.alternate;\n\n  if (!alternate) {\n    // If there is no alternate, then we only need to check if it is mounted.\n    var nearestMounted = getNearestMountedFiber(fiber);\n\n    if (nearestMounted === null) {\n      throw new Error('Unable to find node on an unmounted component.');\n    }\n\n    if (nearestMounted !== fiber) {\n      return null;\n    }\n\n    return fiber;\n  } // If we have two possible branches, we'll walk backwards up to the root\n  // to see what path the root points to. On the way we may hit one of the\n  // special cases and we'll deal with them.\n\n\n  var a = fiber;\n  var b = alternate;\n\n  while (true) {\n    var parentA = a.return;\n\n    if (parentA === null) {\n      // We're at the root.\n      break;\n    }\n\n    var parentB = parentA.alternate;\n\n    if (parentB === null) {\n      // There is no alternate. This is an unusual case. Currently, it only\n      // happens when a Suspense component is hidden. An extra fragment fiber\n      // is inserted in between the Suspense fiber and its children. Skip\n      // over this extra fragment fiber and proceed to the next parent.\n      var nextParent = parentA.return;\n\n      if (nextParent !== null) {\n        a = b = nextParent;\n        continue;\n      } // If there's no parent, we're at the root.\n\n\n      break;\n    } // If both copies of the parent fiber point to the same child, we can\n    // assume that the child is current. This happens when we bailout on low\n    // priority: the bailed out fiber's child reuses the current child.\n\n\n    if (parentA.child === parentB.child) {\n      var child = parentA.child;\n\n      while (child) {\n        if (child === a) {\n          // We've determined that A is the current branch.\n          assertIsMounted(parentA);\n          return fiber;\n        }\n\n        if (child === b) {\n          // We've determined that B is the current branch.\n          assertIsMounted(parentA);\n          return alternate;\n        }\n\n        child = child.sibling;\n      } // We should never have an alternate for any mounting node. So the only\n      // way this could possibly happen is if this was unmounted, if at all.\n\n\n      throw new Error('Unable to find node on an unmounted component.');\n    }\n\n    if (a.return !== b.return) {\n      // The return pointer of A and the return pointer of B point to different\n      // fibers. We assume that return pointers never criss-cross, so A must\n      // belong to the child set of A.return, and B must belong to the child\n      // set of B.return.\n      a = parentA;\n      b = parentB;\n    } else {\n      // The return pointers point to the same fiber. We'll have to use the\n      // default, slow path: scan the child sets of each parent alternate to see\n      // which child belongs to which set.\n      //\n      // Search parent A's child set\n      var didFindChild = false;\n      var _child = parentA.child;\n\n      while (_child) {\n        if (_child === a) {\n          didFindChild = true;\n          a = parentA;\n          b = parentB;\n          break;\n        }\n\n        if (_child === b) {\n          didFindChild = true;\n          b = parentA;\n          a = parentB;\n          break;\n        }\n\n        _child = _child.sibling;\n      }\n\n      if (!didFindChild) {\n        // Search parent B's child set\n        _child = parentB.child;\n\n        while (_child) {\n          if (_child === a) {\n            didFindChild = true;\n            a = parentB;\n            b = parentA;\n            break;\n          }\n\n          if (_child === b) {\n            didFindChild = true;\n            b = parentB;\n            a = parentA;\n            break;\n          }\n\n          _child = _child.sibling;\n        }\n\n        if (!didFindChild) {\n          throw new Error('Child was not found in either parent set. This indicates a bug ' + 'in React related to the return pointer. Please file an issue.');\n        }\n      }\n    }\n\n    if (a.alternate !== b) {\n      throw new Error(\"Return fibers should always be each others' alternates. \" + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n  } // If the root is not a host container, we're in a disconnected tree. I.e.\n  // unmounted.\n\n\n  if (a.tag !== HostRoot) {\n    throw new Error('Unable to find node on an unmounted component.');\n  }\n\n  if (a.stateNode.current === a) {\n    // We've determined that A is the current branch.\n    return fiber;\n  } // Otherwise B has to be current branch.\n\n\n  return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  return currentParent !== null ? findCurrentHostFiberImpl(currentParent) : null;\n}\n\nfunction findCurrentHostFiberImpl(node) {\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  if (node.tag === HostComponent || node.tag === HostText) {\n    return node;\n  }\n\n  var child = node.child;\n\n  while (child !== null) {\n    var match = findCurrentHostFiberImpl(child);\n\n    if (match !== null) {\n      return match;\n    }\n\n    child = child.sibling;\n  }\n\n  return null;\n}\n\nfunction findCurrentHostFiberWithNoPortals(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  return currentParent !== null ? findCurrentHostFiberWithNoPortalsImpl(currentParent) : null;\n}\n\nfunction findCurrentHostFiberWithNoPortalsImpl(node) {\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  if (node.tag === HostComponent || node.tag === HostText) {\n    return node;\n  }\n\n  var child = node.child;\n\n  while (child !== null) {\n    if (child.tag !== HostPortal) {\n      var match = findCurrentHostFiberWithNoPortalsImpl(child);\n\n      if (match !== null) {\n        return match;\n      }\n    }\n\n    child = child.sibling;\n  }\n\n  return null;\n}\n\n// This module only exists as an ESM wrapper around the external CommonJS\nvar scheduleCallback = Scheduler.unstable_scheduleCallback;\nvar cancelCallback = Scheduler.unstable_cancelCallback;\nvar shouldYield = Scheduler.unstable_shouldYield;\nvar requestPaint = Scheduler.unstable_requestPaint;\nvar now = Scheduler.unstable_now;\nvar getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel;\nvar ImmediatePriority = Scheduler.unstable_ImmediatePriority;\nvar UserBlockingPriority = Scheduler.unstable_UserBlockingPriority;\nvar NormalPriority = Scheduler.unstable_NormalPriority;\nvar LowPriority = Scheduler.unstable_LowPriority;\nvar IdlePriority = Scheduler.unstable_IdlePriority;\n// this doesn't actually exist on the scheduler, but it *does*\n// on scheduler/unstable_mock, which we'll need for internal testing\nvar unstable_yieldValue = Scheduler.unstable_yieldValue;\nvar unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue;\n\nvar rendererID = null;\nvar injectedHook = null;\nvar injectedProfilingHooks = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n    // No DevTools\n    return false;\n  }\n\n  var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n  if (hook.isDisabled) {\n    // This isn't a real property on the hook, but it can be set to opt out\n    // of DevTools integration and associated warnings and logs.\n    // https://github.com/facebook/react/issues/3877\n    return true;\n  }\n\n  if (!hook.supportsFiber) {\n    {\n      error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://reactjs.org/link/react-devtools');\n    } // DevTools exists, even though it doesn't support Fiber.\n\n\n    return true;\n  }\n\n  try {\n    if (enableSchedulingProfiler) {\n      // Conditionally inject these hooks only if Timeline profiler is supported by this build.\n      // This gives DevTools a way to feature detect that isn't tied to version number\n      // (since profiling and timeline are controlled by different feature flags).\n      internals = assign({}, internals, {\n        getLaneLabelMap: getLaneLabelMap,\n        injectProfilingHooks: injectProfilingHooks\n      });\n    }\n\n    rendererID = hook.inject(internals); // We have successfully injected, so now it is safe to set up hooks.\n\n    injectedHook = hook;\n  } catch (err) {\n    // Catch all errors because it is unsafe to throw during initialization.\n    {\n      error('React instrumentation encountered an error: %s.', err);\n    }\n  }\n\n  if (hook.checkDCE) {\n    // This is the real DevTools.\n    return true;\n  } else {\n    // This is likely a hook installed by Fast Refresh runtime.\n    return false;\n  }\n}\nfunction onScheduleRoot(root, children) {\n  {\n    if (injectedHook && typeof injectedHook.onScheduleFiberRoot === 'function') {\n      try {\n        injectedHook.onScheduleFiberRoot(rendererID, root, children);\n      } catch (err) {\n        if ( !hasLoggedError) {\n          hasLoggedError = true;\n\n          error('React instrumentation encountered an error: %s', err);\n        }\n      }\n    }\n  }\n}\nfunction onCommitRoot(root, eventPriority) {\n  if (injectedHook && typeof injectedHook.onCommitFiberRoot === 'function') {\n    try {\n      var didError = (root.current.flags & DidCapture) === DidCapture;\n\n      if (enableProfilerTimer) {\n        var schedulerPriority;\n\n        switch (eventPriority) {\n          case DiscreteEventPriority:\n            schedulerPriority = ImmediatePriority;\n            break;\n\n          case ContinuousEventPriority:\n            schedulerPriority = UserBlockingPriority;\n            break;\n\n          case DefaultEventPriority:\n            schedulerPriority = NormalPriority;\n            break;\n\n          case IdleEventPriority:\n            schedulerPriority = IdlePriority;\n            break;\n\n          default:\n            schedulerPriority = NormalPriority;\n            break;\n        }\n\n        injectedHook.onCommitFiberRoot(rendererID, root, schedulerPriority, didError);\n      } else {\n        injectedHook.onCommitFiberRoot(rendererID, root, undefined, didError);\n      }\n    } catch (err) {\n      {\n        if (!hasLoggedError) {\n          hasLoggedError = true;\n\n          error('React instrumentation encountered an error: %s', err);\n        }\n      }\n    }\n  }\n}\nfunction onPostCommitRoot(root) {\n  if (injectedHook && typeof injectedHook.onPostCommitFiberRoot === 'function') {\n    try {\n      injectedHook.onPostCommitFiberRoot(rendererID, root);\n    } catch (err) {\n      {\n        if (!hasLoggedError) {\n          hasLoggedError = true;\n\n          error('React instrumentation encountered an error: %s', err);\n        }\n      }\n    }\n  }\n}\nfunction onCommitUnmount(fiber) {\n  if (injectedHook && typeof injectedHook.onCommitFiberUnmount === 'function') {\n    try {\n      injectedHook.onCommitFiberUnmount(rendererID, fiber);\n    } catch (err) {\n      {\n        if (!hasLoggedError) {\n          hasLoggedError = true;\n\n          error('React instrumentation encountered an error: %s', err);\n        }\n      }\n    }\n  }\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n  {\n    if (typeof unstable_yieldValue === 'function') {\n      // We're in a test because Scheduler.unstable_yieldValue only exists\n      // in SchedulerMock. To reduce the noise in strict mode tests,\n      // suppress warnings and disable scheduler yielding during the double render\n      unstable_setDisableYieldValue(newIsStrictMode);\n      setSuppressWarning(newIsStrictMode);\n    }\n\n    if (injectedHook && typeof injectedHook.setStrictMode === 'function') {\n      try {\n        injectedHook.setStrictMode(rendererID, newIsStrictMode);\n      } catch (err) {\n        {\n          if (!hasLoggedError) {\n            hasLoggedError = true;\n\n            error('React instrumentation encountered an error: %s', err);\n          }\n        }\n      }\n    }\n  }\n} // Profiler API hooks\n\nfunction injectProfilingHooks(profilingHooks) {\n  injectedProfilingHooks = profilingHooks;\n}\n\nfunction getLaneLabelMap() {\n  {\n    var map = new Map();\n    var lane = 1;\n\n    for (var index = 0; index < TotalLanes; index++) {\n      var label = getLabelForLane(lane);\n      map.set(lane, label);\n      lane *= 2;\n    }\n\n    return map;\n  }\n}\n\nfunction markCommitStarted(lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markCommitStarted === 'function') {\n      injectedProfilingHooks.markCommitStarted(lanes);\n    }\n  }\n}\nfunction markCommitStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markCommitStopped === 'function') {\n      injectedProfilingHooks.markCommitStopped();\n    }\n  }\n}\nfunction markComponentRenderStarted(fiber) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentRenderStarted === 'function') {\n      injectedProfilingHooks.markComponentRenderStarted(fiber);\n    }\n  }\n}\nfunction markComponentRenderStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentRenderStopped === 'function') {\n      injectedProfilingHooks.markComponentRenderStopped();\n    }\n  }\n}\nfunction markComponentPassiveEffectMountStarted(fiber) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectMountStarted === 'function') {\n      injectedProfilingHooks.markComponentPassiveEffectMountStarted(fiber);\n    }\n  }\n}\nfunction markComponentPassiveEffectMountStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectMountStopped === 'function') {\n      injectedProfilingHooks.markComponentPassiveEffectMountStopped();\n    }\n  }\n}\nfunction markComponentPassiveEffectUnmountStarted(fiber) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStarted === 'function') {\n      injectedProfilingHooks.markComponentPassiveEffectUnmountStarted(fiber);\n    }\n  }\n}\nfunction markComponentPassiveEffectUnmountStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStopped === 'function') {\n      injectedProfilingHooks.markComponentPassiveEffectUnmountStopped();\n    }\n  }\n}\nfunction markComponentLayoutEffectMountStarted(fiber) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectMountStarted === 'function') {\n      injectedProfilingHooks.markComponentLayoutEffectMountStarted(fiber);\n    }\n  }\n}\nfunction markComponentLayoutEffectMountStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectMountStopped === 'function') {\n      injectedProfilingHooks.markComponentLayoutEffectMountStopped();\n    }\n  }\n}\nfunction markComponentLayoutEffectUnmountStarted(fiber) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStarted === 'function') {\n      injectedProfilingHooks.markComponentLayoutEffectUnmountStarted(fiber);\n    }\n  }\n}\nfunction markComponentLayoutEffectUnmountStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStopped === 'function') {\n      injectedProfilingHooks.markComponentLayoutEffectUnmountStopped();\n    }\n  }\n}\nfunction markComponentErrored(fiber, thrownValue, lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentErrored === 'function') {\n      injectedProfilingHooks.markComponentErrored(fiber, thrownValue, lanes);\n    }\n  }\n}\nfunction markComponentSuspended(fiber, wakeable, lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentSuspended === 'function') {\n      injectedProfilingHooks.markComponentSuspended(fiber, wakeable, lanes);\n    }\n  }\n}\nfunction markLayoutEffectsStarted(lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markLayoutEffectsStarted === 'function') {\n      injectedProfilingHooks.markLayoutEffectsStarted(lanes);\n    }\n  }\n}\nfunction markLayoutEffectsStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markLayoutEffectsStopped === 'function') {\n      injectedProfilingHooks.markLayoutEffectsStopped();\n    }\n  }\n}\nfunction markPassiveEffectsStarted(lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markPassiveEffectsStarted === 'function') {\n      injectedProfilingHooks.markPassiveEffectsStarted(lanes);\n    }\n  }\n}\nfunction markPassiveEffectsStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markPassiveEffectsStopped === 'function') {\n      injectedProfilingHooks.markPassiveEffectsStopped();\n    }\n  }\n}\nfunction markRenderStarted(lanes) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderStarted === 'function') {\n      injectedProfilingHooks.markRenderStarted(lanes);\n    }\n  }\n}\nfunction markRenderYielded() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderYielded === 'function') {\n      injectedProfilingHooks.markRenderYielded();\n    }\n  }\n}\nfunction markRenderStopped() {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderStopped === 'function') {\n      injectedProfilingHooks.markRenderStopped();\n    }\n  }\n}\nfunction markRenderScheduled(lane) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderScheduled === 'function') {\n      injectedProfilingHooks.markRenderScheduled(lane);\n    }\n  }\n}\nfunction markForceUpdateScheduled(fiber, lane) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markForceUpdateScheduled === 'function') {\n      injectedProfilingHooks.markForceUpdateScheduled(fiber, lane);\n    }\n  }\n}\nfunction markStateUpdateScheduled(fiber, lane) {\n  {\n    if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markStateUpdateScheduled === 'function') {\n      injectedProfilingHooks.markStateUpdateScheduled(fiber, lane);\n    }\n  }\n}\n\nvar NoMode =\n/*                         */\n0; // TODO: Remove ConcurrentMode by reading from the root tag instead\n\nvar ConcurrentMode =\n/*                 */\n1;\nvar ProfileMode =\n/*                    */\n2;\nvar StrictLegacyMode =\n/*               */\n8;\nvar StrictEffectsMode =\n/*              */\n16;\n\n// TODO: This is pretty well supported by browsers. Maybe we can drop it.\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros.\n// Based on:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nfunction clz32Fallback(x) {\n  var asUint = x >>> 0;\n\n  if (asUint === 0) {\n    return 32;\n  }\n\n  return 31 - (log(asUint) / LN2 | 0) | 0;\n}\n\n// If those values are changed that package should be rebuilt and redeployed.\n\nvar TotalLanes = 31;\nvar NoLanes =\n/*                        */\n0;\nvar NoLane =\n/*                          */\n0;\nvar SyncLane =\n/*                        */\n1;\nvar InputContinuousHydrationLane =\n/*    */\n2;\nvar InputContinuousLane =\n/*             */\n4;\nvar DefaultHydrationLane =\n/*            */\n8;\nvar DefaultLane =\n/*                     */\n16;\nvar TransitionHydrationLane =\n/*                */\n32;\nvar TransitionLanes =\n/*                       */\n4194240;\nvar TransitionLane1 =\n/*                        */\n64;\nvar TransitionLane2 =\n/*                        */\n128;\nvar TransitionLane3 =\n/*                        */\n256;\nvar TransitionLane4 =\n/*                        */\n512;\nvar TransitionLane5 =\n/*                        */\n1024;\nvar TransitionLane6 =\n/*                        */\n2048;\nvar TransitionLane7 =\n/*                        */\n4096;\nvar TransitionLane8 =\n/*                        */\n8192;\nvar TransitionLane9 =\n/*                        */\n16384;\nvar TransitionLane10 =\n/*                       */\n32768;\nvar TransitionLane11 =\n/*                       */\n65536;\nvar TransitionLane12 =\n/*                       */\n131072;\nvar TransitionLane13 =\n/*                       */\n262144;\nvar TransitionLane14 =\n/*                       */\n524288;\nvar TransitionLane15 =\n/*                       */\n1048576;\nvar TransitionLane16 =\n/*                       */\n2097152;\nvar RetryLanes =\n/*                            */\n130023424;\nvar RetryLane1 =\n/*                             */\n4194304;\nvar RetryLane2 =\n/*                             */\n8388608;\nvar RetryLane3 =\n/*                             */\n16777216;\nvar RetryLane4 =\n/*                             */\n33554432;\nvar RetryLane5 =\n/*                             */\n67108864;\nvar SomeRetryLane = RetryLane1;\nvar SelectiveHydrationLane =\n/*          */\n134217728;\nvar NonIdleLanes =\n/*                          */\n268435455;\nvar IdleHydrationLane =\n/*               */\n268435456;\nvar IdleLane =\n/*                        */\n536870912;\nvar OffscreenLane =\n/*                   */\n1073741824; // This function is used for the experimental timeline (react-devtools-timeline)\n// It should be kept in sync with the Lanes values above.\n\nfunction getLabelForLane(lane) {\n  {\n    if (lane & SyncLane) {\n      return 'Sync';\n    }\n\n    if (lane & InputContinuousHydrationLane) {\n      return 'InputContinuousHydration';\n    }\n\n    if (lane & InputContinuousLane) {\n      return 'InputContinuous';\n    }\n\n    if (lane & DefaultHydrationLane) {\n      return 'DefaultHydration';\n    }\n\n    if (lane & DefaultLane) {\n      return 'Default';\n    }\n\n    if (lane & TransitionHydrationLane) {\n      return 'TransitionHydration';\n    }\n\n    if (lane & TransitionLanes) {\n      return 'Transition';\n    }\n\n    if (lane & RetryLanes) {\n      return 'Retry';\n    }\n\n    if (lane & SelectiveHydrationLane) {\n      return 'SelectiveHydration';\n    }\n\n    if (lane & IdleHydrationLane) {\n      return 'IdleHydration';\n    }\n\n    if (lane & IdleLane) {\n      return 'Idle';\n    }\n\n    if (lane & OffscreenLane) {\n      return 'Offscreen';\n    }\n  }\n}\nvar NoTimestamp = -1;\nvar nextTransitionLane = TransitionLane1;\nvar nextRetryLane = RetryLane1;\n\nfunction getHighestPriorityLanes(lanes) {\n  switch (getHighestPriorityLane(lanes)) {\n    case SyncLane:\n      return SyncLane;\n\n    case InputContinuousHydrationLane:\n      return InputContinuousHydrationLane;\n\n    case InputContinuousLane:\n      return InputContinuousLane;\n\n    case DefaultHydrationLane:\n      return DefaultHydrationLane;\n\n    case DefaultLane:\n      return DefaultLane;\n\n    case TransitionHydrationLane:\n      return TransitionHydrationLane;\n\n    case TransitionLane1:\n    case TransitionLane2:\n    case TransitionLane3:\n    case TransitionLane4:\n    case TransitionLane5:\n    case TransitionLane6:\n    case TransitionLane7:\n    case TransitionLane8:\n    case TransitionLane9:\n    case TransitionLane10:\n    case TransitionLane11:\n    case TransitionLane12:\n    case TransitionLane13:\n    case TransitionLane14:\n    case TransitionLane15:\n    case TransitionLane16:\n      return lanes & TransitionLanes;\n\n    case RetryLane1:\n    case RetryLane2:\n    case RetryLane3:\n    case RetryLane4:\n    case RetryLane5:\n      return lanes & RetryLanes;\n\n    case SelectiveHydrationLane:\n      return SelectiveHydrationLane;\n\n    case IdleHydrationLane:\n      return IdleHydrationLane;\n\n    case IdleLane:\n      return IdleLane;\n\n    case OffscreenLane:\n      return OffscreenLane;\n\n    default:\n      {\n        error('Should have found matching lanes. This is a bug in React.');\n      } // This shouldn't be reachable, but as a fallback, return the entire bitmask.\n\n\n      return lanes;\n  }\n}\n\nfunction getNextLanes(root, wipLanes) {\n  // Early bailout if there's no pending work left.\n  var pendingLanes = root.pendingLanes;\n\n  if (pendingLanes === NoLanes) {\n    return NoLanes;\n  }\n\n  var nextLanes = NoLanes;\n  var suspendedLanes = root.suspendedLanes;\n  var pingedLanes = root.pingedLanes; // Do not work on any idle work until all the non-idle work has finished,\n  // even if the work is suspended.\n\n  var nonIdlePendingLanes = pendingLanes & NonIdleLanes;\n\n  if (nonIdlePendingLanes !== NoLanes) {\n    var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n\n    if (nonIdleUnblockedLanes !== NoLanes) {\n      nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes);\n    } else {\n      var nonIdlePingedLanes = nonIdlePendingLanes & pingedLanes;\n\n      if (nonIdlePingedLanes !== NoLanes) {\n        nextLanes = getHighestPriorityLanes(nonIdlePingedLanes);\n      }\n    }\n  } else {\n    // The only remaining work is Idle.\n    var unblockedLanes = pendingLanes & ~suspendedLanes;\n\n    if (unblockedLanes !== NoLanes) {\n      nextLanes = getHighestPriorityLanes(unblockedLanes);\n    } else {\n      if (pingedLanes !== NoLanes) {\n        nextLanes = getHighestPriorityLanes(pingedLanes);\n      }\n    }\n  }\n\n  if (nextLanes === NoLanes) {\n    // This should only be reachable if we're suspended\n    // TODO: Consider warning in this path if a fallback timer is not scheduled.\n    return NoLanes;\n  } // If we're already in the middle of a render, switching lanes will interrupt\n  // it and we'll lose our progress. We should only do this if the new lanes are\n  // higher priority.\n\n\n  if (wipLanes !== NoLanes && wipLanes !== nextLanes && // If we already suspended with a delay, then interrupting is fine. Don't\n  // bother waiting until the root is complete.\n  (wipLanes & suspendedLanes) === NoLanes) {\n    var nextLane = getHighestPriorityLane(nextLanes);\n    var wipLane = getHighestPriorityLane(wipLanes);\n\n    if ( // Tests whether the next lane is equal or lower priority than the wip\n    // one. This works because the bits decrease in priority as you go left.\n    nextLane >= wipLane || // Default priority updates should not interrupt transition updates. The\n    // only difference between default updates and transition updates is that\n    // default updates do not support refresh transitions.\n    nextLane === DefaultLane && (wipLane & TransitionLanes) !== NoLanes) {\n      // Keep working on the existing in-progress tree. Do not interrupt.\n      return wipLanes;\n    }\n  }\n\n  if ((nextLanes & InputContinuousLane) !== NoLanes) {\n    // When updates are sync by default, we entangle continuous priority updates\n    // and default updates, so they render in the same batch. The only reason\n    // they use separate lanes is because continuous updates should interrupt\n    // transitions, but default updates should not.\n    nextLanes |= pendingLanes & DefaultLane;\n  } // Check for entangled lanes and add them to the batch.\n  //\n  // A lane is said to be entangled with another when it's not allowed to render\n  // in a batch that does not also include the other lane. Typically we do this\n  // when multiple updates have the same source, and we only want to respond to\n  // the most recent event from that source.\n  //\n  // Note that we apply entanglements *after* checking for partial work above.\n  // This means that if a lane is entangled during an interleaved event while\n  // it's already rendering, we won't interrupt it. This is intentional, since\n  // entanglement is usually \"best effort\": we'll try our best to render the\n  // lanes in the same batch, but it's not worth throwing out partially\n  // completed work in order to do it.\n  // TODO: Reconsider this. The counter-argument is that the partial work\n  // represents an intermediate state, which we don't want to show to the user.\n  // And by spending extra time finishing it, we're increasing the amount of\n  // time it takes to show the final state, which is what they are actually\n  // waiting for.\n  //\n  // For those exceptions where entanglement is semantically important, like\n  // useMutableSource, we should ensure that there is no partial work at the\n  // time we apply the entanglement.\n\n\n  var entangledLanes = root.entangledLanes;\n\n  if (entangledLanes !== NoLanes) {\n    var entanglements = root.entanglements;\n    var lanes = nextLanes & entangledLanes;\n\n    while (lanes > 0) {\n      var index = pickArbitraryLaneIndex(lanes);\n      var lane = 1 << index;\n      nextLanes |= entanglements[index];\n      lanes &= ~lane;\n    }\n  }\n\n  return nextLanes;\n}\nfunction getMostRecentEventTime(root, lanes) {\n  var eventTimes = root.eventTimes;\n  var mostRecentEventTime = NoTimestamp;\n\n  while (lanes > 0) {\n    var index = pickArbitraryLaneIndex(lanes);\n    var lane = 1 << index;\n    var eventTime = eventTimes[index];\n\n    if (eventTime > mostRecentEventTime) {\n      mostRecentEventTime = eventTime;\n    }\n\n    lanes &= ~lane;\n  }\n\n  return mostRecentEventTime;\n}\n\nfunction computeExpirationTime(lane, currentTime) {\n  switch (lane) {\n    case SyncLane:\n    case InputContinuousHydrationLane:\n    case InputContinuousLane:\n      // User interactions should expire slightly more quickly.\n      //\n      // NOTE: This is set to the corresponding constant as in Scheduler.js.\n      // When we made it larger, a product metric in www regressed, suggesting\n      // there's a user interaction that's being starved by a series of\n      // synchronous updates. If that theory is correct, the proper solution is\n      // to fix the starvation. However, this scenario supports the idea that\n      // expiration times are an important safeguard when starvation\n      // does happen.\n      return currentTime + 250;\n\n    case DefaultHydrationLane:\n    case DefaultLane:\n    case TransitionHydrationLane:\n    case TransitionLane1:\n    case TransitionLane2:\n    case TransitionLane3:\n    case TransitionLane4:\n    case TransitionLane5:\n    case TransitionLane6:\n    case TransitionLane7:\n    case TransitionLane8:\n    case TransitionLane9:\n    case TransitionLane10:\n    case TransitionLane11:\n    case TransitionLane12:\n    case TransitionLane13:\n    case TransitionLane14:\n    case TransitionLane15:\n    case TransitionLane16:\n      return currentTime + 5000;\n\n    case RetryLane1:\n    case RetryLane2:\n    case RetryLane3:\n    case RetryLane4:\n    case RetryLane5:\n      // TODO: Retries should be allowed to expire if they are CPU bound for\n      // too long, but when I made this change it caused a spike in browser\n      // crashes. There must be some other underlying bug; not super urgent but\n      // ideally should figure out why and fix it. Unfortunately we don't have\n      // a repro for the crashes, only detected via production metrics.\n      return NoTimestamp;\n\n    case SelectiveHydrationLane:\n    case IdleHydrationLane:\n    case IdleLane:\n    case OffscreenLane:\n      // Anything idle priority or lower should never expire.\n      return NoTimestamp;\n\n    default:\n      {\n        error('Should have found matching lanes. This is a bug in React.');\n      }\n\n      return NoTimestamp;\n  }\n}\n\nfunction markStarvedLanesAsExpired(root, currentTime) {\n  // TODO: This gets called every time we yield. We can optimize by storing\n  // the earliest expiration time on the root. Then use that to quickly bail out\n  // of this function.\n  var pendingLanes = root.pendingLanes;\n  var suspendedLanes = root.suspendedLanes;\n  var pingedLanes = root.pingedLanes;\n  var expirationTimes = root.expirationTimes; // Iterate through the pending lanes and check if we've reached their\n  // expiration time. If so, we'll assume the update is being starved and mark\n  // it as expired to force it to finish.\n\n  var lanes = pendingLanes;\n\n  while (lanes > 0) {\n    var index = pickArbitraryLaneIndex(lanes);\n    var lane = 1 << index;\n    var expirationTime = expirationTimes[index];\n\n    if (expirationTime === NoTimestamp) {\n      // Found a pending lane with no expiration time. If it's not suspended, or\n      // if it's pinged, assume it's CPU-bound. Compute a new expiration time\n      // using the current time.\n      if ((lane & suspendedLanes) === NoLanes || (lane & pingedLanes) !== NoLanes) {\n        // Assumes timestamps are monotonically increasing.\n        expirationTimes[index] = computeExpirationTime(lane, currentTime);\n      }\n    } else if (expirationTime <= currentTime) {\n      // This lane expired\n      root.expiredLanes |= lane;\n    }\n\n    lanes &= ~lane;\n  }\n} // This returns the highest priority pending lanes regardless of whether they\n// are suspended.\n\nfunction getHighestPriorityPendingLanes(root) {\n  return getHighestPriorityLanes(root.pendingLanes);\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n  var everythingButOffscreen = root.pendingLanes & ~OffscreenLane;\n\n  if (everythingButOffscreen !== NoLanes) {\n    return everythingButOffscreen;\n  }\n\n  if (everythingButOffscreen & OffscreenLane) {\n    return OffscreenLane;\n  }\n\n  return NoLanes;\n}\nfunction includesSyncLane(lanes) {\n  return (lanes & SyncLane) !== NoLanes;\n}\nfunction includesNonIdleWork(lanes) {\n  return (lanes & NonIdleLanes) !== NoLanes;\n}\nfunction includesOnlyRetries(lanes) {\n  return (lanes & RetryLanes) === lanes;\n}\nfunction includesOnlyNonUrgentLanes(lanes) {\n  var UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;\n  return (lanes & UrgentLanes) === NoLanes;\n}\nfunction includesOnlyTransitions(lanes) {\n  return (lanes & TransitionLanes) === lanes;\n}\nfunction includesBlockingLane(root, lanes) {\n\n  var SyncDefaultLanes = InputContinuousHydrationLane | InputContinuousLane | DefaultHydrationLane | DefaultLane;\n  return (lanes & SyncDefaultLanes) !== NoLanes;\n}\nfunction includesExpiredLane(root, lanes) {\n  // This is a separate check from includesBlockingLane because a lane can\n  // expire after a render has already started.\n  return (lanes & root.expiredLanes) !== NoLanes;\n}\nfunction isTransitionLane(lane) {\n  return (lane & TransitionLanes) !== NoLanes;\n}\nfunction claimNextTransitionLane() {\n  // Cycle through the lanes, assigning each new transition to the next lane.\n  // In most cases, this means every transition gets its own lane, until we\n  // run out of lanes and cycle back to the beginning.\n  var lane = nextTransitionLane;\n  nextTransitionLane <<= 1;\n\n  if ((nextTransitionLane & TransitionLanes) === NoLanes) {\n    nextTransitionLane = TransitionLane1;\n  }\n\n  return lane;\n}\nfunction claimNextRetryLane() {\n  var lane = nextRetryLane;\n  nextRetryLane <<= 1;\n\n  if ((nextRetryLane & RetryLanes) === NoLanes) {\n    nextRetryLane = RetryLane1;\n  }\n\n  return lane;\n}\nfunction getHighestPriorityLane(lanes) {\n  return lanes & -lanes;\n}\nfunction pickArbitraryLane(lanes) {\n  // This wrapper function gets inlined. Only exists so to communicate that it\n  // doesn't matter which bit is selected; you can pick any bit without\n  // affecting the algorithms where its used. Here I'm using\n  // getHighestPriorityLane because it requires the fewest operations.\n  return getHighestPriorityLane(lanes);\n}\n\nfunction pickArbitraryLaneIndex(lanes) {\n  return 31 - clz32(lanes);\n}\n\nfunction laneToIndex(lane) {\n  return pickArbitraryLaneIndex(lane);\n}\n\nfunction includesSomeLane(a, b) {\n  return (a & b) !== NoLanes;\n}\nfunction isSubsetOfLanes(set, subset) {\n  return (set & subset) === subset;\n}\nfunction mergeLanes(a, b) {\n  return a | b;\n}\nfunction removeLanes(set, subset) {\n  return set & ~subset;\n}\nfunction intersectLanes(a, b) {\n  return a & b;\n} // Seems redundant, but it changes the type from a single lane (used for\n// updates) to a group of lanes (used for flushing work).\n\nfunction laneToLanes(lane) {\n  return lane;\n}\nfunction higherPriorityLane(a, b) {\n  // This works because the bit ranges decrease in priority as you go left.\n  return a !== NoLane && a < b ? a : b;\n}\nfunction createLaneMap(initial) {\n  // Intentionally pushing one by one.\n  // https://v8.dev/blog/elements-kinds#avoid-creating-holes\n  var laneMap = [];\n\n  for (var i = 0; i < TotalLanes; i++) {\n    laneMap.push(initial);\n  }\n\n  return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n  root.pendingLanes |= updateLane; // If there are any suspended transitions, it's possible this new update\n  // could unblock them. Clear the suspended lanes so that we can try rendering\n  // them again.\n  //\n  // TODO: We really only need to unsuspend only lanes that are in the\n  // `subtreeLanes` of the updated fiber, or the update lanes of the return\n  // path. This would exclude suspended updates in an unrelated sibling tree,\n  // since there's no way for this update to unblock it.\n  //\n  // We don't do this if the incoming update is idle, because we never process\n  // idle updates until after all the regular updates have finished; there's no\n  // way it could unblock a transition.\n\n  if (updateLane !== IdleLane) {\n    root.suspendedLanes = NoLanes;\n    root.pingedLanes = NoLanes;\n  }\n\n  var eventTimes = root.eventTimes;\n  var index = laneToIndex(updateLane); // We can always overwrite an existing timestamp because we prefer the most\n  // recent event, and we assume time is monotonically increasing.\n\n  eventTimes[index] = eventTime;\n}\nfunction markRootSuspended(root, suspendedLanes) {\n  root.suspendedLanes |= suspendedLanes;\n  root.pingedLanes &= ~suspendedLanes; // The suspended lanes are no longer CPU-bound. Clear their expiration times.\n\n  var expirationTimes = root.expirationTimes;\n  var lanes = suspendedLanes;\n\n  while (lanes > 0) {\n    var index = pickArbitraryLaneIndex(lanes);\n    var lane = 1 << index;\n    expirationTimes[index] = NoTimestamp;\n    lanes &= ~lane;\n  }\n}\nfunction markRootPinged(root, pingedLanes, eventTime) {\n  root.pingedLanes |= root.suspendedLanes & pingedLanes;\n}\nfunction markRootFinished(root, remainingLanes) {\n  var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n  root.pendingLanes = remainingLanes; // Let's try everything again\n\n  root.suspendedLanes = NoLanes;\n  root.pingedLanes = NoLanes;\n  root.expiredLanes &= remainingLanes;\n  root.mutableReadLanes &= remainingLanes;\n  root.entangledLanes &= remainingLanes;\n  var entanglements = root.entanglements;\n  var eventTimes = root.eventTimes;\n  var expirationTimes = root.expirationTimes; // Clear the lanes that no longer have pending work\n\n  var lanes = noLongerPendingLanes;\n\n  while (lanes > 0) {\n    var index = pickArbitraryLaneIndex(lanes);\n    var lane = 1 << index;\n    entanglements[index] = NoLanes;\n    eventTimes[index] = NoTimestamp;\n    expirationTimes[index] = NoTimestamp;\n    lanes &= ~lane;\n  }\n}\nfunction markRootEntangled(root, entangledLanes) {\n  // In addition to entangling each of the given lanes with each other, we also\n  // have to consider _transitive_ entanglements. For each lane that is already\n  // entangled with *any* of the given lanes, that lane is now transitively\n  // entangled with *all* the given lanes.\n  //\n  // Translated: If C is entangled with A, then entangling A with B also\n  // entangles C with B.\n  //\n  // If this is hard to grasp, it might help to intentionally break this\n  // function and look at the tests that fail in ReactTransition-test.js. Try\n  // commenting out one of the conditions below.\n  var rootEntangledLanes = root.entangledLanes |= entangledLanes;\n  var entanglements = root.entanglements;\n  var lanes = rootEntangledLanes;\n\n  while (lanes) {\n    var index = pickArbitraryLaneIndex(lanes);\n    var lane = 1 << index;\n\n    if ( // Is this one of the newly entangled lanes?\n    lane & entangledLanes | // Is this lane transitively entangled with the newly entangled lanes?\n    entanglements[index] & entangledLanes) {\n      entanglements[index] |= entangledLanes;\n    }\n\n    lanes &= ~lane;\n  }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n  var renderLane = getHighestPriorityLane(renderLanes);\n  var lane;\n\n  switch (renderLane) {\n    case InputContinuousLane:\n      lane = InputContinuousHydrationLane;\n      break;\n\n    case DefaultLane:\n      lane = DefaultHydrationLane;\n      break;\n\n    case TransitionLane1:\n    case TransitionLane2:\n    case TransitionLane3:\n    case TransitionLane4:\n    case TransitionLane5:\n    case TransitionLane6:\n    case TransitionLane7:\n    case TransitionLane8:\n    case TransitionLane9:\n    case TransitionLane10:\n    case TransitionLane11:\n    case TransitionLane12:\n    case TransitionLane13:\n    case TransitionLane14:\n    case TransitionLane15:\n    case TransitionLane16:\n    case RetryLane1:\n    case RetryLane2:\n    case RetryLane3:\n    case RetryLane4:\n    case RetryLane5:\n      lane = TransitionHydrationLane;\n      break;\n\n    case IdleLane:\n      lane = IdleHydrationLane;\n      break;\n\n    default:\n      // Everything else is already either a hydration lane, or shouldn't\n      // be retried at a hydration lane.\n      lane = NoLane;\n      break;\n  } // Check if the lane we chose is suspended. If so, that indicates that we\n  // already attempted and failed to hydrate at that level. Also check if we're\n  // already rendering that lane, which is rare but could happen.\n\n\n  if ((lane & (root.suspendedLanes | renderLanes)) !== NoLane) {\n    // Give up trying to hydrate and fall back to client render.\n    return NoLane;\n  }\n\n  return lane;\n}\nfunction addFiberToLanesMap(root, fiber, lanes) {\n\n  if (!isDevToolsPresent) {\n    return;\n  }\n\n  var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap;\n\n  while (lanes > 0) {\n    var index = laneToIndex(lanes);\n    var lane = 1 << index;\n    var updaters = pendingUpdatersLaneMap[index];\n    updaters.add(fiber);\n    lanes &= ~lane;\n  }\n}\nfunction movePendingFibersToMemoized(root, lanes) {\n\n  if (!isDevToolsPresent) {\n    return;\n  }\n\n  var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap;\n  var memoizedUpdaters = root.memoizedUpdaters;\n\n  while (lanes > 0) {\n    var index = laneToIndex(lanes);\n    var lane = 1 << index;\n    var updaters = pendingUpdatersLaneMap[index];\n\n    if (updaters.size > 0) {\n      updaters.forEach(function (fiber) {\n        var alternate = fiber.alternate;\n\n        if (alternate === null || !memoizedUpdaters.has(alternate)) {\n          memoizedUpdaters.add(fiber);\n        }\n      });\n      updaters.clear();\n    }\n\n    lanes &= ~lane;\n  }\n}\nfunction getTransitionsForLanes(root, lanes) {\n  {\n    return null;\n  }\n}\n\nvar DiscreteEventPriority = SyncLane;\nvar ContinuousEventPriority = InputContinuousLane;\nvar DefaultEventPriority = DefaultLane;\nvar IdleEventPriority = IdleLane;\nvar currentUpdatePriority = NoLane;\nfunction getCurrentUpdatePriority() {\n  return currentUpdatePriority;\n}\nfunction setCurrentUpdatePriority(newPriority) {\n  currentUpdatePriority = newPriority;\n}\nfunction runWithPriority(priority, fn) {\n  var previousPriority = currentUpdatePriority;\n\n  try {\n    currentUpdatePriority = priority;\n    return fn();\n  } finally {\n    currentUpdatePriority = previousPriority;\n  }\n}\nfunction higherEventPriority(a, b) {\n  return a !== 0 && a < b ? a : b;\n}\nfunction lowerEventPriority(a, b) {\n  return a === 0 || a > b ? a : b;\n}\nfunction isHigherEventPriority(a, b) {\n  return a !== 0 && a < b;\n}\nfunction lanesToEventPriority(lanes) {\n  var lane = getHighestPriorityLane(lanes);\n\n  if (!isHigherEventPriority(DiscreteEventPriority, lane)) {\n    return DiscreteEventPriority;\n  }\n\n  if (!isHigherEventPriority(ContinuousEventPriority, lane)) {\n    return ContinuousEventPriority;\n  }\n\n  if (includesNonIdleWork(lane)) {\n    return DefaultEventPriority;\n  }\n\n  return IdleEventPriority;\n}\n\n// This is imported by the event replaying implementation in React DOM. It's\n// in a separate file to break a circular dependency between the renderer and\n// the reconciler.\nfunction isRootDehydrated(root) {\n  var currentState = root.current.memoizedState;\n  return currentState.isDehydrated;\n}\n\nvar _attemptSynchronousHydration;\n\nfunction setAttemptSynchronousHydration(fn) {\n  _attemptSynchronousHydration = fn;\n}\nfunction attemptSynchronousHydration(fiber) {\n  _attemptSynchronousHydration(fiber);\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n  attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n  attemptHydrationAtCurrentPriority = fn;\n}\nvar getCurrentUpdatePriority$1;\nfunction setGetCurrentUpdatePriority(fn) {\n  getCurrentUpdatePriority$1 = fn;\n}\nvar attemptHydrationAtPriority;\nfunction setAttemptHydrationAtPriority(fn) {\n  attemptHydrationAtPriority = fn;\n} // TODO: Upgrade this definition once we're on a newer version of Flow that\n// has this definition built-in.\n\nvar hasScheduledReplayAttempt = false; // The queue of discrete events to be replayed.\n\nvar queuedDiscreteEvents = []; // Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; // For pointer events there can be one latest event per pointerId.\n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); // We could consider replaying selectionchange and touchmoves too.\n\nvar queuedExplicitHydrationTargets = [];\nvar discreteReplayableEvents = ['mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', // Intentionally camelCase\n'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit'];\nfunction isDiscreteEventThatRequiresHydration(eventType) {\n  return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  return {\n    blockedOn: blockedOn,\n    domEventName: domEventName,\n    eventSystemFlags: eventSystemFlags,\n    nativeEvent: nativeEvent,\n    targetContainers: [targetContainer]\n  };\n}\n\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case 'focusin':\n    case 'focusout':\n      queuedFocus = null;\n      break;\n\n    case 'dragenter':\n    case 'dragleave':\n      queuedDrag = null;\n      break;\n\n    case 'mouseover':\n    case 'mouseout':\n      queuedMouse = null;\n      break;\n\n    case 'pointerover':\n    case 'pointerout':\n      {\n        var pointerId = nativeEvent.pointerId;\n        queuedPointers.delete(pointerId);\n        break;\n      }\n\n    case 'gotpointercapture':\n    case 'lostpointercapture':\n      {\n        var _pointerId = nativeEvent.pointerId;\n        queuedPointerCaptures.delete(_pointerId);\n        break;\n      }\n  }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n    var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n    if (blockedOn !== null) {\n      var _fiber2 = getInstanceFromNode(blockedOn);\n\n      if (_fiber2 !== null) {\n        // Attempt to increase the priority of this target.\n        attemptContinuousHydration(_fiber2);\n      }\n    }\n\n    return queuedEvent;\n  } // If we have already queued this exact event, then it's because\n  // the different event systems have different DOM event listeners.\n  // We can accumulate the flags, and the targetContainers, and\n  // store a single event to be replayed.\n\n\n  existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n  var targetContainers = existingQueuedEvent.targetContainers;\n\n  if (targetContainer !== null && targetContainers.indexOf(targetContainer) === -1) {\n    targetContainers.push(targetContainer);\n  }\n\n  return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  // These set relatedTarget to null because the replayed event will be treated as if we\n  // moved from outside the window (no target) onto the target once it hydrates.\n  // Instead of mutating we could clone the event.\n  switch (domEventName) {\n    case 'focusin':\n      {\n        var focusEvent = nativeEvent;\n        queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, domEventName, eventSystemFlags, targetContainer, focusEvent);\n        return true;\n      }\n\n    case 'dragenter':\n      {\n        var dragEvent = nativeEvent;\n        queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, domEventName, eventSystemFlags, targetContainer, dragEvent);\n        return true;\n      }\n\n    case 'mouseover':\n      {\n        var mouseEvent = nativeEvent;\n        queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, domEventName, eventSystemFlags, targetContainer, mouseEvent);\n        return true;\n      }\n\n    case 'pointerover':\n      {\n        var pointerEvent = nativeEvent;\n        var pointerId = pointerEvent.pointerId;\n        queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, pointerEvent));\n        return true;\n      }\n\n    case 'gotpointercapture':\n      {\n        var _pointerEvent = nativeEvent;\n        var _pointerId2 = _pointerEvent.pointerId;\n        queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, _pointerEvent));\n        return true;\n      }\n  }\n\n  return false;\n} // Check if this target is unblocked. Returns true if it's unblocked.\n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n  // TODO: This function shares a lot of logic with findInstanceBlockingEvent.\n  // Try to unify them. It's a bit tricky since it would require two return\n  // values.\n  var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n  if (targetInst !== null) {\n    var nearestMounted = getNearestMountedFiber(targetInst);\n\n    if (nearestMounted !== null) {\n      var tag = nearestMounted.tag;\n\n      if (tag === SuspenseComponent) {\n        var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n        if (instance !== null) {\n          // We're blocked on hydrating this boundary.\n          // Increase its priority.\n          queuedTarget.blockedOn = instance;\n          attemptHydrationAtPriority(queuedTarget.priority, function () {\n            attemptHydrationAtCurrentPriority(nearestMounted);\n          });\n          return;\n        }\n      } else if (tag === HostRoot) {\n        var root = nearestMounted.stateNode;\n\n        if (isRootDehydrated(root)) {\n          queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); // We don't currently have a way to increase the priority of\n          // a root other than sync.\n\n          return;\n        }\n      }\n    }\n  }\n\n  queuedTarget.blockedOn = null;\n}\n\nfunction queueExplicitHydrationTarget(target) {\n  // TODO: This will read the priority if it's dispatched by the React\n  // event system but not native events. Should read window.event.type, like\n  // we do for updates (getCurrentEventPriority).\n  var updatePriority = getCurrentUpdatePriority$1();\n  var queuedTarget = {\n    blockedOn: null,\n    target: target,\n    priority: updatePriority\n  };\n  var i = 0;\n\n  for (; i < queuedExplicitHydrationTargets.length; i++) {\n    // Stop once we hit the first target with lower priority than\n    if (!isHigherEventPriority(updatePriority, queuedExplicitHydrationTargets[i].priority)) {\n      break;\n    }\n  }\n\n  queuedExplicitHydrationTargets.splice(i, 0, queuedTarget);\n\n  if (i === 0) {\n    attemptExplicitHydrationTarget(queuedTarget);\n  }\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n  if (queuedEvent.blockedOn !== null) {\n    return false;\n  }\n\n  var targetContainers = queuedEvent.targetContainers;\n\n  while (targetContainers.length > 0) {\n    var targetContainer = targetContainers[0];\n    var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.domEventName, queuedEvent.eventSystemFlags, targetContainer, queuedEvent.nativeEvent);\n\n    if (nextBlockedOn === null) {\n      {\n        var nativeEvent = queuedEvent.nativeEvent;\n        var nativeEventClone = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n        setReplayingEvent(nativeEventClone);\n        nativeEvent.target.dispatchEvent(nativeEventClone);\n        resetReplayingEvent();\n      }\n    } else {\n      // We're still blocked. Try again later.\n      var _fiber3 = getInstanceFromNode(nextBlockedOn);\n\n      if (_fiber3 !== null) {\n        attemptContinuousHydration(_fiber3);\n      }\n\n      queuedEvent.blockedOn = nextBlockedOn;\n      return false;\n    } // This target container was successfully dispatched. Try the next.\n\n\n    targetContainers.shift();\n  }\n\n  return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n  if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n    map.delete(key);\n  }\n}\n\nfunction replayUnblockedEvents() {\n  hasScheduledReplayAttempt = false;\n\n\n  if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n    queuedFocus = null;\n  }\n\n  if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n    queuedDrag = null;\n  }\n\n  if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n    queuedMouse = null;\n  }\n\n  queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n  queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n  if (queuedEvent.blockedOn === unblocked) {\n    queuedEvent.blockedOn = null;\n\n    if (!hasScheduledReplayAttempt) {\n      hasScheduledReplayAttempt = true; // Schedule a callback to attempt replaying as many events as are\n      // now unblocked. This first might not actually be unblocked yet.\n      // We could check it early to avoid scheduling an unnecessary callback.\n\n      Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n    }\n  }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n  // Mark anything that was blocked on this as no longer blocked\n  // and eligible for a replay.\n  if (queuedDiscreteEvents.length > 0) {\n    scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); // This is a exponential search for each boundary that commits. I think it's\n    // worth it because we expect very few discrete events to queue up and once\n    // we are actually fully unblocked it will be fast to replay them.\n\n    for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n      var queuedEvent = queuedDiscreteEvents[i];\n\n      if (queuedEvent.blockedOn === unblocked) {\n        queuedEvent.blockedOn = null;\n      }\n    }\n  }\n\n  if (queuedFocus !== null) {\n    scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n  }\n\n  if (queuedDrag !== null) {\n    scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n  }\n\n  if (queuedMouse !== null) {\n    scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n  }\n\n  var unblock = function (queuedEvent) {\n    return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n  };\n\n  queuedPointers.forEach(unblock);\n  queuedPointerCaptures.forEach(unblock);\n\n  for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n    var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n    if (queuedTarget.blockedOn === unblocked) {\n      queuedTarget.blockedOn = null;\n    }\n  }\n\n  while (queuedExplicitHydrationTargets.length > 0) {\n    var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n    if (nextExplicitTarget.blockedOn !== null) {\n      // We're still blocked.\n      break;\n    } else {\n      attemptExplicitHydrationTarget(nextExplicitTarget);\n\n      if (nextExplicitTarget.blockedOn === null) {\n        // We're unblocked.\n        queuedExplicitHydrationTargets.shift();\n      }\n    }\n  }\n}\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig; // TODO: can we stop exporting these?\n\nvar _enabled = true; // This is exported in FB builds for use by legacy FB layer infra.\n// We'd like to remove this but it's not clear if this is safe.\n\nfunction setEnabled(enabled) {\n  _enabled = !!enabled;\n}\nfunction isEnabled() {\n  return _enabled;\n}\nfunction createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags) {\n  var eventPriority = getEventPriority(domEventName);\n  var listenerWrapper;\n\n  switch (eventPriority) {\n    case DiscreteEventPriority:\n      listenerWrapper = dispatchDiscreteEvent;\n      break;\n\n    case ContinuousEventPriority:\n      listenerWrapper = dispatchContinuousEvent;\n      break;\n\n    case DefaultEventPriority:\n    default:\n      listenerWrapper = dispatchEvent;\n      break;\n  }\n\n  return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer);\n}\n\nfunction dispatchDiscreteEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n  var previousPriority = getCurrentUpdatePriority();\n  var prevTransition = ReactCurrentBatchConfig.transition;\n  ReactCurrentBatchConfig.transition = null;\n\n  try {\n    setCurrentUpdatePriority(DiscreteEventPriority);\n    dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n  } finally {\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig.transition = prevTransition;\n  }\n}\n\nfunction dispatchContinuousEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n  var previousPriority = getCurrentUpdatePriority();\n  var prevTransition = ReactCurrentBatchConfig.transition;\n  ReactCurrentBatchConfig.transition = null;\n\n  try {\n    setCurrentUpdatePriority(ContinuousEventPriority);\n    dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n  } finally {\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig.transition = prevTransition;\n  }\n}\n\nfunction dispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  if (!_enabled) {\n    return;\n  }\n\n  {\n    dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n  }\n}\n\nfunction dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  var blockedOn = findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n  if (blockedOn === null) {\n    dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, return_targetInst, targetContainer);\n    clearIfContinuousEvent(domEventName, nativeEvent);\n    return;\n  }\n\n  if (queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent)) {\n    nativeEvent.stopPropagation();\n    return;\n  } // We need to clear only if we didn't queue because\n  // queueing is accumulative.\n\n\n  clearIfContinuousEvent(domEventName, nativeEvent);\n\n  if (eventSystemFlags & IS_CAPTURE_PHASE && isDiscreteEventThatRequiresHydration(domEventName)) {\n    while (blockedOn !== null) {\n      var fiber = getInstanceFromNode(blockedOn);\n\n      if (fiber !== null) {\n        attemptSynchronousHydration(fiber);\n      }\n\n      var nextBlockedOn = findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n      if (nextBlockedOn === null) {\n        dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, return_targetInst, targetContainer);\n      }\n\n      if (nextBlockedOn === blockedOn) {\n        break;\n      }\n\n      blockedOn = nextBlockedOn;\n    }\n\n    if (blockedOn !== null) {\n      nativeEvent.stopPropagation();\n    }\n\n    return;\n  } // This is not replayable so we'll invoke it but without a target,\n  // in case the event system needs to trace it.\n\n\n  dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, null, targetContainer);\n}\n\nvar return_targetInst = null; // Returns a SuspenseInstance or Container if it's blocked.\n// The return_targetInst field above is conceptually part of the return value.\n\nfunction findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n  // TODO: Warn if _enabled is false.\n  return_targetInst = null;\n  var nativeEventTarget = getEventTarget(nativeEvent);\n  var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n  if (targetInst !== null) {\n    var nearestMounted = getNearestMountedFiber(targetInst);\n\n    if (nearestMounted === null) {\n      // This tree has been unmounted already. Dispatch without a target.\n      targetInst = null;\n    } else {\n      var tag = nearestMounted.tag;\n\n      if (tag === SuspenseComponent) {\n        var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n        if (instance !== null) {\n          // Queue the event to be replayed later. Abort dispatching since we\n          // don't want this event dispatched twice through the event system.\n          // TODO: If this is the first discrete event in the queue. Schedule an increased\n          // priority for this boundary.\n          return instance;\n        } // This shouldn't happen, something went wrong but to avoid blocking\n        // the whole system, dispatch the event without a target.\n        // TODO: Warn.\n\n\n        targetInst = null;\n      } else if (tag === HostRoot) {\n        var root = nearestMounted.stateNode;\n\n        if (isRootDehydrated(root)) {\n          // If this happens during a replay something went wrong and it might block\n          // the whole system.\n          return getContainerFromFiber(nearestMounted);\n        }\n\n        targetInst = null;\n      } else if (nearestMounted !== targetInst) {\n        // If we get an event (ex: img onload) before committing that\n        // component's mount, ignore it for now (that is, treat it as if it was an\n        // event on a non-React tree). We might also consider queueing events and\n        // dispatching them after the mount.\n        targetInst = null;\n      }\n    }\n  }\n\n  return_targetInst = targetInst; // We're not blocked on anything.\n\n  return null;\n}\nfunction getEventPriority(domEventName) {\n  switch (domEventName) {\n    // Used by SimpleEventPlugin:\n    case 'cancel':\n    case 'click':\n    case 'close':\n    case 'contextmenu':\n    case 'copy':\n    case 'cut':\n    case 'auxclick':\n    case 'dblclick':\n    case 'dragend':\n    case 'dragstart':\n    case 'drop':\n    case 'focusin':\n    case 'focusout':\n    case 'input':\n    case 'invalid':\n    case 'keydown':\n    case 'keypress':\n    case 'keyup':\n    case 'mousedown':\n    case 'mouseup':\n    case 'paste':\n    case 'pause':\n    case 'play':\n    case 'pointercancel':\n    case 'pointerdown':\n    case 'pointerup':\n    case 'ratechange':\n    case 'reset':\n    case 'resize':\n    case 'seeked':\n    case 'submit':\n    case 'touchcancel':\n    case 'touchend':\n    case 'touchstart':\n    case 'volumechange': // Used by polyfills:\n    // eslint-disable-next-line no-fallthrough\n\n    case 'change':\n    case 'selectionchange':\n    case 'textInput':\n    case 'compositionstart':\n    case 'compositionend':\n    case 'compositionupdate': // Only enableCreateEventHandleAPI:\n    // eslint-disable-next-line no-fallthrough\n\n    case 'beforeblur':\n    case 'afterblur': // Not used by React but could be by user code:\n    // eslint-disable-next-line no-fallthrough\n\n    case 'beforeinput':\n    case 'blur':\n    case 'fullscreenchange':\n    case 'focus':\n    case 'hashchange':\n    case 'popstate':\n    case 'select':\n    case 'selectstart':\n      return DiscreteEventPriority;\n\n    case 'drag':\n    case 'dragenter':\n    case 'dragexit':\n    case 'dragleave':\n    case 'dragover':\n    case 'mousemove':\n    case 'mouseout':\n    case 'mouseover':\n    case 'pointermove':\n    case 'pointerout':\n    case 'pointerover':\n    case 'scroll':\n    case 'toggle':\n    case 'touchmove':\n    case 'wheel': // Not used by React but could be by user code:\n    // eslint-disable-next-line no-fallthrough\n\n    case 'mouseenter':\n    case 'mouseleave':\n    case 'pointerenter':\n    case 'pointerleave':\n      return ContinuousEventPriority;\n\n    case 'message':\n      {\n        // We might be in the Scheduler callback.\n        // Eventually this mechanism will be replaced by a check\n        // of the current priority on the native scheduler.\n        var schedulerPriority = getCurrentPriorityLevel();\n\n        switch (schedulerPriority) {\n          case ImmediatePriority:\n            return DiscreteEventPriority;\n\n          case UserBlockingPriority:\n            return ContinuousEventPriority;\n\n          case NormalPriority:\n          case LowPriority:\n            // TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.\n            return DefaultEventPriority;\n\n          case IdlePriority:\n            return IdleEventPriority;\n\n          default:\n            return DefaultEventPriority;\n        }\n      }\n\n    default:\n      return DefaultEventPriority;\n  }\n}\n\nfunction addEventBubbleListener(target, eventType, listener) {\n  target.addEventListener(eventType, listener, false);\n  return listener;\n}\nfunction addEventCaptureListener(target, eventType, listener) {\n  target.addEventListener(eventType, listener, true);\n  return listener;\n}\nfunction addEventCaptureListenerWithPassiveFlag(target, eventType, listener, passive) {\n  target.addEventListener(eventType, listener, {\n    capture: true,\n    passive: passive\n  });\n  return listener;\n}\nfunction addEventBubbleListenerWithPassiveFlag(target, eventType, listener, passive) {\n  target.addEventListener(eventType, listener, {\n    passive: passive\n  });\n  return listener;\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n  root = nativeEventTarget;\n  startText = getText();\n  return true;\n}\nfunction reset() {\n  root = null;\n  startText = null;\n  fallbackText = null;\n}\nfunction getData() {\n  if (fallbackText) {\n    return fallbackText;\n  }\n\n  var start;\n  var startValue = startText;\n  var startLength = startValue.length;\n  var end;\n  var endValue = getText();\n  var endLength = endValue.length;\n\n  for (start = 0; start < startLength; start++) {\n    if (startValue[start] !== endValue[start]) {\n      break;\n    }\n  }\n\n  var minEnd = startLength - start;\n\n  for (end = 1; end <= minEnd; end++) {\n    if (startValue[startLength - end] !== endValue[endLength - end]) {\n      break;\n    }\n  }\n\n  var sliceTail = end > 1 ? 1 - end : undefined;\n  fallbackText = endValue.slice(start, sliceTail);\n  return fallbackText;\n}\nfunction getText() {\n  if ('value' in root) {\n    return root.value;\n  }\n\n  return root.textContent;\n}\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n  // report Enter as charCode 10 when ctrl is pressed.\n\n\n  if (charCode === 10) {\n    charCode = 13;\n  } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n\n\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\nfunction functionThatReturnsTrue() {\n  return true;\n}\n\nfunction functionThatReturnsFalse() {\n  return false;\n} // This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\n\n\nfunction createSyntheticEvent(Interface) {\n  /**\n   * Synthetic events are dispatched by event plugins, typically in response to a\n   * top-level event delegation handler.\n   *\n   * These systems should generally use pooling to reduce the frequency of garbage\n   * collection. The system should check `isPersistent` to determine whether the\n   * event should be released into the pool after being dispatched. Users that\n   * need a persisted event should invoke `persist`.\n   *\n   * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n   * normalizing browser quirks. Subclasses do not necessarily have to implement a\n   * DOM interface; custom application-specific events can also subclass this.\n   */\n  function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n    this._reactName = reactName;\n    this._targetInst = targetInst;\n    this.type = reactEventType;\n    this.nativeEvent = nativeEvent;\n    this.target = nativeEventTarget;\n    this.currentTarget = null;\n\n    for (var _propName in Interface) {\n      if (!Interface.hasOwnProperty(_propName)) {\n        continue;\n      }\n\n      var normalize = Interface[_propName];\n\n      if (normalize) {\n        this[_propName] = normalize(nativeEvent);\n      } else {\n        this[_propName] = nativeEvent[_propName];\n      }\n    }\n\n    var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n    if (defaultPrevented) {\n      this.isDefaultPrevented = functionThatReturnsTrue;\n    } else {\n      this.isDefaultPrevented = functionThatReturnsFalse;\n    }\n\n    this.isPropagationStopped = functionThatReturnsFalse;\n    return this;\n  }\n\n  assign(SyntheticBaseEvent.prototype, {\n    preventDefault: function () {\n      this.defaultPrevented = true;\n      var event = this.nativeEvent;\n\n      if (!event) {\n        return;\n      }\n\n      if (event.preventDefault) {\n        event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n      } else if (typeof event.returnValue !== 'unknown') {\n        event.returnValue = false;\n      }\n\n      this.isDefaultPrevented = functionThatReturnsTrue;\n    },\n    stopPropagation: function () {\n      var event = this.nativeEvent;\n\n      if (!event) {\n        return;\n      }\n\n      if (event.stopPropagation) {\n        event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n      } else if (typeof event.cancelBubble !== 'unknown') {\n        // The ChangeEventPlugin registers a \"propertychange\" event for\n        // IE. This event does not support bubbling or cancelling, and\n        // any references to cancelBubble throw \"Member not found\".  A\n        // typeof check of \"unknown\" circumvents this issue (and is also\n        // IE specific).\n        event.cancelBubble = true;\n      }\n\n      this.isPropagationStopped = functionThatReturnsTrue;\n    },\n\n    /**\n     * We release all dispatched `SyntheticEvent`s after each event loop, adding\n     * them back into the pool. This allows a way to hold onto a reference that\n     * won't be added back into the pool.\n     */\n    persist: function () {// Modern event system doesn't use pooling.\n    },\n\n    /**\n     * Checks if this event should be released back into the pool.\n     *\n     * @return {boolean} True if this should not be released, false otherwise.\n     */\n    isPersistent: functionThatReturnsTrue\n  });\n  return SyntheticBaseEvent;\n}\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar EventInterface = {\n  eventPhase: 0,\n  bubbles: 0,\n  cancelable: 0,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: 0,\n  isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = assign({}, EventInterface, {\n  view: 0,\n  detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n  if (event !== lastMouseEvent) {\n    if (lastMouseEvent && event.type === 'mousemove') {\n      lastMovementX = event.screenX - lastMouseEvent.screenX;\n      lastMovementY = event.screenY - lastMouseEvent.screenY;\n    } else {\n      lastMovementX = 0;\n      lastMovementY = 0;\n    }\n\n    lastMouseEvent = event;\n  }\n}\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar MouseEventInterface = assign({}, UIEventInterface, {\n  screenX: 0,\n  screenY: 0,\n  clientX: 0,\n  clientY: 0,\n  pageX: 0,\n  pageY: 0,\n  ctrlKey: 0,\n  shiftKey: 0,\n  altKey: 0,\n  metaKey: 0,\n  getModifierState: getEventModifierState,\n  button: 0,\n  buttons: 0,\n  relatedTarget: function (event) {\n    if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n    return event.relatedTarget;\n  },\n  movementX: function (event) {\n    if ('movementX' in event) {\n      return event.movementX;\n    }\n\n    updateMouseMovementPolyfillState(event);\n    return lastMovementX;\n  },\n  movementY: function (event) {\n    if ('movementY' in event) {\n      return event.movementY;\n    } // Don't need to call updateMouseMovementPolyfillState() here\n    // because it's guaranteed to have already run when movementX\n    // was copied.\n\n\n    return lastMovementY;\n  }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar DragEventInterface = assign({}, MouseEventInterface, {\n  dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar FocusEventInterface = assign({}, UIEventInterface, {\n  relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar AnimationEventInterface = assign({}, EventInterface, {\n  animationName: 0,\n  elapsedTime: 0,\n  pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar ClipboardEventInterface = assign({}, EventInterface, {\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar CompositionEventInterface = assign({}, EventInterface, {\n  data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\n// Happens to share the same list for now.\n\nvar SyntheticInputEvent = SyntheticCompositionEvent;\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n  Esc: 'Escape',\n  Spacebar: ' ',\n  Left: 'ArrowLeft',\n  Up: 'ArrowUp',\n  Right: 'ArrowRight',\n  Down: 'ArrowDown',\n  Del: 'Delete',\n  Win: 'OS',\n  Menu: 'ContextMenu',\n  Apps: 'ContextMenu',\n  Scroll: 'ScrollLock',\n  MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n  '8': 'Backspace',\n  '9': 'Tab',\n  '12': 'Clear',\n  '13': 'Enter',\n  '16': 'Shift',\n  '17': 'Control',\n  '18': 'Alt',\n  '19': 'Pause',\n  '20': 'CapsLock',\n  '27': 'Escape',\n  '32': ' ',\n  '33': 'PageUp',\n  '34': 'PageDown',\n  '35': 'End',\n  '36': 'Home',\n  '37': 'ArrowLeft',\n  '38': 'ArrowUp',\n  '39': 'ArrowRight',\n  '40': 'ArrowDown',\n  '45': 'Insert',\n  '46': 'Delete',\n  '112': 'F1',\n  '113': 'F2',\n  '114': 'F3',\n  '115': 'F4',\n  '116': 'F5',\n  '117': 'F6',\n  '118': 'F7',\n  '119': 'F8',\n  '120': 'F9',\n  '121': 'F10',\n  '122': 'F11',\n  '123': 'F12',\n  '144': 'NumLock',\n  '145': 'ScrollLock',\n  '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n\n  return '';\n}\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n\nvar modifierKeyToProp = {\n  Alt: 'altKey',\n  Control: 'ctrlKey',\n  Meta: 'metaKey',\n  Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n  key: getEventKey,\n  code: 0,\n  location: 0,\n  ctrlKey: 0,\n  shiftKey: 0,\n  altKey: 0,\n  metaKey: 0,\n  repeat: 0,\n  locale: 0,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n\n    return 0;\n  }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar PointerEventInterface = assign({}, MouseEventInterface, {\n  pointerId: 0,\n  width: 0,\n  height: 0,\n  pressure: 0,\n  tangentialPressure: 0,\n  tiltX: 0,\n  tiltY: 0,\n  twist: 0,\n  pointerType: 0,\n  isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar TouchEventInterface = assign({}, UIEventInterface, {\n  touches: 0,\n  targetTouches: 0,\n  changedTouches: 0,\n  altKey: 0,\n  metaKey: 0,\n  ctrlKey: 0,\n  shiftKey: 0,\n  getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar TransitionEventInterface = assign({}, EventInterface, {\n  propertyName: 0,\n  elapsedTime: 0,\n  pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar WheelEventInterface = assign({}, MouseEventInterface, {\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: 0,\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n} // Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; // In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nfunction registerEvents() {\n  registerTwoPhaseEvent('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']);\n  registerTwoPhaseEvent('onCompositionEnd', ['compositionend', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n  registerTwoPhaseEvent('onCompositionStart', ['compositionstart', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n  registerTwoPhaseEvent('onCompositionUpdate', ['compositionupdate', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n} // Track whether we've ever handled a keypress on the space key.\n\n\nvar hasSpaceKeypress = false;\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\n\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n/**\n * Translate native top level events into event types.\n */\n\n\nfunction getCompositionEventType(domEventName) {\n  switch (domEventName) {\n    case 'compositionstart':\n      return 'onCompositionStart';\n\n    case 'compositionend':\n      return 'onCompositionEnd';\n\n    case 'compositionupdate':\n      return 'onCompositionUpdate';\n  }\n}\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n */\n\n\nfunction isFallbackCompositionStart(domEventName, nativeEvent) {\n  return domEventName === 'keydown' && nativeEvent.keyCode === START_KEYCODE;\n}\n/**\n * Does our fallback mode think that this event is the end of composition?\n */\n\n\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case 'keyup':\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n    case 'keydown':\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n\n    case 'keypress':\n    case 'mousedown':\n    case 'focusout':\n      // Events are not possible without cancelling IME.\n      return true;\n\n    default:\n      return false;\n  }\n}\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n\n  return null;\n}\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n  return nativeEvent.locale === 'ko';\n} // Track the current IME composition status, if any.\n\n\nvar isComposing = false;\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\n\nfunction extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(domEventName);\n  } else if (!isComposing) {\n    if (isFallbackCompositionStart(domEventName, nativeEvent)) {\n      eventType = 'onCompositionStart';\n    }\n  } else if (isFallbackCompositionEnd(domEventName, nativeEvent)) {\n    eventType = 'onCompositionEnd';\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!isComposing && eventType === 'onCompositionStart') {\n      isComposing = initialize(nativeEventTarget);\n    } else if (eventType === 'onCompositionEnd') {\n      if (isComposing) {\n        fallbackData = getData();\n      }\n    }\n  }\n\n  var listeners = accumulateTwoPhaseListeners(targetInst, eventType);\n\n  if (listeners.length > 0) {\n    var event = new SyntheticCompositionEvent(eventType, domEventName, null, nativeEvent, nativeEventTarget);\n    dispatchQueue.push({\n      event: event,\n      listeners: listeners\n    });\n\n    if (fallbackData) {\n      // Inject data generated from fallback path into the synthetic event.\n      // This matches the property of native CompositionEventInterface.\n      event.data = fallbackData;\n    } else {\n      var customData = getDataFromCustomEvent(nativeEvent);\n\n      if (customData !== null) {\n        event.data = customData;\n      }\n    }\n  }\n}\n\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case 'compositionend':\n      return getDataFromCustomEvent(nativeEvent);\n\n    case 'keypress':\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case 'textInput':\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to ignore it.\n\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n */\n\n\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  // If composition event is available, we extract a string only at\n  // compositionevent, otherwise extract it at fallback events.\n  if (isComposing) {\n    if (domEventName === 'compositionend' || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent)) {\n      var chars = getData();\n      reset();\n      isComposing = false;\n      return chars;\n    }\n\n    return null;\n  }\n\n  switch (domEventName) {\n    case 'paste':\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n\n    case 'keypress':\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (!isKeypressCommand(nativeEvent)) {\n        // IE fires the `keypress` event when a user types an emoji via\n        // Touch keyboard of Windows.  In such a case, the `char` property\n        // holds an emoji character like `\\uD83D\\uDE0A`.  Because its length\n        // is 2, the property `which` does not represent an emoji correctly.\n        // In such a case, we directly return the `char` property instead of\n        // using `which`.\n        if (nativeEvent.char && nativeEvent.char.length > 1) {\n          return nativeEvent.char;\n        } else if (nativeEvent.which) {\n          return String.fromCharCode(nativeEvent.which);\n        }\n      }\n\n      return null;\n\n    case 'compositionend':\n      return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n    default:\n      return null;\n  }\n}\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\n\n\nfunction extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(domEventName, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(domEventName, nativeEvent);\n  } // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n\n\n  if (!chars) {\n    return null;\n  }\n\n  var listeners = accumulateTwoPhaseListeners(targetInst, 'onBeforeInput');\n\n  if (listeners.length > 0) {\n    var event = new SyntheticInputEvent('onBeforeInput', 'beforeinput', null, nativeEvent, nativeEventTarget);\n    dispatchQueue.push({\n      event: event,\n      listeners: listeners\n    });\n    event.data = chars;\n  }\n}\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\n\n\nfunction extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n  extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  color: true,\n  date: true,\n  datetime: true,\n  'datetime-local': true,\n  email: true,\n  month: true,\n  number: true,\n  password: true,\n  range: true,\n  search: true,\n  tel: true,\n  text: true,\n  time: true,\n  url: true,\n  week: true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n  if (nodeName === 'input') {\n    return !!supportedInputTypes[elem.type];\n  }\n\n  if (nodeName === 'textarea') {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\nfunction isEventSupported(eventNameSuffix) {\n  if (!canUseDOM) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = (eventName in document);\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  return isSupported;\n}\n\nfunction registerEvents$1() {\n  registerTwoPhaseEvent('onChange', ['change', 'click', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'selectionchange']);\n}\n\nfunction createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) {\n  // Flag this event loop as needing state restore.\n  enqueueStateRestore(target);\n  var listeners = accumulateTwoPhaseListeners(inst, 'onChange');\n\n  if (listeners.length > 0) {\n    var event = new SyntheticEvent('onChange', 'change', null, nativeEvent, target);\n    dispatchQueue.push({\n      event: event,\n      listeners: listeners\n    });\n  }\n}\n/**\n * For IE shims\n */\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n/**\n * SECTION: handle `change` event\n */\n\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var dispatchQueue = [];\n  createAndAccumulateChangeEvent(dispatchQueue, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n\n  batchedUpdates(runEventInBatch, dispatchQueue);\n}\n\nfunction runEventInBatch(dispatchQueue) {\n  processDispatchQueue(dispatchQueue, 0);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n  var targetNode = getNodeFromInstance(targetInst);\n\n  if (updateValueIfChanged(targetNode)) {\n    return targetInst;\n  }\n}\n\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n  if (domEventName === 'change') {\n    return targetInst;\n  }\n}\n/**\n * SECTION: handle `input` event\n */\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events.\n  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\n\n\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n  activeElement = null;\n  activeElementInst = null;\n}\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\n\n\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n\n  if (getInstIfValueChanged(activeElementInst)) {\n    manualDispatchChangeEvent(nativeEvent);\n  }\n}\n\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n  if (domEventName === 'focusin') {\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(target, targetInst);\n  } else if (domEventName === 'focusout') {\n    stopWatchingForValueChange();\n  }\n} // For IE8 and IE9.\n\n\nfunction getTargetInstForInputEventPolyfill(domEventName, targetInst) {\n  if (domEventName === 'selectionchange' || domEventName === 'keyup' || domEventName === 'keydown') {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    return getInstIfValueChanged(activeElementInst);\n  }\n}\n/**\n * SECTION: handle `click` event\n */\n\n\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n  if (domEventName === 'click') {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n  if (domEventName === 'input' || domEventName === 'change') {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction handleControlledInputBlur(node) {\n  var state = node._wrapperState;\n\n  if (!state || !state.controlled || node.type !== 'number') {\n    return;\n  }\n\n  {\n    // If controlled, assign the value attribute to the current value on blur\n    setDefaultValue(node, 'number', node.value);\n  }\n}\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\n\n\nfunction extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n  var getTargetInstFunc, handleEventFunc;\n\n  if (shouldUseChangeEvent(targetNode)) {\n    getTargetInstFunc = getTargetInstForChangeEvent;\n  } else if (isTextInputElement(targetNode)) {\n    if (isInputEventSupported) {\n      getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n    } else {\n      getTargetInstFunc = getTargetInstForInputEventPolyfill;\n      handleEventFunc = handleEventsForInputEventPolyfill;\n    }\n  } else if (shouldUseClickEvent(targetNode)) {\n    getTargetInstFunc = getTargetInstForClickEvent;\n  }\n\n  if (getTargetInstFunc) {\n    var inst = getTargetInstFunc(domEventName, targetInst);\n\n    if (inst) {\n      createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget);\n      return;\n    }\n  }\n\n  if (handleEventFunc) {\n    handleEventFunc(domEventName, targetNode, targetInst);\n  } // When blurring, set the value attribute for number inputs\n\n\n  if (domEventName === 'focusout') {\n    handleControlledInputBlur(targetNode);\n  }\n}\n\nfunction registerEvents$2() {\n  registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover']);\n  registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover']);\n  registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover']);\n  registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover']);\n}\n/**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n\n\nfunction extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  var isOverEvent = domEventName === 'mouseover' || domEventName === 'pointerover';\n  var isOutEvent = domEventName === 'mouseout' || domEventName === 'pointerout';\n\n  if (isOverEvent && !isReplayingEvent(nativeEvent)) {\n    // If this is an over event with a target, we might have already dispatched\n    // the event in the out event of the other target. If this is replayed,\n    // then it's because we couldn't dispatch against this target previously\n    // so we have to do it now instead.\n    var related = nativeEvent.relatedTarget || nativeEvent.fromElement;\n\n    if (related) {\n      // If the related node is managed by React, we can assume that we have\n      // already dispatched the corresponding events during its mouseout.\n      if (getClosestInstanceFromNode(related) || isContainerMarkedAsRoot(related)) {\n        return;\n      }\n    }\n  }\n\n  if (!isOutEvent && !isOverEvent) {\n    // Must not be a mouse or pointer in or out - ignoring.\n    return;\n  }\n\n  var win; // TODO: why is this nullable in the types but we read from it?\n\n  if (nativeEventTarget.window === nativeEventTarget) {\n    // `nativeEventTarget` is probably a window object.\n    win = nativeEventTarget;\n  } else {\n    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n    var doc = nativeEventTarget.ownerDocument;\n\n    if (doc) {\n      win = doc.defaultView || doc.parentWindow;\n    } else {\n      win = window;\n    }\n  }\n\n  var from;\n  var to;\n\n  if (isOutEvent) {\n    var _related = nativeEvent.relatedTarget || nativeEvent.toElement;\n\n    from = targetInst;\n    to = _related ? getClosestInstanceFromNode(_related) : null;\n\n    if (to !== null) {\n      var nearestMounted = getNearestMountedFiber(to);\n\n      if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n        to = null;\n      }\n    }\n  } else {\n    // Moving to a node from outside the window.\n    from = null;\n    to = targetInst;\n  }\n\n  if (from === to) {\n    // Nothing pertains to our managed components.\n    return;\n  }\n\n  var SyntheticEventCtor = SyntheticMouseEvent;\n  var leaveEventType = 'onMouseLeave';\n  var enterEventType = 'onMouseEnter';\n  var eventTypePrefix = 'mouse';\n\n  if (domEventName === 'pointerout' || domEventName === 'pointerover') {\n    SyntheticEventCtor = SyntheticPointerEvent;\n    leaveEventType = 'onPointerLeave';\n    enterEventType = 'onPointerEnter';\n    eventTypePrefix = 'pointer';\n  }\n\n  var fromNode = from == null ? win : getNodeFromInstance(from);\n  var toNode = to == null ? win : getNodeFromInstance(to);\n  var leave = new SyntheticEventCtor(leaveEventType, eventTypePrefix + 'leave', from, nativeEvent, nativeEventTarget);\n  leave.target = fromNode;\n  leave.relatedTarget = toNode;\n  var enter = null; // We should only process this nativeEvent if we are processing\n  // the first ancestor. Next time, we will ignore the event.\n\n  var nativeTargetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n  if (nativeTargetInst === targetInst) {\n    var enterEvent = new SyntheticEventCtor(enterEventType, eventTypePrefix + 'enter', to, nativeEvent, nativeEventTarget);\n    enterEvent.target = toNode;\n    enterEvent.relatedTarget = fromNode;\n    enter = enterEvent;\n  }\n\n  accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leave, enter, from, to);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n  ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nfunction shallowEqual(objA, objB) {\n  if (objectIs(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  } // Test for A's keys different from B.\n\n\n  for (var i = 0; i < keysA.length; i++) {\n    var currentKey = keysA[i];\n\n    if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n\n  return node;\n}\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\n\n\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n\n    node = node.parentNode;\n  }\n}\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === TEXT_NODE) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\n\nfunction getOffsets(outerNode) {\n  var ownerDocument = outerNode.ownerDocument;\n  var win = ownerDocument && ownerDocument.defaultView || window;\n  var selection = win.getSelection && win.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode,\n      anchorOffset = selection.anchorOffset,\n      focusNode = selection.focusNode,\n      focusOffset = selection.focusOffset; // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n  // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n  // expose properties, triggering a \"Permission denied error\" if any of its\n  // properties are accessed. The only seemingly possible way to avoid erroring\n  // is to access a property that typically works for non-anonymous divs and\n  // catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n  try {\n    /* eslint-disable no-unused-expressions */\n    anchorNode.nodeType;\n    focusNode.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n  var length = 0;\n  var start = -1;\n  var end = -1;\n  var indexWithinAnchor = 0;\n  var indexWithinFocus = 0;\n  var node = outerNode;\n  var parentNode = null;\n\n  outer: while (true) {\n    var next = null;\n\n    while (true) {\n      if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n        start = length + anchorOffset;\n      }\n\n      if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n        end = length + focusOffset;\n      }\n\n      if (node.nodeType === TEXT_NODE) {\n        length += node.nodeValue.length;\n      }\n\n      if ((next = node.firstChild) === null) {\n        break;\n      } // Moving from `node` to its first child `next`.\n\n\n      parentNode = node;\n      node = next;\n    }\n\n    while (true) {\n      if (node === outerNode) {\n        // If `outerNode` has children, this is always the second time visiting\n        // it. If it has no children, this is still the first loop, and the only\n        // valid selection is anchorNode and focusNode both equal to this node\n        // and both offsets 0, in which case we will have handled above.\n        break outer;\n      }\n\n      if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n        start = length;\n      }\n\n      if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n        end = length;\n      }\n\n      if ((next = node.nextSibling) !== null) {\n        break;\n      }\n\n      node = parentNode;\n      parentNode = node.parentNode;\n    } // Moving from `node` to its next sibling `next`.\n\n\n    node = next;\n  }\n\n  if (start === -1 || end === -1) {\n    // This should never happen. (Would happen if the anchor/focus nodes aren't\n    // actually inside the passed-in node.)\n    return null;\n  }\n\n  return {\n    start: start,\n    end: end\n  };\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n\nfunction setOffsets(node, offsets) {\n  var doc = node.ownerDocument || document;\n  var win = doc && doc.defaultView || window; // Edge fails with \"Object expected\" in some scenarios.\n  // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n  // fails when pasting 100+ items)\n\n  if (!win.getSelection) {\n    return;\n  }\n\n  var selection = win.getSelection();\n  var length = node.textContent.length;\n  var start = Math.min(offsets.start, length);\n  var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n      return;\n    }\n\n    var range = doc.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nfunction isTextNode(node) {\n  return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nfunction isInDocument(node) {\n  return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n  try {\n    // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n    // to throw, e.g. if it has a cross-origin src attribute.\n    // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n    // iframe.contentDocument.defaultView;\n    // A safety way is to access one of the cross origin properties: Window or Location\n    // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n    // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n    return typeof iframe.contentWindow.location.href === 'string';\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction getActiveElementDeep() {\n  var win = window;\n  var element = getActiveElement();\n\n  while (element instanceof win.HTMLIFrameElement) {\n    if (isSameOriginFrame(element)) {\n      win = element.contentWindow;\n    } else {\n      return element;\n    }\n\n    element = getActiveElement(win.document);\n  }\n\n  return element;\n}\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\n\n\nfunction hasSelectionCapabilities(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n  var focusedElem = getActiveElementDeep();\n  return {\n    focusedElem: focusedElem,\n    selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n  };\n}\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n\nfunction restoreSelection(priorSelectionInformation) {\n  var curFocusedElem = getActiveElementDeep();\n  var priorFocusedElem = priorSelectionInformation.focusedElem;\n  var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n  if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n    if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n      setSelection(priorFocusedElem, priorSelectionRange);\n    } // Focusing a node can change the scroll position, which is undesirable\n\n\n    var ancestors = [];\n    var ancestor = priorFocusedElem;\n\n    while (ancestor = ancestor.parentNode) {\n      if (ancestor.nodeType === ELEMENT_NODE) {\n        ancestors.push({\n          element: ancestor,\n          left: ancestor.scrollLeft,\n          top: ancestor.scrollTop\n        });\n      }\n    }\n\n    if (typeof priorFocusedElem.focus === 'function') {\n      priorFocusedElem.focus();\n    }\n\n    for (var i = 0; i < ancestors.length; i++) {\n      var info = ancestors[i];\n      info.element.scrollLeft = info.left;\n      info.element.scrollTop = info.top;\n    }\n  }\n}\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n\nfunction getSelection(input) {\n  var selection;\n\n  if ('selectionStart' in input) {\n    // Modern browser with input or textarea.\n    selection = {\n      start: input.selectionStart,\n      end: input.selectionEnd\n    };\n  } else {\n    // Content editable or old IE textarea.\n    selection = getOffsets(input);\n  }\n\n  return selection || {\n    start: 0,\n    end: 0\n  };\n}\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input     Set selection bounds of this input or textarea\n * -@offsets   Object of same form that is returned from get*\n */\n\nfunction setSelection(input, offsets) {\n  var start = offsets.start;\n  var end = offsets.end;\n\n  if (end === undefined) {\n    end = start;\n  }\n\n  if ('selectionStart' in input) {\n    input.selectionStart = start;\n    input.selectionEnd = Math.min(end, input.value.length);\n  } else {\n    setOffsets(input, offsets);\n  }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nfunction registerEvents$3() {\n  registerTwoPhaseEvent('onSelect', ['focusout', 'contextmenu', 'dragend', 'focusin', 'keydown', 'keyup', 'mousedown', 'mouseup', 'selectionchange']);\n}\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n */\n\nfunction getSelection$1(node) {\n  if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else {\n    var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n    var selection = win.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  }\n}\n/**\n * Get document associated with the event target.\n */\n\n\nfunction getEventTargetDocument(eventTarget) {\n  return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\n\n\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  var doc = getEventTargetDocument(nativeEventTarget);\n\n  if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n    return;\n  } // Only fire when selection has actually changed.\n\n\n  var currentSelection = getSelection$1(activeElement$1);\n\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n    var listeners = accumulateTwoPhaseListeners(activeElementInst$1, 'onSelect');\n\n    if (listeners.length > 0) {\n      var event = new SyntheticEvent('onSelect', 'select', null, nativeEvent, nativeEventTarget);\n      dispatchQueue.push({\n        event: event,\n        listeners: listeners\n      });\n      event.target = activeElement$1;\n    }\n  }\n}\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\n\n\nfunction extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n\n  switch (domEventName) {\n    // Track the input node that has focus.\n    case 'focusin':\n      if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n        activeElement$1 = targetNode;\n        activeElementInst$1 = targetInst;\n        lastSelection = null;\n      }\n\n      break;\n\n    case 'focusout':\n      activeElement$1 = null;\n      activeElementInst$1 = null;\n      lastSelection = null;\n      break;\n    // Don't fire the event while the user is dragging. This matches the\n    // semantics of the native select event.\n\n    case 'mousedown':\n      mouseDown = true;\n      break;\n\n    case 'contextmenu':\n    case 'mouseup':\n    case 'dragend':\n      mouseDown = false;\n      constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n      break;\n    // Chrome and IE fire non-standard event when selection is changed (and\n    // sometimes when it hasn't). IE's event fires out of order with respect\n    // to key and input events on deletion, so we discard it.\n    //\n    // Firefox doesn't support selectionchange, so check selection status\n    // after each key entry. The selection changes after keydown and before\n    // keyup, but we check on keydown as well in the case of holding down a\n    // key, when multiple keydown events are fired but only one keyup is.\n    // This is also our approach for IE handling, for the reason above.\n\n    case 'selectionchange':\n      if (skipSelectionChangeEvent) {\n        break;\n      }\n\n    // falls through\n\n    case 'keydown':\n    case 'keyup':\n      constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n  }\n}\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\n\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n  prefixes['Moz' + styleProp] = 'moz' + eventName;\n  return prefixes;\n}\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\n\n\nvar vendorPrefixes = {\n  animationend: makePrefixMap('Animation', 'AnimationEnd'),\n  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n  animationstart: makePrefixMap('Animation', 'AnimationStart'),\n  transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\n\nvar prefixedEventNames = {};\n/**\n * Element to check for prefixes on.\n */\n\nvar style = {};\n/**\n * Bootstrap if a DOM exists.\n */\n\nif (canUseDOM) {\n  style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x,\n  // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n  // style object but the events that fire will still be prefixed, so we need\n  // to check if the un-prefixed events are usable, and if not remove them from the map.\n\n  if (!('AnimationEvent' in window)) {\n    delete vendorPrefixes.animationend.animation;\n    delete vendorPrefixes.animationiteration.animation;\n    delete vendorPrefixes.animationstart.animation;\n  } // Same as above\n\n\n  if (!('TransitionEvent' in window)) {\n    delete vendorPrefixes.transitionend.transition;\n  }\n}\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\n\n\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  } else if (!vendorPrefixes[eventName]) {\n    return eventName;\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  for (var styleProp in prefixMap) {\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n      return prefixedEventNames[eventName] = prefixMap[styleProp];\n    }\n  }\n\n  return eventName;\n}\n\nvar ANIMATION_END = getVendorPrefixedEventName('animationend');\nvar ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration');\nvar ANIMATION_START = getVendorPrefixedEventName('animationstart');\nvar TRANSITION_END = getVendorPrefixedEventName('transitionend');\n\nvar topLevelEventsToReactNames = new Map(); // NOTE: Capitalization is important in this list!\n//\n// E.g. it needs \"pointerDown\", not \"pointerdown\".\n// This is because we derive both React name (\"onPointerDown\")\n// and DOM name (\"pointerdown\") from the same list.\n//\n// Exceptions that don't match this convention are listed separately.\n//\n// prettier-ignore\n\nvar simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'toggle', 'touchMove', 'waiting', 'wheel'];\n\nfunction registerSimpleEvent(domEventName, reactName) {\n  topLevelEventsToReactNames.set(domEventName, reactName);\n  registerTwoPhaseEvent(reactName, [domEventName]);\n}\n\nfunction registerSimpleEvents() {\n  for (var i = 0; i < simpleEventPluginEvents.length; i++) {\n    var eventName = simpleEventPluginEvents[i];\n    var domEventName = eventName.toLowerCase();\n    var capitalizedEvent = eventName[0].toUpperCase() + eventName.slice(1);\n    registerSimpleEvent(domEventName, 'on' + capitalizedEvent);\n  } // Special cases where event names don't match.\n\n\n  registerSimpleEvent(ANIMATION_END, 'onAnimationEnd');\n  registerSimpleEvent(ANIMATION_ITERATION, 'onAnimationIteration');\n  registerSimpleEvent(ANIMATION_START, 'onAnimationStart');\n  registerSimpleEvent('dblclick', 'onDoubleClick');\n  registerSimpleEvent('focusin', 'onFocus');\n  registerSimpleEvent('focusout', 'onBlur');\n  registerSimpleEvent(TRANSITION_END, 'onTransitionEnd');\n}\n\nfunction extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  var reactName = topLevelEventsToReactNames.get(domEventName);\n\n  if (reactName === undefined) {\n    return;\n  }\n\n  var SyntheticEventCtor = SyntheticEvent;\n  var reactEventType = domEventName;\n\n  switch (domEventName) {\n    case 'keypress':\n      // Firefox creates a keypress event for function keys too. This removes\n      // the unwanted keypress events. Enter is however both printable and\n      // non-printable. One would expect Tab to be as well (but it isn't).\n      if (getEventCharCode(nativeEvent) === 0) {\n        return;\n      }\n\n    /* falls through */\n\n    case 'keydown':\n    case 'keyup':\n      SyntheticEventCtor = SyntheticKeyboardEvent;\n      break;\n\n    case 'focusin':\n      reactEventType = 'focus';\n      SyntheticEventCtor = SyntheticFocusEvent;\n      break;\n\n    case 'focusout':\n      reactEventType = 'blur';\n      SyntheticEventCtor = SyntheticFocusEvent;\n      break;\n\n    case 'beforeblur':\n    case 'afterblur':\n      SyntheticEventCtor = SyntheticFocusEvent;\n      break;\n\n    case 'click':\n      // Firefox creates a click event on right mouse clicks. This removes the\n      // unwanted click events.\n      if (nativeEvent.button === 2) {\n        return;\n      }\n\n    /* falls through */\n\n    case 'auxclick':\n    case 'dblclick':\n    case 'mousedown':\n    case 'mousemove':\n    case 'mouseup': // TODO: Disabled elements should not respond to mouse events\n\n    /* falls through */\n\n    case 'mouseout':\n    case 'mouseover':\n    case 'contextmenu':\n      SyntheticEventCtor = SyntheticMouseEvent;\n      break;\n\n    case 'drag':\n    case 'dragend':\n    case 'dragenter':\n    case 'dragexit':\n    case 'dragleave':\n    case 'dragover':\n    case 'dragstart':\n    case 'drop':\n      SyntheticEventCtor = SyntheticDragEvent;\n      break;\n\n    case 'touchcancel':\n    case 'touchend':\n    case 'touchmove':\n    case 'touchstart':\n      SyntheticEventCtor = SyntheticTouchEvent;\n      break;\n\n    case ANIMATION_END:\n    case ANIMATION_ITERATION:\n    case ANIMATION_START:\n      SyntheticEventCtor = SyntheticAnimationEvent;\n      break;\n\n    case TRANSITION_END:\n      SyntheticEventCtor = SyntheticTransitionEvent;\n      break;\n\n    case 'scroll':\n      SyntheticEventCtor = SyntheticUIEvent;\n      break;\n\n    case 'wheel':\n      SyntheticEventCtor = SyntheticWheelEvent;\n      break;\n\n    case 'copy':\n    case 'cut':\n    case 'paste':\n      SyntheticEventCtor = SyntheticClipboardEvent;\n      break;\n\n    case 'gotpointercapture':\n    case 'lostpointercapture':\n    case 'pointercancel':\n    case 'pointerdown':\n    case 'pointermove':\n    case 'pointerout':\n    case 'pointerover':\n    case 'pointerup':\n      SyntheticEventCtor = SyntheticPointerEvent;\n      break;\n  }\n\n  var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n  {\n    // Some events don't bubble in the browser.\n    // In the past, React has always bubbled them, but this can be surprising.\n    // We're going to try aligning closer to the browser behavior by not bubbling\n    // them in React either. We'll start by not bubbling onScroll, and then expand.\n    var accumulateTargetOnly = !inCapturePhase && // TODO: ideally, we'd eventually add all events from\n    // nonDelegatedEvents list in DOMPluginEventSystem.\n    // Then we can remove this special list.\n    // This is a breaking change that can wait until React 18.\n    domEventName === 'scroll';\n\n    var _listeners = accumulateSinglePhaseListeners(targetInst, reactName, nativeEvent.type, inCapturePhase, accumulateTargetOnly);\n\n    if (_listeners.length > 0) {\n      // Intentionally create event lazily.\n      var _event = new SyntheticEventCtor(reactName, reactEventType, null, nativeEvent, nativeEventTarget);\n\n      dispatchQueue.push({\n        event: _event,\n        listeners: _listeners\n      });\n    }\n  }\n}\n\n// TODO: remove top-level side effect.\nregisterSimpleEvents();\nregisterEvents$2();\nregisterEvents$1();\nregisterEvents$3();\nregisterEvents();\n\nfunction extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n  // TODO: we should remove the concept of a \"SimpleEventPlugin\".\n  // This is the basic functionality of the event system. All\n  // the other plugins are essentially polyfills. So the plugin\n  // should probably be inlined somewhere and have its logic\n  // be core the to event system. This would potentially allow\n  // us to ship builds of React without the polyfilled plugins below.\n  extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n  var shouldProcessPolyfillPlugins = (eventSystemFlags & SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS) === 0; // We don't process these events unless we are in the\n  // event's native \"bubble\" phase, which means that we're\n  // not in the capture phase. That's because we emulate\n  // the capture phase here still. This is a trade-off,\n  // because in an ideal world we would not emulate and use\n  // the phases properly, like we do with the SimpleEvent\n  // plugin. However, the plugins below either expect\n  // emulation (EnterLeave) or use state localized to that\n  // plugin (BeforeInput, Change, Select). The state in\n  // these modules complicates things, as you'll essentially\n  // get the case where the capture phase event might change\n  // state, only for the following bubble event to come in\n  // later and not trigger anything as the state now\n  // invalidates the heuristics of the event plugin. We\n  // could alter all these plugins to work in such ways, but\n  // that might cause other unknown side-effects that we\n  // can't foresee right now.\n\n  if (shouldProcessPolyfillPlugins) {\n    extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n    extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n    extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n    extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n  }\n} // List of events that need to be individually attached to media elements.\n\n\nvar mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'encrypted', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'resize', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting']; // We should not delegate these events to the container, but rather\n// set them on the actual target element itself. This is primarily\n// because these events do not consistently bubble in the DOM.\n\nvar nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'toggle'].concat(mediaEventTypes));\n\nfunction executeDispatch(event, listener, currentTarget) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = currentTarget;\n  invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n  event.currentTarget = null;\n}\n\nfunction processDispatchQueueItemsInOrder(event, dispatchListeners, inCapturePhase) {\n  var previousInstance;\n\n  if (inCapturePhase) {\n    for (var i = dispatchListeners.length - 1; i >= 0; i--) {\n      var _dispatchListeners$i = dispatchListeners[i],\n          instance = _dispatchListeners$i.instance,\n          currentTarget = _dispatchListeners$i.currentTarget,\n          listener = _dispatchListeners$i.listener;\n\n      if (instance !== previousInstance && event.isPropagationStopped()) {\n        return;\n      }\n\n      executeDispatch(event, listener, currentTarget);\n      previousInstance = instance;\n    }\n  } else {\n    for (var _i = 0; _i < dispatchListeners.length; _i++) {\n      var _dispatchListeners$_i = dispatchListeners[_i],\n          _instance = _dispatchListeners$_i.instance,\n          _currentTarget = _dispatchListeners$_i.currentTarget,\n          _listener = _dispatchListeners$_i.listener;\n\n      if (_instance !== previousInstance && event.isPropagationStopped()) {\n        return;\n      }\n\n      executeDispatch(event, _listener, _currentTarget);\n      previousInstance = _instance;\n    }\n  }\n}\n\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n  var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n  for (var i = 0; i < dispatchQueue.length; i++) {\n    var _dispatchQueue$i = dispatchQueue[i],\n        event = _dispatchQueue$i.event,\n        listeners = _dispatchQueue$i.listeners;\n    processDispatchQueueItemsInOrder(event, listeners, inCapturePhase); //  event system doesn't use pooling.\n  } // This would be a good time to rethrow if any of the event handlers threw.\n\n\n  rethrowCaughtError();\n}\n\nfunction dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n  var nativeEventTarget = getEventTarget(nativeEvent);\n  var dispatchQueue = [];\n  extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n  processDispatchQueue(dispatchQueue, eventSystemFlags);\n}\n\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n  {\n    if (!nonDelegatedEvents.has(domEventName)) {\n      error('Did not expect a listenToNonDelegatedEvent() call for \"%s\". ' + 'This is a bug in React. Please file an issue.', domEventName);\n    }\n  }\n\n  var isCapturePhaseListener = false;\n  var listenerSet = getEventListenerSet(targetElement);\n  var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener);\n\n  if (!listenerSet.has(listenerSetKey)) {\n    addTrappedEventListener(targetElement, domEventName, IS_NON_DELEGATED, isCapturePhaseListener);\n    listenerSet.add(listenerSetKey);\n  }\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n  {\n    if (nonDelegatedEvents.has(domEventName) && !isCapturePhaseListener) {\n      error('Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. ' + 'This is a bug in React. Please file an issue.', domEventName);\n    }\n  }\n\n  var eventSystemFlags = 0;\n\n  if (isCapturePhaseListener) {\n    eventSystemFlags |= IS_CAPTURE_PHASE;\n  }\n\n  addTrappedEventListener(target, domEventName, eventSystemFlags, isCapturePhaseListener);\n} // This is only used by createEventHandle when the\nvar listeningMarker = '_reactListening' + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n  if (!rootContainerElement[listeningMarker]) {\n    rootContainerElement[listeningMarker] = true;\n    allNativeEvents.forEach(function (domEventName) {\n      // We handle selectionchange separately because it\n      // doesn't bubble and needs to be on the document.\n      if (domEventName !== 'selectionchange') {\n        if (!nonDelegatedEvents.has(domEventName)) {\n          listenToNativeEvent(domEventName, false, rootContainerElement);\n        }\n\n        listenToNativeEvent(domEventName, true, rootContainerElement);\n      }\n    });\n    var ownerDocument = rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n\n    if (ownerDocument !== null) {\n      // The selectionchange event also needs deduplication\n      // but it is attached to the document.\n      if (!ownerDocument[listeningMarker]) {\n        ownerDocument[listeningMarker] = true;\n        listenToNativeEvent('selectionchange', false, ownerDocument);\n      }\n    }\n  }\n}\n\nfunction addTrappedEventListener(targetContainer, domEventName, eventSystemFlags, isCapturePhaseListener, isDeferredListenerForLegacyFBSupport) {\n  var listener = createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags); // If passive option is not supported, then the event will be\n  // active and not passive.\n\n  var isPassiveListener = undefined;\n\n  if (passiveBrowserEventsSupported) {\n    // Browsers introduced an intervention, making these events\n    // passive by default on document. React doesn't bind them\n    // to document anymore, but changing this now would undo\n    // the performance wins from the change. So we emulate\n    // the existing behavior manually on the roots now.\n    // https://github.com/facebook/react/issues/19651\n    if (domEventName === 'touchstart' || domEventName === 'touchmove' || domEventName === 'wheel') {\n      isPassiveListener = true;\n    }\n  }\n\n  targetContainer =  targetContainer;\n  var unsubscribeListener; // When legacyFBSupport is enabled, it's for when we\n\n\n  if (isCapturePhaseListener) {\n    if (isPassiveListener !== undefined) {\n      unsubscribeListener = addEventCaptureListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n    } else {\n      unsubscribeListener = addEventCaptureListener(targetContainer, domEventName, listener);\n    }\n  } else {\n    if (isPassiveListener !== undefined) {\n      unsubscribeListener = addEventBubbleListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n    } else {\n      unsubscribeListener = addEventBubbleListener(targetContainer, domEventName, listener);\n    }\n  }\n}\n\nfunction isMatchingRootContainer(grandContainer, targetContainer) {\n  return grandContainer === targetContainer || grandContainer.nodeType === COMMENT_NODE && grandContainer.parentNode === targetContainer;\n}\n\nfunction dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n  var ancestorInst = targetInst;\n\n  if ((eventSystemFlags & IS_EVENT_HANDLE_NON_MANAGED_NODE) === 0 && (eventSystemFlags & IS_NON_DELEGATED) === 0) {\n    var targetContainerNode = targetContainer; // If we are using the legacy FB support flag, we\n\n    if (targetInst !== null) {\n      // The below logic attempts to work out if we need to change\n      // the target fiber to a different ancestor. We had similar logic\n      // in the legacy event system, except the big difference between\n      // systems is that the modern event system now has an event listener\n      // attached to each React Root and React Portal Root. Together,\n      // the DOM nodes representing these roots are the \"rootContainer\".\n      // To figure out which ancestor instance we should use, we traverse\n      // up the fiber tree from the target instance and attempt to find\n      // root boundaries that match that of our current \"rootContainer\".\n      // If we find that \"rootContainer\", we find the parent fiber\n      // sub-tree for that root and make that our ancestor instance.\n      var node = targetInst;\n\n      mainLoop: while (true) {\n        if (node === null) {\n          return;\n        }\n\n        var nodeTag = node.tag;\n\n        if (nodeTag === HostRoot || nodeTag === HostPortal) {\n          var container = node.stateNode.containerInfo;\n\n          if (isMatchingRootContainer(container, targetContainerNode)) {\n            break;\n          }\n\n          if (nodeTag === HostPortal) {\n            // The target is a portal, but it's not the rootContainer we're looking for.\n            // Normally portals handle their own events all the way down to the root.\n            // So we should be able to stop now. However, we don't know if this portal\n            // was part of *our* root.\n            var grandNode = node.return;\n\n            while (grandNode !== null) {\n              var grandTag = grandNode.tag;\n\n              if (grandTag === HostRoot || grandTag === HostPortal) {\n                var grandContainer = grandNode.stateNode.containerInfo;\n\n                if (isMatchingRootContainer(grandContainer, targetContainerNode)) {\n                  // This is the rootContainer we're looking for and we found it as\n                  // a parent of the Portal. That means we can ignore it because the\n                  // Portal will bubble through to us.\n                  return;\n                }\n              }\n\n              grandNode = grandNode.return;\n            }\n          } // Now we need to find it's corresponding host fiber in the other\n          // tree. To do this we can use getClosestInstanceFromNode, but we\n          // need to validate that the fiber is a host instance, otherwise\n          // we need to traverse up through the DOM till we find the correct\n          // node that is from the other tree.\n\n\n          while (container !== null) {\n            var parentNode = getClosestInstanceFromNode(container);\n\n            if (parentNode === null) {\n              return;\n            }\n\n            var parentTag = parentNode.tag;\n\n            if (parentTag === HostComponent || parentTag === HostText) {\n              node = ancestorInst = parentNode;\n              continue mainLoop;\n            }\n\n            container = container.parentNode;\n          }\n        }\n\n        node = node.return;\n      }\n    }\n  }\n\n  batchedUpdates(function () {\n    return dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, ancestorInst);\n  });\n}\n\nfunction createDispatchListener(instance, listener, currentTarget) {\n  return {\n    instance: instance,\n    listener: listener,\n    currentTarget: currentTarget\n  };\n}\n\nfunction accumulateSinglePhaseListeners(targetFiber, reactName, nativeEventType, inCapturePhase, accumulateTargetOnly, nativeEvent) {\n  var captureName = reactName !== null ? reactName + 'Capture' : null;\n  var reactEventName = inCapturePhase ? captureName : reactName;\n  var listeners = [];\n  var instance = targetFiber;\n  var lastHostComponent = null; // Accumulate all instances and listeners via the target -> root path.\n\n  while (instance !== null) {\n    var _instance2 = instance,\n        stateNode = _instance2.stateNode,\n        tag = _instance2.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n    if (tag === HostComponent && stateNode !== null) {\n      lastHostComponent = stateNode; // createEventHandle listeners\n\n\n      if (reactEventName !== null) {\n        var listener = getListener(instance, reactEventName);\n\n        if (listener != null) {\n          listeners.push(createDispatchListener(instance, listener, lastHostComponent));\n        }\n      }\n    } // If we are only accumulating events for the target, then we don't\n    // continue to propagate through the React fiber tree to find other\n    // listeners.\n\n\n    if (accumulateTargetOnly) {\n      break;\n    } // If we are processing the onBeforeBlur event, then we need to take\n\n    instance = instance.return;\n  }\n\n  return listeners;\n} // We should only use this function for:\n// - BeforeInputEventPlugin\n// - ChangeEventPlugin\n// - SelectEventPlugin\n// This is because we only process these plugins\n// in the bubble phase, so we need to accumulate two\n// phase event listeners (via emulation).\n\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n  var captureName = reactName + 'Capture';\n  var listeners = [];\n  var instance = targetFiber; // Accumulate all instances and listeners via the target -> root path.\n\n  while (instance !== null) {\n    var _instance3 = instance,\n        stateNode = _instance3.stateNode,\n        tag = _instance3.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n    if (tag === HostComponent && stateNode !== null) {\n      var currentTarget = stateNode;\n      var captureListener = getListener(instance, captureName);\n\n      if (captureListener != null) {\n        listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n      }\n\n      var bubbleListener = getListener(instance, reactName);\n\n      if (bubbleListener != null) {\n        listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n      }\n    }\n\n    instance = instance.return;\n  }\n\n  return listeners;\n}\n\nfunction getParent(inst) {\n  if (inst === null) {\n    return null;\n  }\n\n  do {\n    inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n    // That is depending on if we want nested subtrees (layers) to bubble\n    // events to their parent. We could also go through parentNode on the\n    // host node but that wouldn't work for React Native and doesn't let us\n    // do the portal feature.\n  } while (inst && inst.tag !== HostComponent);\n\n  if (inst) {\n    return inst;\n  }\n\n  return null;\n}\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n  var nodeA = instA;\n  var nodeB = instB;\n  var depthA = 0;\n\n  for (var tempA = nodeA; tempA; tempA = getParent(tempA)) {\n    depthA++;\n  }\n\n  var depthB = 0;\n\n  for (var tempB = nodeB; tempB; tempB = getParent(tempB)) {\n    depthB++;\n  } // If A is deeper, crawl up.\n\n\n  while (depthA - depthB > 0) {\n    nodeA = getParent(nodeA);\n    depthA--;\n  } // If B is deeper, crawl up.\n\n\n  while (depthB - depthA > 0) {\n    nodeB = getParent(nodeB);\n    depthB--;\n  } // Walk in lockstep until we find a match.\n\n\n  var depth = depthA;\n\n  while (depth--) {\n    if (nodeA === nodeB || nodeB !== null && nodeA === nodeB.alternate) {\n      return nodeA;\n    }\n\n    nodeA = getParent(nodeA);\n    nodeB = getParent(nodeB);\n  }\n\n  return null;\n}\n\nfunction accumulateEnterLeaveListenersForEvent(dispatchQueue, event, target, common, inCapturePhase) {\n  var registrationName = event._reactName;\n  var listeners = [];\n  var instance = target;\n\n  while (instance !== null) {\n    if (instance === common) {\n      break;\n    }\n\n    var _instance4 = instance,\n        alternate = _instance4.alternate,\n        stateNode = _instance4.stateNode,\n        tag = _instance4.tag;\n\n    if (alternate !== null && alternate === common) {\n      break;\n    }\n\n    if (tag === HostComponent && stateNode !== null) {\n      var currentTarget = stateNode;\n\n      if (inCapturePhase) {\n        var captureListener = getListener(instance, registrationName);\n\n        if (captureListener != null) {\n          listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n        }\n      } else if (!inCapturePhase) {\n        var bubbleListener = getListener(instance, registrationName);\n\n        if (bubbleListener != null) {\n          listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n        }\n      }\n    }\n\n    instance = instance.return;\n  }\n\n  if (listeners.length !== 0) {\n    dispatchQueue.push({\n      event: event,\n      listeners: listeners\n    });\n  }\n} // We should only use this function for:\n// - EnterLeaveEventPlugin\n// This is because we only process this plugin\n// in the bubble phase, so we need to accumulate two\n// phase event listeners.\n\n\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leaveEvent, enterEvent, from, to) {\n  var common = from && to ? getLowestCommonAncestor(from, to) : null;\n\n  if (from !== null) {\n    accumulateEnterLeaveListenersForEvent(dispatchQueue, leaveEvent, from, common, false);\n  }\n\n  if (to !== null && enterEvent !== null) {\n    accumulateEnterLeaveListenersForEvent(dispatchQueue, enterEvent, to, common, true);\n  }\n}\nfunction getListenerSetKey(domEventName, capture) {\n  return domEventName + \"__\" + (capture ? 'capture' : 'bubble');\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar warnedUnknownTags;\nvar validatePropertiesInDevelopment;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeHTML;\n\n{\n  warnedUnknownTags = {\n    // There are working polyfills for <dialog>. Let people use it.\n    dialog: true,\n    // Electron ships a custom <webview> tag to display external web content in\n    // an isolated frame and process.\n    // This tag is not present in non Electron environments such as JSDom which\n    // is often used for testing purposes.\n    // @see https://electronjs.org/docs/api/webview-tag\n    webview: true\n  };\n\n  validatePropertiesInDevelopment = function (type, props) {\n    validateProperties(type, props);\n    validateProperties$1(type, props);\n    validateProperties$2(type, props, {\n      registrationNameDependencies: registrationNameDependencies,\n      possibleRegistrationNames: possibleRegistrationNames\n    });\n  }; // IE 11 parses & normalizes the style attribute as opposed to other\n  // browsers. It adds spaces and sorts the properties in some\n  // non-alphabetical order. Handling that would require sorting CSS\n  // properties in the client & server versions or applying\n  // `expectedStyle` to a temporary DOM node to read its `style` attribute\n  // normalized. Since it only affects IE, we're skipping style warnings\n  // in that browser completely in favor of doing all that work.\n  // See https://github.com/facebook/react/issues/11807\n\n\n  canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode;\n\n  warnForPropDifference = function (propName, serverValue, clientValue) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n    var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n    if (normalizedServerValue === normalizedClientValue) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n  };\n\n  warnForExtraAttributes = function (attributeNames) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n    var names = [];\n    attributeNames.forEach(function (name) {\n      names.push(name);\n    });\n\n    error('Extra attributes from the server: %s', names);\n  };\n\n  warnForInvalidEventListener = function (registrationName, listener) {\n    if (listener === false) {\n      error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n    } else {\n      error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n    }\n  }; // Parse the HTML and read it back to normalize the HTML string so that it\n  // can be used for comparison.\n\n\n  normalizeHTML = function (parent, html) {\n    // We could have created a separate document here to avoid\n    // re-initializing custom elements if they exist. But this breaks\n    // how <noscript> is being handled. So we use the same document.\n    // See the discussion in https://github.com/facebook/react/pull/11157.\n    var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n    testElement.innerHTML = html;\n    return testElement.innerHTML;\n  };\n} // HTML parsing normalizes CR and CRLF to LF.\n// It also can turn \\u0000 into \\uFFFD inside attributes.\n// https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n// If we have a mismatch, it might be caused by that.\n// We will still patch up in this case but not fire the warning.\n\n\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\nvar NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\nfunction normalizeMarkupForTextOrAttribute(markup) {\n  {\n    checkHtmlStringCoercion(markup);\n  }\n\n  var markupString = typeof markup === 'string' ? markup : '' + markup;\n  return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n}\n\nfunction checkForUnmatchedText(serverText, clientText, isConcurrentMode, shouldWarnDev) {\n  var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n  var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n  if (normalizedServerText === normalizedClientText) {\n    return;\n  }\n\n  if (shouldWarnDev) {\n    {\n      if (!didWarnInvalidHydration) {\n        didWarnInvalidHydration = true;\n\n        error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n      }\n    }\n  }\n\n  if (isConcurrentMode && enableClientRenderFallbackOnTextMismatch) {\n    // In concurrent roots, we throw when there's a text mismatch and revert to\n    // client rendering, up to the nearest Suspense boundary.\n    throw new Error('Text content does not match server-rendered HTML.');\n  }\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n  return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n  // Mobile Safari does not fire properly bubble click events on\n  // non-interactive elements, which means delegated click listeners do not\n  // fire. The workaround for this bug involves attaching an empty click\n  // listener on the target node.\n  // https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n  // Just set it using the onclick property so that we don't have to manage any\n  // bookkeeping for it. Not sure if we need to clear it when the listener is\n  // removed.\n  // TODO: Only do this for the relevant Safaris maybe?\n  node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n  for (var propKey in nextProps) {\n    if (!nextProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n\n    var nextProp = nextProps[propKey];\n\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      } // Relies on `updateStylesByID` not mutating `styleUpdates`.\n\n\n      setValueForStyles(domElement, nextProp);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n      if (nextHtml != null) {\n        setInnerHTML(domElement, nextHtml);\n      }\n    } else if (propKey === CHILDREN) {\n      if (typeof nextProp === 'string') {\n        // Avoid setting initial textContent when the text is empty. In IE11 setting\n        // textContent on a <textarea> will cause the placeholder to not\n        // show within the <textarea> until it has been focused and blurred again.\n        // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n        var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n        if (canSetTextContent) {\n          setTextContent(domElement, nextProp);\n        }\n      } else if (typeof nextProp === 'number') {\n        setTextContent(domElement, '' + nextProp);\n      }\n    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        if (propKey === 'onScroll') {\n          listenToNonDelegatedEvent('scroll', domElement);\n        }\n      }\n    } else if (nextProp != null) {\n      setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n    }\n  }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n  // TODO: Handle wasCustomComponentTag\n  for (var i = 0; i < updatePayload.length; i += 2) {\n    var propKey = updatePayload[i];\n    var propValue = updatePayload[i + 1];\n\n    if (propKey === STYLE) {\n      setValueForStyles(domElement, propValue);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      setInnerHTML(domElement, propValue);\n    } else if (propKey === CHILDREN) {\n      setTextContent(domElement, propValue);\n    } else {\n      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n    }\n  }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n  var isCustomComponentTag; // We create tags in the namespace of their parent container, except HTML\n  // tags get no namespace.\n\n  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n  var domElement;\n  var namespaceURI = parentNamespace;\n\n  if (namespaceURI === HTML_NAMESPACE) {\n    namespaceURI = getIntrinsicNamespace(type);\n  }\n\n  if (namespaceURI === HTML_NAMESPACE) {\n    {\n      isCustomComponentTag = isCustomComponent(type, props); // Should this check be gated by parent namespace? Not sure we want to\n      // allow <SVG> or <mATH>.\n\n      if (!isCustomComponentTag && type !== type.toLowerCase()) {\n        error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n      }\n    }\n\n    if (type === 'script') {\n      // Create the script via .innerHTML so its \"parser-inserted\" flag is\n      // set to true and it does not execute\n      var div = ownerDocument.createElement('div');\n\n      div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n      // This is guaranteed to yield a script element.\n\n      var firstChild = div.firstChild;\n      domElement = div.removeChild(firstChild);\n    } else if (typeof props.is === 'string') {\n      // $FlowIssue `createElement` should be updated for Web Components\n      domElement = ownerDocument.createElement(type, {\n        is: props.is\n      });\n    } else {\n      // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n      // See discussion in https://github.com/facebook/react/pull/6896\n      // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n      domElement = ownerDocument.createElement(type); // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n      // attributes on `select`s needs to be added before `option`s are inserted.\n      // This prevents:\n      // - a bug where the `select` does not scroll to the correct option because singular\n      //  `select` elements automatically pick the first item #13222\n      // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n      // See https://github.com/facebook/react/issues/13222\n      // and https://github.com/facebook/react/issues/14239\n\n      if (type === 'select') {\n        var node = domElement;\n\n        if (props.multiple) {\n          node.multiple = true;\n        } else if (props.size) {\n          // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n          // it is possible that no option is selected.\n          //\n          // This is only necessary when a select in \"single selection mode\".\n          node.size = props.size;\n        }\n      }\n    }\n  } else {\n    domElement = ownerDocument.createElementNS(namespaceURI, type);\n  }\n\n  {\n    if (namespaceURI === HTML_NAMESPACE) {\n      if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !hasOwnProperty.call(warnedUnknownTags, type)) {\n        warnedUnknownTags[type] = true;\n\n        error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n      }\n    }\n  }\n\n  return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n  return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n  var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n  {\n    validatePropertiesInDevelopment(tag, rawProps);\n  } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n  var props;\n\n  switch (tag) {\n    case 'dialog':\n      listenToNonDelegatedEvent('cancel', domElement);\n      listenToNonDelegatedEvent('close', domElement);\n      props = rawProps;\n      break;\n\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the load event.\n      listenToNonDelegatedEvent('load', domElement);\n      props = rawProps;\n      break;\n\n    case 'video':\n    case 'audio':\n      // We listen to these events in case to ensure emulated bubble\n      // listeners still fire for all the media events.\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n      }\n\n      props = rawProps;\n      break;\n\n    case 'source':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the error event.\n      listenToNonDelegatedEvent('error', domElement);\n      props = rawProps;\n      break;\n\n    case 'img':\n    case 'image':\n    case 'link':\n      // We listen to these events in case to ensure emulated bubble\n      // listeners still fire for error and load events.\n      listenToNonDelegatedEvent('error', domElement);\n      listenToNonDelegatedEvent('load', domElement);\n      props = rawProps;\n      break;\n\n    case 'details':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the toggle event.\n      listenToNonDelegatedEvent('toggle', domElement);\n      props = rawProps;\n      break;\n\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      props = getHostProps(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n\n    case 'option':\n      validateProps(domElement, rawProps);\n      props = rawProps;\n      break;\n\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      props = getHostProps$1(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      props = getHostProps$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n\n    default:\n      props = rawProps;\n  }\n\n  assertValidProps(tag, props);\n  setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, false);\n      break;\n\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement);\n      break;\n\n    case 'option':\n      postMountWrapper$1(domElement, rawProps);\n      break;\n\n    case 'select':\n      postMountWrapper$2(domElement, rawProps);\n      break;\n\n    default:\n      if (typeof props.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n} // Calculate the diff between the two objects.\n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n  {\n    validatePropertiesInDevelopment(tag, nextRawProps);\n  }\n\n  var updatePayload = null;\n  var lastProps;\n  var nextProps;\n\n  switch (tag) {\n    case 'input':\n      lastProps = getHostProps(domElement, lastRawProps);\n      nextProps = getHostProps(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    case 'select':\n      lastProps = getHostProps$1(domElement, lastRawProps);\n      nextProps = getHostProps$1(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    case 'textarea':\n      lastProps = getHostProps$2(domElement, lastRawProps);\n      nextProps = getHostProps$2(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    default:\n      lastProps = lastRawProps;\n      nextProps = nextRawProps;\n\n      if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n\n  assertValidProps(tag, nextProps);\n  var propKey;\n  var styleName;\n  var styleUpdates = null;\n\n  for (propKey in lastProps) {\n    if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n      continue;\n    }\n\n    if (propKey === STYLE) {\n      var lastStyle = lastProps[propKey];\n\n      for (styleName in lastStyle) {\n        if (lastStyle.hasOwnProperty(styleName)) {\n          if (!styleUpdates) {\n            styleUpdates = {};\n          }\n\n          styleUpdates[styleName] = '';\n        }\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n      // This is a special case. If any listener updates we need to ensure\n      // that the \"current\" fiber pointer gets updated so we need a commit\n      // to update this element.\n      if (!updatePayload) {\n        updatePayload = [];\n      }\n    } else {\n      // For all other deleted properties we add it to the queue. We use\n      // the allowed property list in the commit phase instead.\n      (updatePayload = updatePayload || []).push(propKey, null);\n    }\n  }\n\n  for (propKey in nextProps) {\n    var nextProp = nextProps[propKey];\n    var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n    if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n      continue;\n    }\n\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n\n      if (lastProp) {\n        // Unset styles on `lastProp` but not on `nextProp`.\n        for (styleName in lastProp) {\n          if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n\n            styleUpdates[styleName] = '';\n          }\n        } // Update styles that changed since `lastProp`.\n\n\n        for (styleName in nextProp) {\n          if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n\n            styleUpdates[styleName] = nextProp[styleName];\n          }\n        }\n      } else {\n        // Relies on `updateStylesByID` not mutating `styleUpdates`.\n        if (!styleUpdates) {\n          if (!updatePayload) {\n            updatePayload = [];\n          }\n\n          updatePayload.push(propKey, styleUpdates);\n        }\n\n        styleUpdates = nextProp;\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n      var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n      if (nextHtml != null) {\n        if (lastHtml !== nextHtml) {\n          (updatePayload = updatePayload || []).push(propKey, nextHtml);\n        }\n      }\n    } else if (propKey === CHILDREN) {\n      if (typeof nextProp === 'string' || typeof nextProp === 'number') {\n        (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n      }\n    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        // We eagerly listen to this even though we haven't committed yet.\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        if (propKey === 'onScroll') {\n          listenToNonDelegatedEvent('scroll', domElement);\n        }\n      }\n\n      if (!updatePayload && lastProp !== nextProp) {\n        // This is a special case. If any listener updates we need to ensure\n        // that the \"current\" props pointer gets updated so we need a commit\n        // to update this element.\n        updatePayload = [];\n      }\n    } else {\n      // For any other property we always add it to the queue and then we\n      // filter it out using the allowed property list during the commit.\n      (updatePayload = updatePayload || []).push(propKey, nextProp);\n    }\n  }\n\n  if (styleUpdates) {\n    {\n      validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n    }\n\n    (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n  }\n\n  return updatePayload;\n} // Apply the diff.\n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n  // Update checked *before* name.\n  // In the middle of an update, it is possible to have multiple checked.\n  // When a checked radio tries to change name, browser makes another radio's checked false.\n  if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n    updateChecked(domElement, nextRawProps);\n  }\n\n  var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n  var isCustomComponentTag = isCustomComponent(tag, nextRawProps); // Apply the diff.\n\n  updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); // TODO: Ensure that an update gets scheduled if any of the special props\n  // changed.\n\n  switch (tag) {\n    case 'input':\n      // Update the wrapper around inputs *after* updating props. This has to\n      // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n      // raise warnings and prevent the new value from being assigned.\n      updateWrapper(domElement, nextRawProps);\n      break;\n\n    case 'textarea':\n      updateWrapper$1(domElement, nextRawProps);\n      break;\n\n    case 'select':\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      postUpdateWrapper(domElement, nextRawProps);\n      break;\n  }\n}\n\nfunction getPossibleStandardName(propName) {\n  {\n    var lowerCasedName = propName.toLowerCase();\n\n    if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      return null;\n    }\n\n    return possibleStandardNames[lowerCasedName] || null;\n  }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement, isConcurrentMode, shouldWarnDev) {\n  var isCustomComponentTag;\n  var extraAttributeNames;\n\n  {\n    isCustomComponentTag = isCustomComponent(tag, rawProps);\n    validatePropertiesInDevelopment(tag, rawProps);\n  } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n  switch (tag) {\n    case 'dialog':\n      listenToNonDelegatedEvent('cancel', domElement);\n      listenToNonDelegatedEvent('close', domElement);\n      break;\n\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the load event.\n      listenToNonDelegatedEvent('load', domElement);\n      break;\n\n    case 'video':\n    case 'audio':\n      // We listen to these events in case to ensure emulated bubble\n      // listeners still fire for all the media events.\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n      }\n\n      break;\n\n    case 'source':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the error event.\n      listenToNonDelegatedEvent('error', domElement);\n      break;\n\n    case 'img':\n    case 'image':\n    case 'link':\n      // We listen to these events in case to ensure emulated bubble\n      // listeners still fire for error and load events.\n      listenToNonDelegatedEvent('error', domElement);\n      listenToNonDelegatedEvent('load', domElement);\n      break;\n\n    case 'details':\n      // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the toggle event.\n      listenToNonDelegatedEvent('toggle', domElement);\n      break;\n\n    case 'input':\n      initWrapperState(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n\n    case 'option':\n      validateProps(domElement, rawProps);\n      break;\n\n    case 'select':\n      initWrapperState$1(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n      // listeners still fire for the invalid event.\n\n      listenToNonDelegatedEvent('invalid', domElement);\n      break;\n  }\n\n  assertValidProps(tag, rawProps);\n\n  {\n    extraAttributeNames = new Set();\n    var attributes = domElement.attributes;\n\n    for (var _i = 0; _i < attributes.length; _i++) {\n      var name = attributes[_i].name.toLowerCase();\n\n      switch (name) {\n        // Controlled attributes are not validated\n        // TODO: Only ignore them on controlled tags.\n        case 'value':\n          break;\n\n        case 'checked':\n          break;\n\n        case 'selected':\n          break;\n\n        default:\n          // Intentionally use the original name.\n          // See discussion in https://github.com/facebook/react/pull/10676.\n          extraAttributeNames.add(attributes[_i].name);\n      }\n    }\n  }\n\n  var updatePayload = null;\n\n  for (var propKey in rawProps) {\n    if (!rawProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n\n    var nextProp = rawProps[propKey];\n\n    if (propKey === CHILDREN) {\n      // For text content children we compare against textContent. This\n      // might match additional HTML that is hidden when we read it using\n      // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n      // satisfies our requirement. Our requirement is not to produce perfect\n      // HTML and attributes. Ideally we should preserve structure but it's\n      // ok not to if the visible content is still enough to indicate what\n      // even listeners these nodes might be wired up to.\n      // TODO: Warn if there is more than a single textNode as a child.\n      // TODO: Should we use domElement.firstChild.nodeValue to compare?\n      if (typeof nextProp === 'string') {\n        if (domElement.textContent !== nextProp) {\n          if (rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n            checkForUnmatchedText(domElement.textContent, nextProp, isConcurrentMode, shouldWarnDev);\n          }\n\n          updatePayload = [CHILDREN, nextProp];\n        }\n      } else if (typeof nextProp === 'number') {\n        if (domElement.textContent !== '' + nextProp) {\n          if (rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n            checkForUnmatchedText(domElement.textContent, nextProp, isConcurrentMode, shouldWarnDev);\n          }\n\n          updatePayload = [CHILDREN, '' + nextProp];\n        }\n      }\n    } else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        if (propKey === 'onScroll') {\n          listenToNonDelegatedEvent('scroll', domElement);\n        }\n      }\n    } else if (shouldWarnDev && true && // Convince Flow we've calculated it (it's DEV-only in this method.)\n    typeof isCustomComponentTag === 'boolean') {\n      // Validate that the properties correspond to their expected values.\n      var serverValue = void 0;\n      var propertyInfo = isCustomComponentTag && enableCustomElementPropertySupport ? null : getPropertyInfo(propKey);\n\n      if (rawProps[SUPPRESS_HYDRATION_WARNING] === true) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || // Controlled attributes are not validated\n      // TODO: Only ignore them on controlled tags.\n      propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n        var serverHTML = domElement.innerHTML;\n        var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n        if (nextHtml != null) {\n          var expectedHTML = normalizeHTML(domElement, nextHtml);\n\n          if (expectedHTML !== serverHTML) {\n            warnForPropDifference(propKey, serverHTML, expectedHTML);\n          }\n        }\n      } else if (propKey === STYLE) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey);\n\n        if (canDiffStyleForHydrationWarning) {\n          var expectedStyle = createDangerousStringForStyles(nextProp);\n          serverValue = domElement.getAttribute('style');\n\n          if (expectedStyle !== serverValue) {\n            warnForPropDifference(propKey, serverValue, expectedStyle);\n          }\n        }\n      } else if (isCustomComponentTag && !enableCustomElementPropertySupport) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey.toLowerCase());\n        serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n        if (nextProp !== serverValue) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n        var isMismatchDueToBadCasing = false;\n\n        if (propertyInfo !== null) {\n          // $FlowFixMe - Should be inferred as not undefined.\n          extraAttributeNames.delete(propertyInfo.attributeName);\n          serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n        } else {\n          var ownNamespace = parentNamespace;\n\n          if (ownNamespace === HTML_NAMESPACE) {\n            ownNamespace = getIntrinsicNamespace(tag);\n          }\n\n          if (ownNamespace === HTML_NAMESPACE) {\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey.toLowerCase());\n          } else {\n            var standardName = getPossibleStandardName(propKey);\n\n            if (standardName !== null && standardName !== propKey) {\n              // If an SVG prop is supplied with bad casing, it will\n              // be successfully parsed from HTML, but will produce a mismatch\n              // (and would be incorrectly rendered on the client).\n              // However, we already warn about bad casing elsewhere.\n              // So we'll skip the misleading extra mismatch warning in this case.\n              isMismatchDueToBadCasing = true; // $FlowFixMe - Should be inferred as not undefined.\n\n              extraAttributeNames.delete(standardName);\n            } // $FlowFixMe - Should be inferred as not undefined.\n\n\n            extraAttributeNames.delete(propKey);\n          }\n\n          serverValue = getValueForAttribute(domElement, propKey, nextProp);\n        }\n\n        var dontWarnCustomElement = enableCustomElementPropertySupport  ;\n\n        if (!dontWarnCustomElement && nextProp !== serverValue && !isMismatchDueToBadCasing) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      }\n    }\n  }\n\n  {\n    if (shouldWarnDev) {\n      if ( // $FlowFixMe - Should be inferred as not undefined.\n      extraAttributeNames.size > 0 && rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        warnForExtraAttributes(extraAttributeNames);\n      }\n    }\n  }\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, true);\n      break;\n\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement);\n      break;\n\n    case 'select':\n    case 'option':\n      // For input and textarea we current always set the value property at\n      // post mount to force it to diverge from attributes. However, for\n      // option and select we don't quite do the same thing and select\n      // is not resilient to the DOM state changing so we don't do that here.\n      // TODO: Consider not doing this for input and textarea.\n      break;\n\n    default:\n      if (typeof rawProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n\n  return updatePayload;\n}\nfunction diffHydratedText(textNode, text, isConcurrentMode) {\n  var isDifferent = textNode.nodeValue !== text;\n  return isDifferent;\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n  {\n    if (text === '') {\n      // We expect to insert empty text nodes since they're not represented in\n      // the HTML.\n      // TODO: Remove this special case if we can just avoid inserting empty\n      // text nodes.\n      return;\n    }\n\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n  switch (tag) {\n    case 'input':\n      restoreControlledState(domElement, props);\n      return;\n\n    case 'textarea':\n      restoreControlledState$2(domElement, props);\n      return;\n\n    case 'select':\n      restoreControlledState$1(domElement, props);\n      return;\n  }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n\n  var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n  var emptyAncestorInfo = {\n    current: null,\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  updatedAncestorInfo = function (oldInfo, tag) {\n    var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n\n    var info = {\n      tag: tag\n    };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    } // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.current = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n  /**\n   * Returns whether\n   */\n\n\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n\n      case 'option':\n        return tag === '#text';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n\n      case 'html':\n        return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n      case 'frameset':\n        return tag === 'frame';\n\n      case '#document':\n        return tag === 'html';\n    } // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'body':\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frameset':\n      case 'frame':\n      case 'head':\n      case 'html':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n  /**\n   * Returns whether\n   */\n\n\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n      case 'pre':\n      case 'listing':\n      case 'table':\n      case 'hr':\n      case 'xmp':\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  var didWarn$1 = {};\n\n  validateDOMNesting = function (childTag, childText, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    if (childText != null) {\n      if (childTag != null) {\n        error('validateDOMNesting: when childText is passed, childTag should be null');\n      }\n\n      childTag = '#text';\n    }\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n    if (!invalidParentOrAncestor) {\n      return;\n    }\n\n    var ancestorTag = invalidParentOrAncestor.tag;\n    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag;\n\n    if (didWarn$1[warnKey]) {\n      return;\n    }\n\n    didWarn$1[warnKey] = true;\n    var tagDisplayName = childTag;\n    var whitespaceInfo = '';\n\n    if (childTag === '#text') {\n      if (/\\S/.test(childText)) {\n        tagDisplayName = 'Text nodes';\n      } else {\n        tagDisplayName = 'Whitespace text nodes';\n        whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n      }\n    } else {\n      tagDisplayName = '<' + childTag + '>';\n    }\n\n    if (invalidParent) {\n      var info = '';\n\n      if (ancestorTag === 'table' && childTag === 'tr') {\n        info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n      }\n\n      error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n    } else {\n      error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n    }\n  };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\nfunction getRootHostContext(rootContainerInstance) {\n  var type;\n  var namespace;\n  var nodeType = rootContainerInstance.nodeType;\n\n  switch (nodeType) {\n    case DOCUMENT_NODE:\n    case DOCUMENT_FRAGMENT_NODE:\n      {\n        type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n        var root = rootContainerInstance.documentElement;\n        namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n        break;\n      }\n\n    default:\n      {\n        var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n        var ownNamespace = container.namespaceURI || null;\n        type = container.tagName;\n        namespace = getChildNamespace(ownNamespace, type);\n        break;\n      }\n  }\n\n  {\n    var validatedTag = type.toLowerCase();\n    var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n    return {\n      namespace: namespace,\n      ancestorInfo: ancestorInfo\n    };\n  }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n  {\n    var parentHostContextDev = parentHostContext;\n    var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n    var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n    return {\n      namespace: namespace,\n      ancestorInfo: ancestorInfo\n    };\n  }\n}\nfunction getPublicInstance(instance) {\n  return instance;\n}\nfunction prepareForCommit(containerInfo) {\n  eventsEnabled = isEnabled();\n  selectionInformation = getSelectionInformation();\n  var activeInstance = null;\n\n  setEnabled(false);\n  return activeInstance;\n}\nfunction resetAfterCommit(containerInfo) {\n  restoreSelection(selectionInformation);\n  setEnabled(eventsEnabled);\n  eventsEnabled = null;\n  selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  var parentNamespace;\n\n  {\n    // TODO: take namespace into account when validating.\n    var hostContextDev = hostContext;\n    validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n    if (typeof props.children === 'string' || typeof props.children === 'number') {\n      var string = '' + props.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n\n    parentNamespace = hostContextDev.namespace;\n  }\n\n  var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n  precacheFiberNode(internalInstanceHandle, domElement);\n  updateFiberProps(domElement, props);\n  return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n  setInitialProperties(domElement, type, props, rootContainerInstance);\n\n  switch (type) {\n    case 'button':\n    case 'input':\n    case 'select':\n    case 'textarea':\n      return !!props.autoFocus;\n\n    case 'img':\n      return true;\n\n    default:\n      return false;\n  }\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n  {\n    var hostContextDev = hostContext;\n\n    if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n      var string = '' + newProps.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n  }\n\n  return diffProperties(domElement, type, oldProps, newProps);\n}\nfunction shouldSetTextContent(type, props) {\n  return type === 'textarea' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n  {\n    var hostContextDev = hostContext;\n    validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n  }\n\n  var textNode = createTextNode(text, rootContainerInstance);\n  precacheFiberNode(internalInstanceHandle, textNode);\n  return textNode;\n}\nfunction getCurrentEventPriority() {\n  var currentEvent = window.event;\n\n  if (currentEvent === undefined) {\n    return DefaultEventPriority;\n  }\n\n  return getEventPriority(currentEvent.type);\n}\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1;\nvar localPromise = typeof Promise === 'function' ? Promise : undefined; // -------------------\nvar scheduleMicrotask = typeof queueMicrotask === 'function' ? queueMicrotask : typeof localPromise !== 'undefined' ? function (callback) {\n  return localPromise.resolve(null).then(callback).catch(handleErrorInNextTick);\n} : scheduleTimeout; // TODO: Determine the best fallback here.\n\nfunction handleErrorInNextTick(error) {\n  setTimeout(function () {\n    throw error;\n  });\n} // -------------------\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n  // Despite the naming that might imply otherwise, this method only\n  // fires if there is an `Update` effect scheduled during mounting.\n  // This happens if `finalizeInitialChildren` returns `true` (which it\n  // does to implement the `autoFocus` attribute on the client). But\n  // there are also other cases when this might happen (such as patching\n  // up text content during hydration mismatch). So we'll check this again.\n  switch (type) {\n    case 'button':\n    case 'input':\n    case 'select':\n    case 'textarea':\n      if (newProps.autoFocus) {\n        domElement.focus();\n      }\n\n      return;\n\n    case 'img':\n      {\n        if (newProps.src) {\n          domElement.src = newProps.src;\n        }\n\n        return;\n      }\n  }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n  // Apply the diff to the DOM node.\n  updateProperties(domElement, updatePayload, type, oldProps, newProps); // Update the props handle so that we know which props are the ones with\n  // with current event handlers.\n\n  updateFiberProps(domElement, newProps);\n}\nfunction resetTextContent(domElement) {\n  setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n  textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n  var parentNode;\n\n  if (container.nodeType === COMMENT_NODE) {\n    parentNode = container.parentNode;\n    parentNode.insertBefore(child, container);\n  } else {\n    parentNode = container;\n    parentNode.appendChild(child);\n  } // This container might be used for a portal.\n  // If something inside a portal is clicked, that click should bubble\n  // through the React tree. However, on Mobile Safari the click would\n  // never bubble through the *DOM* tree unless an ancestor with onclick\n  // event exists. So we wouldn't see it and dispatch it.\n  // This is why we ensure that non React root containers have inline onclick\n  // defined.\n  // https://github.com/facebook/react/issues/11918\n\n\n  var reactRootContainer = container._reactRootContainer;\n\n  if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n    // TODO: This cast may not be sound for SVG, MathML or custom elements.\n    trapClickOnNonInteractiveElement(parentNode);\n  }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n  parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.insertBefore(child, beforeChild);\n  } else {\n    container.insertBefore(child, beforeChild);\n  }\n}\n\nfunction removeChild(parentInstance, child) {\n  parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.removeChild(child);\n  } else {\n    container.removeChild(child);\n  }\n}\nfunction clearSuspenseBoundary(parentInstance, suspenseInstance) {\n  var node = suspenseInstance; // Delete all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n\n  var depth = 0;\n\n  do {\n    var nextNode = node.nextSibling;\n    parentInstance.removeChild(node);\n\n    if (nextNode && nextNode.nodeType === COMMENT_NODE) {\n      var data = nextNode.data;\n\n      if (data === SUSPENSE_END_DATA) {\n        if (depth === 0) {\n          parentInstance.removeChild(nextNode); // Retry if any event replaying was blocked on this.\n\n          retryIfBlockedOn(suspenseInstance);\n          return;\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_PENDING_START_DATA || data === SUSPENSE_FALLBACK_START_DATA) {\n        depth++;\n      }\n    }\n\n    node = nextNode;\n  } while (node); // TODO: Warn, we didn't find the end comment boundary.\n  // Retry if any event replaying was blocked on this.\n\n\n  retryIfBlockedOn(suspenseInstance);\n}\nfunction clearSuspenseBoundaryFromContainer(container, suspenseInstance) {\n  if (container.nodeType === COMMENT_NODE) {\n    clearSuspenseBoundary(container.parentNode, suspenseInstance);\n  } else if (container.nodeType === ELEMENT_NODE) {\n    clearSuspenseBoundary(container, suspenseInstance);\n  } // Retry if any event replaying was blocked on this.\n\n\n  retryIfBlockedOn(container);\n}\nfunction hideInstance(instance) {\n  // TODO: Does this work for all element types? What about MathML? Should we\n  // pass host context to this method?\n  instance = instance;\n  var style = instance.style;\n\n  if (typeof style.setProperty === 'function') {\n    style.setProperty('display', 'none', 'important');\n  } else {\n    style.display = 'none';\n  }\n}\nfunction hideTextInstance(textInstance) {\n  textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n  instance = instance;\n  var styleProp = props[STYLE$1];\n  var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n  instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n  textInstance.nodeValue = text;\n}\nfunction clearContainer(container) {\n  if (container.nodeType === ELEMENT_NODE) {\n    container.textContent = '';\n  } else if (container.nodeType === DOCUMENT_NODE) {\n    if (container.documentElement) {\n      container.removeChild(container.documentElement);\n    }\n  }\n} // -------------------\nfunction canHydrateInstance(instance, type, props) {\n  if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n    return null;\n  } // This has now been refined to an element node.\n\n\n  return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n  if (text === '' || instance.nodeType !== TEXT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  } // This has now been refined to a text node.\n\n\n  return instance;\n}\nfunction canHydrateSuspenseInstance(instance) {\n  if (instance.nodeType !== COMMENT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  } // This has now been refined to a suspense node.\n\n\n  return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n  return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n  return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\nfunction getSuspenseInstanceFallbackErrorDetails(instance) {\n  var dataset = instance.nextSibling && instance.nextSibling.dataset;\n  var digest, message, stack;\n\n  if (dataset) {\n    digest = dataset.dgst;\n\n    {\n      message = dataset.msg;\n      stack = dataset.stck;\n    }\n  }\n\n  {\n    return {\n      message: message,\n      digest: digest,\n      stack: stack\n    };\n  } // let value = {message: undefined, hash: undefined};\n  // const nextSibling = instance.nextSibling;\n  // if (nextSibling) {\n  //   const dataset = ((nextSibling: any): HTMLTemplateElement).dataset;\n  //   value.message = dataset.msg;\n  //   value.hash = dataset.hash;\n  //   if (true) {\n  //     value.stack = dataset.stack;\n  //   }\n  // }\n  // return value;\n\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n  instance._reactRetry = callback;\n}\n\nfunction getNextHydratable(node) {\n  // Skip non-hydratable nodes.\n  for (; node != null; node = node.nextSibling) {\n    var nodeType = node.nodeType;\n\n    if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n      break;\n    }\n\n    if (nodeType === COMMENT_NODE) {\n      var nodeData = node.data;\n\n      if (nodeData === SUSPENSE_START_DATA || nodeData === SUSPENSE_FALLBACK_START_DATA || nodeData === SUSPENSE_PENDING_START_DATA) {\n        break;\n      }\n\n      if (nodeData === SUSPENSE_END_DATA) {\n        return null;\n      }\n    }\n  }\n\n  return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n  return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n  return getNextHydratable(parentInstance.firstChild);\n}\nfunction getFirstHydratableChildWithinContainer(parentContainer) {\n  return getNextHydratable(parentContainer.firstChild);\n}\nfunction getFirstHydratableChildWithinSuspenseInstance(parentInstance) {\n  return getNextHydratable(parentInstance.nextSibling);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle, shouldWarnDev) {\n  precacheFiberNode(internalInstanceHandle, instance); // TODO: Possibly defer this until the commit phase where all the events\n  // get attached.\n\n  updateFiberProps(instance, props);\n  var parentNamespace;\n\n  {\n    var hostContextDev = hostContext;\n    parentNamespace = hostContextDev.namespace;\n  } // TODO: Temporary hack to check if we're in a concurrent root. We can delete\n  // when the legacy root API is removed.\n\n\n  var isConcurrentMode = (internalInstanceHandle.mode & ConcurrentMode) !== NoMode;\n  return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance, isConcurrentMode, shouldWarnDev);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle, shouldWarnDev) {\n  precacheFiberNode(internalInstanceHandle, textInstance); // TODO: Temporary hack to check if we're in a concurrent root. We can delete\n  // when the legacy root API is removed.\n\n  var isConcurrentMode = (internalInstanceHandle.mode & ConcurrentMode) !== NoMode;\n  return diffHydratedText(textInstance, text);\n}\nfunction hydrateSuspenseInstance(suspenseInstance, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, suspenseInstance);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n  var node = suspenseInstance.nextSibling; // Skip past all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n\n  var depth = 0;\n\n  while (node) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = node.data;\n\n      if (data === SUSPENSE_END_DATA) {\n        if (depth === 0) {\n          return getNextHydratableSibling(node);\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n        depth++;\n      }\n    }\n\n    node = node.nextSibling;\n  } // TODO: Warn, we didn't find the end comment boundary.\n\n\n  return null;\n} // Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\n\nfunction getParentSuspenseInstance(targetInstance) {\n  var node = targetInstance.previousSibling; // Skip past all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n\n  var depth = 0;\n\n  while (node) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = node.data;\n\n      if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n        if (depth === 0) {\n          return node;\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_END_DATA) {\n        depth++;\n      }\n    }\n\n    node = node.previousSibling;\n  }\n\n  return null;\n}\nfunction commitHydratedContainer(container) {\n  // Retry if any event replaying was blocked on this.\n  retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n  // Retry if any event replaying was blocked on this.\n  retryIfBlockedOn(suspenseInstance);\n}\nfunction shouldDeleteUnhydratedTailInstances(parentType) {\n  return parentType !== 'head' && parentType !== 'body';\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text, isConcurrentMode) {\n  var shouldWarnDev = true;\n  checkForUnmatchedText(textInstance.nodeValue, text, isConcurrentMode, shouldWarnDev);\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text, isConcurrentMode) {\n  if (parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n    var shouldWarnDev = true;\n    checkForUnmatchedText(textInstance.nodeValue, text, isConcurrentMode, shouldWarnDev);\n  }\n}\nfunction didNotHydrateInstanceWithinContainer(parentContainer, instance) {\n  {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentContainer, instance);\n    } else if (instance.nodeType === COMMENT_NODE) ; else {\n      warnForDeletedHydratableText(parentContainer, instance);\n    }\n  }\n}\nfunction didNotHydrateInstanceWithinSuspenseInstance(parentInstance, instance) {\n  {\n    // $FlowFixMe: Only Element or Document can be parent nodes.\n    var parentNode = parentInstance.parentNode;\n\n    if (parentNode !== null) {\n      if (instance.nodeType === ELEMENT_NODE) {\n        warnForDeletedHydratableElement(parentNode, instance);\n      } else if (instance.nodeType === COMMENT_NODE) ; else {\n        warnForDeletedHydratableText(parentNode, instance);\n      }\n    }\n  }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance, isConcurrentMode) {\n  {\n    if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n      if (instance.nodeType === ELEMENT_NODE) {\n        warnForDeletedHydratableElement(parentInstance, instance);\n      } else if (instance.nodeType === COMMENT_NODE) ; else {\n        warnForDeletedHydratableText(parentInstance, instance);\n      }\n    }\n  }\n}\nfunction didNotFindHydratableInstanceWithinContainer(parentContainer, type, props) {\n  {\n    warnForInsertedHydratedElement(parentContainer, type);\n  }\n}\nfunction didNotFindHydratableTextInstanceWithinContainer(parentContainer, text) {\n  {\n    warnForInsertedHydratedText(parentContainer, text);\n  }\n}\nfunction didNotFindHydratableInstanceWithinSuspenseInstance(parentInstance, type, props) {\n  {\n    // $FlowFixMe: Only Element or Document can be parent nodes.\n    var parentNode = parentInstance.parentNode;\n    if (parentNode !== null) warnForInsertedHydratedElement(parentNode, type);\n  }\n}\nfunction didNotFindHydratableTextInstanceWithinSuspenseInstance(parentInstance, text) {\n  {\n    // $FlowFixMe: Only Element or Document can be parent nodes.\n    var parentNode = parentInstance.parentNode;\n    if (parentNode !== null) warnForInsertedHydratedText(parentNode, text);\n  }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props, isConcurrentMode) {\n  {\n    if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n      warnForInsertedHydratedElement(parentInstance, type);\n    }\n  }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text, isConcurrentMode) {\n  {\n    if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n      warnForInsertedHydratedText(parentInstance, text);\n    }\n  }\n}\nfunction errorHydratingContainer(parentContainer) {\n  {\n    // TODO: This gets logged by onRecoverableError, too, so we should be\n    // able to remove it.\n    error('An error occurred during hydration. The server HTML was replaced with client content in <%s>.', parentContainer.nodeName.toLowerCase());\n  }\n}\nfunction preparePortalMount(portalInstance) {\n  listenToAllSupportedEvents(portalInstance);\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactFiber$' + randomKey;\nvar internalPropsKey = '__reactProps$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainer$' + randomKey;\nvar internalEventHandlersKey = '__reactEvents$' + randomKey;\nvar internalEventHandlerListenersKey = '__reactListeners$' + randomKey;\nvar internalEventHandlesSetKey = '__reactHandles$' + randomKey;\nfunction detachDeletedInstance(node) {\n  // TODO: This function is only called on host components. I don't think all of\n  // these fields are relevant.\n  delete node[internalInstanceKey];\n  delete node[internalPropsKey];\n  delete node[internalEventHandlersKey];\n  delete node[internalEventHandlerListenersKey];\n  delete node[internalEventHandlesSetKey];\n}\nfunction precacheFiberNode(hostInst, node) {\n  node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n  node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n  node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n  return !!node[internalContainerInstanceKey];\n} // Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\n\nfunction getClosestInstanceFromNode(targetNode) {\n  var targetInst = targetNode[internalInstanceKey];\n\n  if (targetInst) {\n    // Don't return HostRoot or SuspenseComponent here.\n    return targetInst;\n  } // If the direct event target isn't a React owned DOM node, we need to look\n  // to see if one of its parents is a React owned DOM node.\n\n\n  var parentNode = targetNode.parentNode;\n\n  while (parentNode) {\n    // We'll check if this is a container root that could include\n    // React nodes in the future. We need to check this first because\n    // if we're a child of a dehydrated container, we need to first\n    // find that inner container before moving on to finding the parent\n    // instance. Note that we don't check this field on  the targetNode\n    // itself because the fibers are conceptually between the container\n    // node and the first child. It isn't surrounding the container node.\n    // If it's not a container, we check if it's an instance.\n    targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n    if (targetInst) {\n      // Since this wasn't the direct target of the event, we might have\n      // stepped past dehydrated DOM nodes to get here. However they could\n      // also have been non-React nodes. We need to answer which one.\n      // If we the instance doesn't have any children, then there can't be\n      // a nested suspense boundary within it. So we can use this as a fast\n      // bailout. Most of the time, when people add non-React children to\n      // the tree, it is using a ref to a child-less DOM node.\n      // Normally we'd only need to check one of the fibers because if it\n      // has ever gone from having children to deleting them or vice versa\n      // it would have deleted the dehydrated boundary nested inside already.\n      // However, since the HostRoot starts out with an alternate it might\n      // have one on the alternate so we need to check in case this was a\n      // root.\n      var alternate = targetInst.alternate;\n\n      if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n        // Next we need to figure out if the node that skipped past is\n        // nested within a dehydrated boundary and if so, which one.\n        var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n        while (suspenseInstance !== null) {\n          // We found a suspense instance. That means that we haven't\n          // hydrated it yet. Even though we leave the comments in the\n          // DOM after hydrating, and there are boundaries in the DOM\n          // that could already be hydrated, we wouldn't have found them\n          // through this pass since if the target is hydrated it would\n          // have had an internalInstanceKey on it.\n          // Let's get the fiber associated with the SuspenseComponent\n          // as the deepest instance.\n          var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n          if (targetSuspenseInst) {\n            return targetSuspenseInst;\n          } // If we don't find a Fiber on the comment, it might be because\n          // we haven't gotten to hydrate it yet. There might still be a\n          // parent boundary that hasn't above this one so we need to find\n          // the outer most that is known.\n\n\n          suspenseInstance = getParentSuspenseInstance(suspenseInstance); // If we don't find one, then that should mean that the parent\n          // host component also hasn't hydrated yet. We can return it\n          // below since it will bail out on the isMounted check later.\n        }\n      }\n\n      return targetInst;\n    }\n\n    targetNode = parentNode;\n    parentNode = targetNode.parentNode;\n  }\n\n  return null;\n}\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\n\nfunction getInstanceFromNode(node) {\n  var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n  if (inst) {\n    if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n      return inst;\n    } else {\n      return null;\n    }\n  }\n\n  return null;\n}\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\n\nfunction getNodeFromInstance(inst) {\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber this, is just the state node right now. We assume it will be\n    // a host component or host text.\n    return inst.stateNode;\n  } // Without this first invariant, passing a non-DOM-component triggers the next\n  // invariant for a missing parent, which is super confusing.\n\n\n  throw new Error('getNodeFromInstance: Invalid argument.');\n}\nfunction getFiberCurrentPropsFromNode(node) {\n  return node[internalPropsKey] || null;\n}\nfunction updateFiberProps(node, props) {\n  node[internalPropsKey] = props;\n}\nfunction getEventListenerSet(node) {\n  var elementListenerSet = node[internalEventHandlersKey];\n\n  if (elementListenerSet === undefined) {\n    elementListenerSet = node[internalEventHandlersKey] = new Set();\n  }\n\n  return elementListenerSet;\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n  fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n  return {\n    current: defaultValue\n  };\n}\n\nfunction pop(cursor, fiber) {\n  if (index < 0) {\n    {\n      error('Unexpected pop.');\n    }\n\n    return;\n  }\n\n  {\n    if (fiber !== fiberStack[index]) {\n      error('Unexpected Fiber popped.');\n    }\n  }\n\n  cursor.current = valueStack[index];\n  valueStack[index] = null;\n\n  {\n    fiberStack[index] = null;\n  }\n\n  index--;\n}\n\nfunction push(cursor, value, fiber) {\n  index++;\n  valueStack[index] = cursor.current;\n\n  {\n    fiberStack[index] = fiber;\n  }\n\n  cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n  warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n  Object.freeze(emptyContextObject);\n} // A cursor to the current merged context object on the stack.\n\n\nvar contextStackCursor = createCursor(emptyContextObject); // A cursor to a boolean indicating whether the context has changed.\n\nvar didPerformWorkStackCursor = createCursor(false); // Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n  {\n    if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n      // If the fiber is a context provider itself, when we read its context\n      // we may have already pushed its own child context on the stack. A context\n      // provider should not \"see\" its own child context. Therefore we read the\n      // previous (parent) context instead for a context provider.\n      return previousContext;\n    }\n\n    return contextStackCursor.current;\n  }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n  {\n    var instance = workInProgress.stateNode;\n    instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n    instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n  }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n  {\n    var type = workInProgress.type;\n    var contextTypes = type.contextTypes;\n\n    if (!contextTypes) {\n      return emptyContextObject;\n    } // Avoid recreating masked context unless unmasked context has changed.\n    // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n    // This may trigger infinite loops if componentWillReceiveProps calls setState.\n\n\n    var instance = workInProgress.stateNode;\n\n    if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n      return instance.__reactInternalMemoizedMaskedChildContext;\n    }\n\n    var context = {};\n\n    for (var key in contextTypes) {\n      context[key] = unmaskedContext[key];\n    }\n\n    {\n      var name = getComponentNameFromFiber(workInProgress) || 'Unknown';\n      checkPropTypes(contextTypes, context, 'context', name);\n    } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n    // Context is created before the class component is instantiated so check for instance.\n\n\n    if (instance) {\n      cacheContext(workInProgress, unmaskedContext, context);\n    }\n\n    return context;\n  }\n}\n\nfunction hasContextChanged() {\n  {\n    return didPerformWorkStackCursor.current;\n  }\n}\n\nfunction isContextProvider(type) {\n  {\n    var childContextTypes = type.childContextTypes;\n    return childContextTypes !== null && childContextTypes !== undefined;\n  }\n}\n\nfunction popContext(fiber) {\n  {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction popTopLevelContextObject(fiber) {\n  {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n  {\n    if (contextStackCursor.current !== emptyContextObject) {\n      throw new Error('Unexpected context found on stack. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n\n    push(contextStackCursor, context, fiber);\n    push(didPerformWorkStackCursor, didChange, fiber);\n  }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n  {\n    var instance = fiber.stateNode;\n    var childContextTypes = type.childContextTypes; // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n    // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n\n    if (typeof instance.getChildContext !== 'function') {\n      {\n        var componentName = getComponentNameFromFiber(fiber) || 'Unknown';\n\n        if (!warnedAboutMissingGetChildContext[componentName]) {\n          warnedAboutMissingGetChildContext[componentName] = true;\n\n          error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n        }\n      }\n\n      return parentContext;\n    }\n\n    var childContext = instance.getChildContext();\n\n    for (var contextKey in childContext) {\n      if (!(contextKey in childContextTypes)) {\n        throw new Error((getComponentNameFromFiber(fiber) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\");\n      }\n    }\n\n    {\n      var name = getComponentNameFromFiber(fiber) || 'Unknown';\n      checkPropTypes(childContextTypes, childContext, 'child context', name);\n    }\n\n    return assign({}, parentContext, childContext);\n  }\n}\n\nfunction pushContextProvider(workInProgress) {\n  {\n    var instance = workInProgress.stateNode; // We push the context as early as possible to ensure stack integrity.\n    // If the instance does not exist yet, we will push null at first,\n    // and replace it on the stack later when invalidating the context.\n\n    var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; // Remember the parent context so we can merge with it later.\n    // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n\n    previousContext = contextStackCursor.current;\n    push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n    push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n    return true;\n  }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n  {\n    var instance = workInProgress.stateNode;\n\n    if (!instance) {\n      throw new Error('Expected to have an instance by this point. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n\n    if (didChange) {\n      // Merge parent and own context.\n      // Skip this if we're not updating due to sCU.\n      // This avoids unnecessarily recomputing memoized values.\n      var mergedContext = processChildContext(workInProgress, type, previousContext);\n      instance.__reactInternalMemoizedMergedChildContext = mergedContext; // Replace the old (or empty) context with the new one.\n      // It is important to unwind the context in the reverse order.\n\n      pop(didPerformWorkStackCursor, workInProgress);\n      pop(contextStackCursor, workInProgress); // Now push the new context and mark that it has changed.\n\n      push(contextStackCursor, mergedContext, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    } else {\n      pop(didPerformWorkStackCursor, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    }\n  }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n  {\n    // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n    // makes sense elsewhere\n    if (!isFiberMounted(fiber) || fiber.tag !== ClassComponent) {\n      throw new Error('Expected subtree parent to be a mounted class component. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n\n    var node = fiber;\n\n    do {\n      switch (node.tag) {\n        case HostRoot:\n          return node.stateNode.context;\n\n        case ClassComponent:\n          {\n            var Component = node.type;\n\n            if (isContextProvider(Component)) {\n              return node.stateNode.__reactInternalMemoizedMergedChildContext;\n            }\n\n            break;\n          }\n      }\n\n      node = node.return;\n    } while (node !== null);\n\n    throw new Error('Found unexpected detached subtree parent. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n  }\n}\n\nvar LegacyRoot = 0;\nvar ConcurrentRoot = 1;\n\nvar syncQueue = null;\nvar includesLegacySyncCallbacks = false;\nvar isFlushingSyncQueue = false;\nfunction scheduleSyncCallback(callback) {\n  // Push this callback into an internal queue. We'll flush these either in\n  // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n  if (syncQueue === null) {\n    syncQueue = [callback];\n  } else {\n    // Push onto existing queue. Don't need to schedule a callback because\n    // we already scheduled one when we created the queue.\n    syncQueue.push(callback);\n  }\n}\nfunction scheduleLegacySyncCallback(callback) {\n  includesLegacySyncCallbacks = true;\n  scheduleSyncCallback(callback);\n}\nfunction flushSyncCallbacksOnlyInLegacyMode() {\n  // Only flushes the queue if there's a legacy sync callback scheduled.\n  // TODO: There's only a single type of callback: performSyncOnWorkOnRoot. So\n  // it might make more sense for the queue to be a list of roots instead of a\n  // list of generic callbacks. Then we can have two: one for legacy roots, one\n  // for concurrent roots. And this method would only flush the legacy ones.\n  if (includesLegacySyncCallbacks) {\n    flushSyncCallbacks();\n  }\n}\nfunction flushSyncCallbacks() {\n  if (!isFlushingSyncQueue && syncQueue !== null) {\n    // Prevent re-entrance.\n    isFlushingSyncQueue = true;\n    var i = 0;\n    var previousUpdatePriority = getCurrentUpdatePriority();\n\n    try {\n      var isSync = true;\n      var queue = syncQueue; // TODO: Is this necessary anymore? The only user code that runs in this\n      // queue is in the render or commit phases.\n\n      setCurrentUpdatePriority(DiscreteEventPriority);\n\n      for (; i < queue.length; i++) {\n        var callback = queue[i];\n\n        do {\n          callback = callback(isSync);\n        } while (callback !== null);\n      }\n\n      syncQueue = null;\n      includesLegacySyncCallbacks = false;\n    } catch (error) {\n      // If something throws, leave the remaining callbacks on the queue.\n      if (syncQueue !== null) {\n        syncQueue = syncQueue.slice(i + 1);\n      } // Resume flushing in the next tick\n\n\n      scheduleCallback(ImmediatePriority, flushSyncCallbacks);\n      throw error;\n    } finally {\n      setCurrentUpdatePriority(previousUpdatePriority);\n      isFlushingSyncQueue = false;\n    }\n  }\n\n  return null;\n}\n\n// TODO: Use the unified fiber stack module instead of this local one?\n// Intentionally not using it yet to derisk the initial implementation, because\n// the way we push/pop these values is a bit unusual. If there's a mistake, I'd\n// rather the ids be wrong than crash the whole reconciler.\nvar forkStack = [];\nvar forkStackIndex = 0;\nvar treeForkProvider = null;\nvar treeForkCount = 0;\nvar idStack = [];\nvar idStackIndex = 0;\nvar treeContextProvider = null;\nvar treeContextId = 1;\nvar treeContextOverflow = '';\nfunction isForkedChild(workInProgress) {\n  warnIfNotHydrating();\n  return (workInProgress.flags & Forked) !== NoFlags;\n}\nfunction getForksAtLevel(workInProgress) {\n  warnIfNotHydrating();\n  return treeForkCount;\n}\nfunction getTreeId() {\n  var overflow = treeContextOverflow;\n  var idWithLeadingBit = treeContextId;\n  var id = idWithLeadingBit & ~getLeadingBit(idWithLeadingBit);\n  return id.toString(32) + overflow;\n}\nfunction pushTreeFork(workInProgress, totalChildren) {\n  // This is called right after we reconcile an array (or iterator) of child\n  // fibers, because that's the only place where we know how many children in\n  // the whole set without doing extra work later, or storing addtional\n  // information on the fiber.\n  //\n  // That's why this function is separate from pushTreeId — it's called during\n  // the render phase of the fork parent, not the child, which is where we push\n  // the other context values.\n  //\n  // In the Fizz implementation this is much simpler because the child is\n  // rendered in the same callstack as the parent.\n  //\n  // It might be better to just add a `forks` field to the Fiber type. It would\n  // make this module simpler.\n  warnIfNotHydrating();\n  forkStack[forkStackIndex++] = treeForkCount;\n  forkStack[forkStackIndex++] = treeForkProvider;\n  treeForkProvider = workInProgress;\n  treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n  warnIfNotHydrating();\n  idStack[idStackIndex++] = treeContextId;\n  idStack[idStackIndex++] = treeContextOverflow;\n  idStack[idStackIndex++] = treeContextProvider;\n  treeContextProvider = workInProgress;\n  var baseIdWithLeadingBit = treeContextId;\n  var baseOverflow = treeContextOverflow; // The leftmost 1 marks the end of the sequence, non-inclusive. It's not part\n  // of the id; we use it to account for leading 0s.\n\n  var baseLength = getBitLength(baseIdWithLeadingBit) - 1;\n  var baseId = baseIdWithLeadingBit & ~(1 << baseLength);\n  var slot = index + 1;\n  var length = getBitLength(totalChildren) + baseLength; // 30 is the max length we can store without overflowing, taking into\n  // consideration the leading 1 we use to mark the end of the sequence.\n\n  if (length > 30) {\n    // We overflowed the bitwise-safe range. Fall back to slower algorithm.\n    // This branch assumes the length of the base id is greater than 5; it won't\n    // work for smaller ids, because you need 5 bits per character.\n    //\n    // We encode the id in multiple steps: first the base id, then the\n    // remaining digits.\n    //\n    // Each 5 bit sequence corresponds to a single base 32 character. So for\n    // example, if the current id is 23 bits long, we can convert 20 of those\n    // bits into a string of 4 characters, with 3 bits left over.\n    //\n    // First calculate how many bits in the base id represent a complete\n    // sequence of characters.\n    var numberOfOverflowBits = baseLength - baseLength % 5; // Then create a bitmask that selects only those bits.\n\n    var newOverflowBits = (1 << numberOfOverflowBits) - 1; // Select the bits, and convert them to a base 32 string.\n\n    var newOverflow = (baseId & newOverflowBits).toString(32); // Now we can remove those bits from the base id.\n\n    var restOfBaseId = baseId >> numberOfOverflowBits;\n    var restOfBaseLength = baseLength - numberOfOverflowBits; // Finally, encode the rest of the bits using the normal algorithm. Because\n    // we made more room, this time it won't overflow.\n\n    var restOfLength = getBitLength(totalChildren) + restOfBaseLength;\n    var restOfNewBits = slot << restOfBaseLength;\n    var id = restOfNewBits | restOfBaseId;\n    var overflow = newOverflow + baseOverflow;\n    treeContextId = 1 << restOfLength | id;\n    treeContextOverflow = overflow;\n  } else {\n    // Normal path\n    var newBits = slot << baseLength;\n\n    var _id = newBits | baseId;\n\n    var _overflow = baseOverflow;\n    treeContextId = 1 << length | _id;\n    treeContextOverflow = _overflow;\n  }\n}\nfunction pushMaterializedTreeId(workInProgress) {\n  warnIfNotHydrating(); // This component materialized an id. This will affect any ids that appear\n  // in its children.\n\n  var returnFiber = workInProgress.return;\n\n  if (returnFiber !== null) {\n    var numberOfForks = 1;\n    var slotIndex = 0;\n    pushTreeFork(workInProgress, numberOfForks);\n    pushTreeId(workInProgress, numberOfForks, slotIndex);\n  }\n}\n\nfunction getBitLength(number) {\n  return 32 - clz32(number);\n}\n\nfunction getLeadingBit(id) {\n  return 1 << getBitLength(id) - 1;\n}\n\nfunction popTreeContext(workInProgress) {\n  // Restore the previous values.\n  // This is a bit more complicated than other context-like modules in Fiber\n  // because the same Fiber may appear on the stack multiple times and for\n  // different reasons. We have to keep popping until the work-in-progress is\n  // no longer at the top of the stack.\n  while (workInProgress === treeForkProvider) {\n    treeForkProvider = forkStack[--forkStackIndex];\n    forkStack[forkStackIndex] = null;\n    treeForkCount = forkStack[--forkStackIndex];\n    forkStack[forkStackIndex] = null;\n  }\n\n  while (workInProgress === treeContextProvider) {\n    treeContextProvider = idStack[--idStackIndex];\n    idStack[idStackIndex] = null;\n    treeContextOverflow = idStack[--idStackIndex];\n    idStack[idStackIndex] = null;\n    treeContextId = idStack[--idStackIndex];\n    idStack[idStackIndex] = null;\n  }\n}\nfunction getSuspendedTreeContext() {\n  warnIfNotHydrating();\n\n  if (treeContextProvider !== null) {\n    return {\n      id: treeContextId,\n      overflow: treeContextOverflow\n    };\n  } else {\n    return null;\n  }\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n  warnIfNotHydrating();\n  idStack[idStackIndex++] = treeContextId;\n  idStack[idStackIndex++] = treeContextOverflow;\n  idStack[idStackIndex++] = treeContextProvider;\n  treeContextId = suspendedContext.id;\n  treeContextOverflow = suspendedContext.overflow;\n  treeContextProvider = workInProgress;\n}\n\nfunction warnIfNotHydrating() {\n  {\n    if (!getIsHydrating()) {\n      error('Expected to be hydrating. This is a bug in React. Please file ' + 'an issue.');\n    }\n  }\n}\n\n// This may have been an insertion or a hydration.\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false; // This flag allows for warning supression when we expect there to be mismatches\n// due to earlier mismatches or a suspended fiber.\n\nvar didSuspendOrErrorDEV = false; // Hydration errors that were thrown inside this boundary\n\nvar hydrationErrors = null;\n\nfunction warnIfHydrating() {\n  {\n    if (isHydrating) {\n      error('We should not be hydrating here. This is a bug in React. Please file a bug.');\n    }\n  }\n}\n\nfunction markDidThrowWhileHydratingDEV() {\n  {\n    didSuspendOrErrorDEV = true;\n  }\n}\nfunction didSuspendOrErrorWhileHydratingDEV() {\n  {\n    return didSuspendOrErrorDEV;\n  }\n}\n\nfunction enterHydrationState(fiber) {\n\n  var parentInstance = fiber.stateNode.containerInfo;\n  nextHydratableInstance = getFirstHydratableChildWithinContainer(parentInstance);\n  hydrationParentFiber = fiber;\n  isHydrating = true;\n  hydrationErrors = null;\n  didSuspendOrErrorDEV = false;\n  return true;\n}\n\nfunction reenterHydrationStateFromDehydratedSuspenseInstance(fiber, suspenseInstance, treeContext) {\n\n  nextHydratableInstance = getFirstHydratableChildWithinSuspenseInstance(suspenseInstance);\n  hydrationParentFiber = fiber;\n  isHydrating = true;\n  hydrationErrors = null;\n  didSuspendOrErrorDEV = false;\n\n  if (treeContext !== null) {\n    restoreSuspendedTreeContext(fiber, treeContext);\n  }\n\n  return true;\n}\n\nfunction warnUnhydratedInstance(returnFiber, instance) {\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        {\n          didNotHydrateInstanceWithinContainer(returnFiber.stateNode.containerInfo, instance);\n          break;\n        }\n\n      case HostComponent:\n        {\n          var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n          didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance, // TODO: Delete this argument when we remove the legacy root API.\n          isConcurrentMode);\n          break;\n        }\n\n      case SuspenseComponent:\n        {\n          var suspenseState = returnFiber.memoizedState;\n          if (suspenseState.dehydrated !== null) didNotHydrateInstanceWithinSuspenseInstance(suspenseState.dehydrated, instance);\n          break;\n        }\n    }\n  }\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n  warnUnhydratedInstance(returnFiber, instance);\n  var childToDelete = createFiberFromHostInstanceForDeletion();\n  childToDelete.stateNode = instance;\n  childToDelete.return = returnFiber;\n  var deletions = returnFiber.deletions;\n\n  if (deletions === null) {\n    returnFiber.deletions = [childToDelete];\n    returnFiber.flags |= ChildDeletion;\n  } else {\n    deletions.push(childToDelete);\n  }\n}\n\nfunction warnNonhydratedInstance(returnFiber, fiber) {\n  {\n    if (didSuspendOrErrorDEV) {\n      // Inside a boundary that already suspended. We're currently rendering the\n      // siblings of a suspended node. The mismatch may be due to the missing\n      // data, so it's probably a false positive.\n      return;\n    }\n\n    switch (returnFiber.tag) {\n      case HostRoot:\n        {\n          var parentContainer = returnFiber.stateNode.containerInfo;\n\n          switch (fiber.tag) {\n            case HostComponent:\n              var type = fiber.type;\n              var props = fiber.pendingProps;\n              didNotFindHydratableInstanceWithinContainer(parentContainer, type);\n              break;\n\n            case HostText:\n              var text = fiber.pendingProps;\n              didNotFindHydratableTextInstanceWithinContainer(parentContainer, text);\n              break;\n          }\n\n          break;\n        }\n\n      case HostComponent:\n        {\n          var parentType = returnFiber.type;\n          var parentProps = returnFiber.memoizedProps;\n          var parentInstance = returnFiber.stateNode;\n\n          switch (fiber.tag) {\n            case HostComponent:\n              {\n                var _type = fiber.type;\n                var _props = fiber.pendingProps;\n                var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n                didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props, // TODO: Delete this argument when we remove the legacy root API.\n                isConcurrentMode);\n                break;\n              }\n\n            case HostText:\n              {\n                var _text = fiber.pendingProps;\n\n                var _isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n\n                didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text, // TODO: Delete this argument when we remove the legacy root API.\n                _isConcurrentMode);\n                break;\n              }\n          }\n\n          break;\n        }\n\n      case SuspenseComponent:\n        {\n          var suspenseState = returnFiber.memoizedState;\n          var _parentInstance = suspenseState.dehydrated;\n          if (_parentInstance !== null) switch (fiber.tag) {\n            case HostComponent:\n              var _type2 = fiber.type;\n              var _props2 = fiber.pendingProps;\n              didNotFindHydratableInstanceWithinSuspenseInstance(_parentInstance, _type2);\n              break;\n\n            case HostText:\n              var _text2 = fiber.pendingProps;\n              didNotFindHydratableTextInstanceWithinSuspenseInstance(_parentInstance, _text2);\n              break;\n          }\n          break;\n        }\n\n      default:\n        return;\n    }\n  }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n  fiber.flags = fiber.flags & ~Hydrating | Placement;\n  warnNonhydratedInstance(returnFiber, fiber);\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n  switch (fiber.tag) {\n    case HostComponent:\n      {\n        var type = fiber.type;\n        var props = fiber.pendingProps;\n        var instance = canHydrateInstance(nextInstance, type);\n\n        if (instance !== null) {\n          fiber.stateNode = instance;\n          hydrationParentFiber = fiber;\n          nextHydratableInstance = getFirstHydratableChild(instance);\n          return true;\n        }\n\n        return false;\n      }\n\n    case HostText:\n      {\n        var text = fiber.pendingProps;\n        var textInstance = canHydrateTextInstance(nextInstance, text);\n\n        if (textInstance !== null) {\n          fiber.stateNode = textInstance;\n          hydrationParentFiber = fiber; // Text Instances don't have children so there's nothing to hydrate.\n\n          nextHydratableInstance = null;\n          return true;\n        }\n\n        return false;\n      }\n\n    case SuspenseComponent:\n      {\n        var suspenseInstance = canHydrateSuspenseInstance(nextInstance);\n\n        if (suspenseInstance !== null) {\n          var suspenseState = {\n            dehydrated: suspenseInstance,\n            treeContext: getSuspendedTreeContext(),\n            retryLane: OffscreenLane\n          };\n          fiber.memoizedState = suspenseState; // Store the dehydrated fragment as a child fiber.\n          // This simplifies the code for getHostSibling and deleting nodes,\n          // since it doesn't have to consider all Suspense boundaries and\n          // check if they're dehydrated ones or not.\n\n          var dehydratedFragment = createFiberFromDehydratedFragment(suspenseInstance);\n          dehydratedFragment.return = fiber;\n          fiber.child = dehydratedFragment;\n          hydrationParentFiber = fiber; // While a Suspense Instance does have children, we won't step into\n          // it during the first pass. Instead, we'll reenter it later.\n\n          nextHydratableInstance = null;\n          return true;\n        }\n\n        return false;\n      }\n\n    default:\n      return false;\n  }\n}\n\nfunction shouldClientRenderOnMismatch(fiber) {\n  return (fiber.mode & ConcurrentMode) !== NoMode && (fiber.flags & DidCapture) === NoFlags;\n}\n\nfunction throwOnHydrationMismatch(fiber) {\n  throw new Error('Hydration failed because the initial UI does not match what was ' + 'rendered on the server.');\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n  if (!isHydrating) {\n    return;\n  }\n\n  var nextInstance = nextHydratableInstance;\n\n  if (!nextInstance) {\n    if (shouldClientRenderOnMismatch(fiber)) {\n      warnNonhydratedInstance(hydrationParentFiber, fiber);\n      throwOnHydrationMismatch();\n    } // Nothing to hydrate. Make it an insertion.\n\n\n    insertNonHydratedInstance(hydrationParentFiber, fiber);\n    isHydrating = false;\n    hydrationParentFiber = fiber;\n    return;\n  }\n\n  var firstAttemptedInstance = nextInstance;\n\n  if (!tryHydrate(fiber, nextInstance)) {\n    if (shouldClientRenderOnMismatch(fiber)) {\n      warnNonhydratedInstance(hydrationParentFiber, fiber);\n      throwOnHydrationMismatch();\n    } // If we can't hydrate this instance let's try the next one.\n    // We use this as a heuristic. It's based on intuition and not data so it\n    // might be flawed or unnecessary.\n\n\n    nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n    var prevHydrationParentFiber = hydrationParentFiber;\n\n    if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n      // Nothing to hydrate. Make it an insertion.\n      insertNonHydratedInstance(hydrationParentFiber, fiber);\n      isHydrating = false;\n      hydrationParentFiber = fiber;\n      return;\n    } // We matched the next one, we'll now assume that the first one was\n    // superfluous and we'll delete it. Since we can't eagerly delete it\n    // we'll have to schedule a deletion. To do that, this node needs a dummy\n    // fiber associated with it.\n\n\n    deleteHydratableInstance(prevHydrationParentFiber, firstAttemptedInstance);\n  }\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n  var instance = fiber.stateNode;\n  var shouldWarnIfMismatchDev = !didSuspendOrErrorDEV;\n  var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber, shouldWarnIfMismatchDev); // TODO: Type this specific to this type of component.\n\n  fiber.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n  // is a new ref we mark this as an update.\n\n  if (updatePayload !== null) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n  var textInstance = fiber.stateNode;\n  var textContent = fiber.memoizedProps;\n  var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n  if (shouldUpdate) {\n    // We assume that prepareToHydrateHostTextInstance is called in a context where the\n    // hydration parent is the parent host component of this host text.\n    var returnFiber = hydrationParentFiber;\n\n    if (returnFiber !== null) {\n      switch (returnFiber.tag) {\n        case HostRoot:\n          {\n            var parentContainer = returnFiber.stateNode.containerInfo;\n            var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n            didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent, // TODO: Delete this argument when we remove the legacy root API.\n            isConcurrentMode);\n            break;\n          }\n\n        case HostComponent:\n          {\n            var parentType = returnFiber.type;\n            var parentProps = returnFiber.memoizedProps;\n            var parentInstance = returnFiber.stateNode;\n\n            var _isConcurrentMode2 = (returnFiber.mode & ConcurrentMode) !== NoMode;\n\n            didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent, // TODO: Delete this argument when we remove the legacy root API.\n            _isConcurrentMode2);\n            break;\n          }\n      }\n    }\n  }\n\n  return shouldUpdate;\n}\n\nfunction prepareToHydrateHostSuspenseInstance(fiber) {\n\n  var suspenseState = fiber.memoizedState;\n  var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n  if (!suspenseInstance) {\n    throw new Error('Expected to have a hydrated suspense instance. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  hydrateSuspenseInstance(suspenseInstance, fiber);\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n  var suspenseState = fiber.memoizedState;\n  var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n  if (!suspenseInstance) {\n    throw new Error('Expected to have a hydrated suspense instance. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n  var parent = fiber.return;\n\n  while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n    parent = parent.return;\n  }\n\n  hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n  if (fiber !== hydrationParentFiber) {\n    // We're deeper than the current hydration context, inside an inserted\n    // tree.\n    return false;\n  }\n\n  if (!isHydrating) {\n    // If we're not currently hydrating but we're in a hydration context, then\n    // we were an insertion and now need to pop up reenter hydration of our\n    // siblings.\n    popToNextHostParent(fiber);\n    isHydrating = true;\n    return false;\n  } // If we have any remaining hydratable nodes, we need to delete them now.\n  // We only do this deeper than head and body since they tend to have random\n  // other nodes in them. We also ignore components with pure text content in\n  // side of them. We also don't delete anything inside the root container.\n\n\n  if (fiber.tag !== HostRoot && (fiber.tag !== HostComponent || shouldDeleteUnhydratedTailInstances(fiber.type) && !shouldSetTextContent(fiber.type, fiber.memoizedProps))) {\n    var nextInstance = nextHydratableInstance;\n\n    if (nextInstance) {\n      if (shouldClientRenderOnMismatch(fiber)) {\n        warnIfUnhydratedTailNodes(fiber);\n        throwOnHydrationMismatch();\n      } else {\n        while (nextInstance) {\n          deleteHydratableInstance(fiber, nextInstance);\n          nextInstance = getNextHydratableSibling(nextInstance);\n        }\n      }\n    }\n  }\n\n  popToNextHostParent(fiber);\n\n  if (fiber.tag === SuspenseComponent) {\n    nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n  } else {\n    nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n  }\n\n  return true;\n}\n\nfunction hasUnhydratedTailNodes() {\n  return isHydrating && nextHydratableInstance !== null;\n}\n\nfunction warnIfUnhydratedTailNodes(fiber) {\n  var nextInstance = nextHydratableInstance;\n\n  while (nextInstance) {\n    warnUnhydratedInstance(fiber, nextInstance);\n    nextInstance = getNextHydratableSibling(nextInstance);\n  }\n}\n\nfunction resetHydrationState() {\n\n  hydrationParentFiber = null;\n  nextHydratableInstance = null;\n  isHydrating = false;\n  didSuspendOrErrorDEV = false;\n}\n\nfunction upgradeHydrationErrorsToRecoverable() {\n  if (hydrationErrors !== null) {\n    // Successfully completed a forced client render. The errors that occurred\n    // during the hydration attempt are now recovered. We will log them in\n    // commit phase, once the entire tree has finished.\n    queueRecoverableErrors(hydrationErrors);\n    hydrationErrors = null;\n  }\n}\n\nfunction getIsHydrating() {\n  return isHydrating;\n}\n\nfunction queueHydrationError(error) {\n  if (hydrationErrors === null) {\n    hydrationErrors = [error];\n  } else {\n    hydrationErrors.push(error);\n  }\n}\n\nvar ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar NoTransition = null;\nfunction requestCurrentTransition() {\n  return ReactCurrentBatchConfig$1.transition;\n}\n\nvar ReactStrictModeWarnings = {\n  recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n  flushPendingUnsafeLifecycleWarnings: function () {},\n  recordLegacyContextWarning: function (fiber, instance) {},\n  flushLegacyContextWarning: function () {},\n  discardPendingWarnings: function () {}\n};\n\n{\n  var findStrictRoot = function (fiber) {\n    var maybeStrictRoot = null;\n    var node = fiber;\n\n    while (node !== null) {\n      if (node.mode & StrictLegacyMode) {\n        maybeStrictRoot = node;\n      }\n\n      node = node.return;\n    }\n\n    return maybeStrictRoot;\n  };\n\n  var setToSortedString = function (set) {\n    var array = [];\n    set.forEach(function (value) {\n      array.push(value);\n    });\n    return array.sort().join(', ');\n  };\n\n  var pendingComponentWillMountWarnings = [];\n  var pendingUNSAFE_ComponentWillMountWarnings = [];\n  var pendingComponentWillReceivePropsWarnings = [];\n  var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n  var pendingComponentWillUpdateWarnings = [];\n  var pendingUNSAFE_ComponentWillUpdateWarnings = []; // Tracks components we have already warned about.\n\n  var didWarnAboutUnsafeLifecycles = new Set();\n\n  ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n    // Dedupe strategy: Warn once per component.\n    if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n      return;\n    }\n\n    if (typeof instance.componentWillMount === 'function' && // Don't warn about react-lifecycles-compat polyfilled components.\n    instance.componentWillMount.__suppressDeprecationWarning !== true) {\n      pendingComponentWillMountWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n      pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n      pendingComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n      pendingComponentWillUpdateWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n      pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n    // We do an initial pass to gather component names\n    var componentWillMountUniqueNames = new Set();\n\n    if (pendingComponentWillMountWarnings.length > 0) {\n      pendingComponentWillMountWarnings.forEach(function (fiber) {\n        componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillMountWarnings = [];\n    }\n\n    var UNSAFE_componentWillMountUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillMountWarnings = [];\n    }\n\n    var componentWillReceivePropsUniqueNames = new Set();\n\n    if (pendingComponentWillReceivePropsWarnings.length > 0) {\n      pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillReceivePropsWarnings = [];\n    }\n\n    var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    }\n\n    var componentWillUpdateUniqueNames = new Set();\n\n    if (pendingComponentWillUpdateWarnings.length > 0) {\n      pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n        componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillUpdateWarnings = [];\n    }\n\n    var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    } // Finally, we flush all the warnings\n    // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n\n\n    if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n      var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n      error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n    }\n\n    if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n      error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n    }\n\n    if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n      error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n    }\n\n    if (componentWillMountUniqueNames.size > 0) {\n      var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n      warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n    }\n\n    if (componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n      warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n    }\n\n    if (componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n      warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n    }\n  };\n\n  var pendingLegacyContextWarning = new Map(); // Tracks components we have already warned about.\n\n  var didWarnAboutLegacyContext = new Set();\n\n  ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n    var strictRoot = findStrictRoot(fiber);\n\n    if (strictRoot === null) {\n      error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n      return;\n    } // Dedup strategy: Warn once per component.\n\n\n    if (didWarnAboutLegacyContext.has(fiber.type)) {\n      return;\n    }\n\n    var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n    if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n      if (warningsForRoot === undefined) {\n        warningsForRoot = [];\n        pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n      }\n\n      warningsForRoot.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n    pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n      if (fiberArray.length === 0) {\n        return;\n      }\n\n      var firstFiber = fiberArray[0];\n      var uniqueNames = new Set();\n      fiberArray.forEach(function (fiber) {\n        uniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n        didWarnAboutLegacyContext.add(fiber.type);\n      });\n      var sortedNames = setToSortedString(uniqueNames);\n\n      try {\n        setCurrentFiber(firstFiber);\n\n        error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context', sortedNames);\n      } finally {\n        resetCurrentFiber();\n      }\n    });\n  };\n\n  ReactStrictModeWarnings.discardPendingWarnings = function () {\n    pendingComponentWillMountWarnings = [];\n    pendingUNSAFE_ComponentWillMountWarnings = [];\n    pendingComponentWillReceivePropsWarnings = [];\n    pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    pendingComponentWillUpdateWarnings = [];\n    pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    pendingLegacyContextWarning = new Map();\n  };\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n  if (Component && Component.defaultProps) {\n    // Resolve default props. Taken from ReactElement\n    var props = assign({}, baseProps);\n    var defaultProps = Component.defaultProps;\n\n    for (var propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n\n    return props;\n  }\n\n  return baseProps;\n}\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n  // Use this to detect multiple renderers using the same context\n  rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastFullyObservedContext = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n  // This is called right before React yields execution, to ensure `readContext`\n  // cannot be called outside the render phase.\n  currentlyRenderingFiber = null;\n  lastContextDependency = null;\n  lastFullyObservedContext = null;\n\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\nfunction enterDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = true;\n  }\n}\nfunction exitDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\nfunction pushProvider(providerFiber, context, nextValue) {\n  {\n    push(valueCursor, context._currentValue, providerFiber);\n    context._currentValue = nextValue;\n\n    {\n      if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n        error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n      }\n\n      context._currentRenderer = rendererSigil;\n    }\n  }\n}\nfunction popProvider(context, providerFiber) {\n  var currentValue = valueCursor.current;\n  pop(valueCursor, providerFiber);\n\n  {\n    {\n      context._currentValue = currentValue;\n    }\n  }\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n  // Update the child lanes of all the ancestors, including the alternates.\n  var node = parent;\n\n  while (node !== null) {\n    var alternate = node.alternate;\n\n    if (!isSubsetOfLanes(node.childLanes, renderLanes)) {\n      node.childLanes = mergeLanes(node.childLanes, renderLanes);\n\n      if (alternate !== null) {\n        alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n      }\n    } else if (alternate !== null && !isSubsetOfLanes(alternate.childLanes, renderLanes)) {\n      alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n    }\n\n    if (node === propagationRoot) {\n      break;\n    }\n\n    node = node.return;\n  }\n\n  {\n    if (node !== propagationRoot) {\n      error('Expected to find the propagation root when scheduling context work. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n  }\n}\nfunction propagateContextChange(workInProgress, context, renderLanes) {\n  {\n    propagateContextChange_eager(workInProgress, context, renderLanes);\n  }\n}\n\nfunction propagateContextChange_eager(workInProgress, context, renderLanes) {\n\n  var fiber = workInProgress.child;\n\n  if (fiber !== null) {\n    // Set the return pointer of the child to the work-in-progress fiber.\n    fiber.return = workInProgress;\n  }\n\n  while (fiber !== null) {\n    var nextFiber = void 0; // Visit this fiber.\n\n    var list = fiber.dependencies;\n\n    if (list !== null) {\n      nextFiber = fiber.child;\n      var dependency = list.firstContext;\n\n      while (dependency !== null) {\n        // Check if the context matches.\n        if (dependency.context === context) {\n          // Match! Schedule an update on this fiber.\n          if (fiber.tag === ClassComponent) {\n            // Schedule a force update on the work-in-progress.\n            var lane = pickArbitraryLane(renderLanes);\n            var update = createUpdate(NoTimestamp, lane);\n            update.tag = ForceUpdate; // TODO: Because we don't have a work-in-progress, this will add the\n            // update to the current fiber, too, which means it will persist even if\n            // this render is thrown away. Since it's a race condition, not sure it's\n            // worth fixing.\n            // Inlined `enqueueUpdate` to remove interleaved update check\n\n            var updateQueue = fiber.updateQueue;\n\n            if (updateQueue === null) ; else {\n              var sharedQueue = updateQueue.shared;\n              var pending = sharedQueue.pending;\n\n              if (pending === null) {\n                // This is the first update. Create a circular list.\n                update.next = update;\n              } else {\n                update.next = pending.next;\n                pending.next = update;\n              }\n\n              sharedQueue.pending = update;\n            }\n          }\n\n          fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n          var alternate = fiber.alternate;\n\n          if (alternate !== null) {\n            alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n          }\n\n          scheduleContextWorkOnParentPath(fiber.return, renderLanes, workInProgress); // Mark the updated lanes on the list, too.\n\n          list.lanes = mergeLanes(list.lanes, renderLanes); // Since we already found a match, we can stop traversing the\n          // dependency list.\n\n          break;\n        }\n\n        dependency = dependency.next;\n      }\n    } else if (fiber.tag === ContextProvider) {\n      // Don't scan deeper if this is a matching provider\n      nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n    } else if (fiber.tag === DehydratedFragment) {\n      // If a dehydrated suspense boundary is in this subtree, we don't know\n      // if it will have any context consumers in it. The best we can do is\n      // mark it as having updates.\n      var parentSuspense = fiber.return;\n\n      if (parentSuspense === null) {\n        throw new Error('We just came from a parent so we must have had a parent. This is a bug in React.');\n      }\n\n      parentSuspense.lanes = mergeLanes(parentSuspense.lanes, renderLanes);\n      var _alternate = parentSuspense.alternate;\n\n      if (_alternate !== null) {\n        _alternate.lanes = mergeLanes(_alternate.lanes, renderLanes);\n      } // This is intentionally passing this fiber as the parent\n      // because we want to schedule this fiber as having work\n      // on its children. We'll use the childLanes on\n      // this fiber to indicate that a context has changed.\n\n\n      scheduleContextWorkOnParentPath(parentSuspense, renderLanes, workInProgress);\n      nextFiber = fiber.sibling;\n    } else {\n      // Traverse down.\n      nextFiber = fiber.child;\n    }\n\n    if (nextFiber !== null) {\n      // Set the return pointer of the child to the work-in-progress fiber.\n      nextFiber.return = fiber;\n    } else {\n      // No child. Traverse to next sibling.\n      nextFiber = fiber;\n\n      while (nextFiber !== null) {\n        if (nextFiber === workInProgress) {\n          // We're back to the root of this subtree. Exit.\n          nextFiber = null;\n          break;\n        }\n\n        var sibling = nextFiber.sibling;\n\n        if (sibling !== null) {\n          // Set the return pointer of the sibling to the work-in-progress fiber.\n          sibling.return = nextFiber.return;\n          nextFiber = sibling;\n          break;\n        } // No more siblings. Traverse up.\n\n\n        nextFiber = nextFiber.return;\n      }\n    }\n\n    fiber = nextFiber;\n  }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n  currentlyRenderingFiber = workInProgress;\n  lastContextDependency = null;\n  lastFullyObservedContext = null;\n  var dependencies = workInProgress.dependencies;\n\n  if (dependencies !== null) {\n    {\n      var firstContext = dependencies.firstContext;\n\n      if (firstContext !== null) {\n        if (includesSomeLane(dependencies.lanes, renderLanes)) {\n          // Context list has a pending update. Mark that this fiber performed work.\n          markWorkInProgressReceivedUpdate();\n        } // Reset the work-in-progress list\n\n\n        dependencies.firstContext = null;\n      }\n    }\n  }\n}\nfunction readContext(context) {\n  {\n    // This warning would fire if you read context inside a Hook like useMemo.\n    // Unlike the class check below, it's not enforced in production for perf.\n    if (isDisallowedContextReadInDEV) {\n      error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n    }\n  }\n\n  var value =  context._currentValue ;\n\n  if (lastFullyObservedContext === context) ; else {\n    var contextItem = {\n      context: context,\n      memoizedValue: value,\n      next: null\n    };\n\n    if (lastContextDependency === null) {\n      if (currentlyRenderingFiber === null) {\n        throw new Error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n      } // This is the first dependency for this component. Create a new list.\n\n\n      lastContextDependency = contextItem;\n      currentlyRenderingFiber.dependencies = {\n        lanes: NoLanes,\n        firstContext: contextItem\n      };\n    } else {\n      // Append a new context item.\n      lastContextDependency = lastContextDependency.next = contextItem;\n    }\n  }\n\n  return value;\n}\n\n// render. When this render exits, either because it finishes or because it is\n// interrupted, the interleaved updates will be transferred onto the main part\n// of the queue.\n\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n  if (concurrentQueues === null) {\n    concurrentQueues = [queue];\n  } else {\n    concurrentQueues.push(queue);\n  }\n}\nfunction finishQueueingConcurrentUpdates() {\n  // Transfer the interleaved updates onto the main queue. Each queue has a\n  // `pending` field and an `interleaved` field. When they are not null, they\n  // point to the last node in a circular linked list. We need to append the\n  // interleaved list to the end of the pending list by joining them into a\n  // single, circular list.\n  if (concurrentQueues !== null) {\n    for (var i = 0; i < concurrentQueues.length; i++) {\n      var queue = concurrentQueues[i];\n      var lastInterleavedUpdate = queue.interleaved;\n\n      if (lastInterleavedUpdate !== null) {\n        queue.interleaved = null;\n        var firstInterleavedUpdate = lastInterleavedUpdate.next;\n        var lastPendingUpdate = queue.pending;\n\n        if (lastPendingUpdate !== null) {\n          var firstPendingUpdate = lastPendingUpdate.next;\n          lastPendingUpdate.next = firstInterleavedUpdate;\n          lastInterleavedUpdate.next = firstPendingUpdate;\n        }\n\n        queue.pending = lastInterleavedUpdate;\n      }\n    }\n\n    concurrentQueues = null;\n  }\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n  var interleaved = queue.interleaved;\n\n  if (interleaved === null) {\n    // This is the first update. Create a circular list.\n    update.next = update; // At the end of the current render, this queue's interleaved updates will\n    // be transferred to the pending queue.\n\n    pushConcurrentUpdateQueue(queue);\n  } else {\n    update.next = interleaved.next;\n    interleaved.next = update;\n  }\n\n  queue.interleaved = update;\n  return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction enqueueConcurrentHookUpdateAndEagerlyBailout(fiber, queue, update, lane) {\n  var interleaved = queue.interleaved;\n\n  if (interleaved === null) {\n    // This is the first update. Create a circular list.\n    update.next = update; // At the end of the current render, this queue's interleaved updates will\n    // be transferred to the pending queue.\n\n    pushConcurrentUpdateQueue(queue);\n  } else {\n    update.next = interleaved.next;\n    interleaved.next = update;\n  }\n\n  queue.interleaved = update;\n}\nfunction enqueueConcurrentClassUpdate(fiber, queue, update, lane) {\n  var interleaved = queue.interleaved;\n\n  if (interleaved === null) {\n    // This is the first update. Create a circular list.\n    update.next = update; // At the end of the current render, this queue's interleaved updates will\n    // be transferred to the pending queue.\n\n    pushConcurrentUpdateQueue(queue);\n  } else {\n    update.next = interleaved.next;\n    interleaved.next = update;\n  }\n\n  queue.interleaved = update;\n  return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n  return markUpdateLaneFromFiberToRoot(fiber, lane);\n} // Calling this function outside this module should only be done for backwards\n// compatibility and should always be accompanied by a warning.\n\nvar unsafe_markUpdateLaneFromFiberToRoot = markUpdateLaneFromFiberToRoot;\n\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n  // Update the source fiber's lanes\n  sourceFiber.lanes = mergeLanes(sourceFiber.lanes, lane);\n  var alternate = sourceFiber.alternate;\n\n  if (alternate !== null) {\n    alternate.lanes = mergeLanes(alternate.lanes, lane);\n  }\n\n  {\n    if (alternate === null && (sourceFiber.flags & (Placement | Hydrating)) !== NoFlags) {\n      warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n    }\n  } // Walk the parent path to the root and update the child lanes.\n\n\n  var node = sourceFiber;\n  var parent = sourceFiber.return;\n\n  while (parent !== null) {\n    parent.childLanes = mergeLanes(parent.childLanes, lane);\n    alternate = parent.alternate;\n\n    if (alternate !== null) {\n      alternate.childLanes = mergeLanes(alternate.childLanes, lane);\n    } else {\n      {\n        if ((parent.flags & (Placement | Hydrating)) !== NoFlags) {\n          warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n        }\n      }\n    }\n\n    node = parent;\n    parent = parent.return;\n  }\n\n  if (node.tag === HostRoot) {\n    var root = node.stateNode;\n    return root;\n  } else {\n    return null;\n  }\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; // Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n  didWarnUpdateInsideUpdate = false;\n  currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n  var queue = {\n    baseState: fiber.memoizedState,\n    firstBaseUpdate: null,\n    lastBaseUpdate: null,\n    shared: {\n      pending: null,\n      interleaved: null,\n      lanes: NoLanes\n    },\n    effects: null\n  };\n  fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n  // Clone the update queue from current. Unless it's already a clone.\n  var queue = workInProgress.updateQueue;\n  var currentQueue = current.updateQueue;\n\n  if (queue === currentQueue) {\n    var clone = {\n      baseState: currentQueue.baseState,\n      firstBaseUpdate: currentQueue.firstBaseUpdate,\n      lastBaseUpdate: currentQueue.lastBaseUpdate,\n      shared: currentQueue.shared,\n      effects: currentQueue.effects\n    };\n    workInProgress.updateQueue = clone;\n  }\n}\nfunction createUpdate(eventTime, lane) {\n  var update = {\n    eventTime: eventTime,\n    lane: lane,\n    tag: UpdateState,\n    payload: null,\n    callback: null,\n    next: null\n  };\n  return update;\n}\nfunction enqueueUpdate(fiber, update, lane) {\n  var updateQueue = fiber.updateQueue;\n\n  if (updateQueue === null) {\n    // Only occurs if the fiber has been unmounted.\n    return null;\n  }\n\n  var sharedQueue = updateQueue.shared;\n\n  {\n    if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n      error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n      didWarnUpdateInsideUpdate = true;\n    }\n  }\n\n  if (isUnsafeClassRenderPhaseUpdate()) {\n    // This is an unsafe render phase update. Add directly to the update\n    // queue so we can process it immediately during the current render.\n    var pending = sharedQueue.pending;\n\n    if (pending === null) {\n      // This is the first update. Create a circular list.\n      update.next = update;\n    } else {\n      update.next = pending.next;\n      pending.next = update;\n    }\n\n    sharedQueue.pending = update; // Update the childLanes even though we're most likely already rendering\n    // this fiber. This is for backwards compatibility in the case where you\n    // update a different component during render phase than the one that is\n    // currently renderings (a pattern that is accompanied by a warning).\n\n    return unsafe_markUpdateLaneFromFiberToRoot(fiber, lane);\n  } else {\n    return enqueueConcurrentClassUpdate(fiber, sharedQueue, update, lane);\n  }\n}\nfunction entangleTransitions(root, fiber, lane) {\n  var updateQueue = fiber.updateQueue;\n\n  if (updateQueue === null) {\n    // Only occurs if the fiber has been unmounted.\n    return;\n  }\n\n  var sharedQueue = updateQueue.shared;\n\n  if (isTransitionLane(lane)) {\n    var queueLanes = sharedQueue.lanes; // If any entangled lanes are no longer pending on the root, then they must\n    // have finished. We can remove them from the shared queue, which represents\n    // a superset of the actually pending lanes. In some cases we may entangle\n    // more than we need to, but that's OK. In fact it's worse if we *don't*\n    // entangle when we should.\n\n    queueLanes = intersectLanes(queueLanes, root.pendingLanes); // Entangle the new transition lane with the other transition lanes.\n\n    var newQueueLanes = mergeLanes(queueLanes, lane);\n    sharedQueue.lanes = newQueueLanes; // Even if queue.lanes already include lane, we don't know for certain if\n    // the lane finished since the last time we entangled it. So we need to\n    // entangle it again, just to be sure.\n\n    markRootEntangled(root, newQueueLanes);\n  }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n  // Captured updates are updates that are thrown by a child during the render\n  // phase. They should be discarded if the render is aborted. Therefore,\n  // we should only put them on the work-in-progress queue, not the current one.\n  var queue = workInProgress.updateQueue; // Check if the work-in-progress queue is a clone.\n\n  var current = workInProgress.alternate;\n\n  if (current !== null) {\n    var currentQueue = current.updateQueue;\n\n    if (queue === currentQueue) {\n      // The work-in-progress queue is the same as current. This happens when\n      // we bail out on a parent fiber that then captures an error thrown by\n      // a child. Since we want to append the update only to the work-in\n      // -progress queue, we need to clone the updates. We usually clone during\n      // processUpdateQueue, but that didn't happen in this case because we\n      // skipped over the parent when we bailed out.\n      var newFirst = null;\n      var newLast = null;\n      var firstBaseUpdate = queue.firstBaseUpdate;\n\n      if (firstBaseUpdate !== null) {\n        // Loop through the updates and clone them.\n        var update = firstBaseUpdate;\n\n        do {\n          var clone = {\n            eventTime: update.eventTime,\n            lane: update.lane,\n            tag: update.tag,\n            payload: update.payload,\n            callback: update.callback,\n            next: null\n          };\n\n          if (newLast === null) {\n            newFirst = newLast = clone;\n          } else {\n            newLast.next = clone;\n            newLast = clone;\n          }\n\n          update = update.next;\n        } while (update !== null); // Append the captured update the end of the cloned list.\n\n\n        if (newLast === null) {\n          newFirst = newLast = capturedUpdate;\n        } else {\n          newLast.next = capturedUpdate;\n          newLast = capturedUpdate;\n        }\n      } else {\n        // There are no base updates.\n        newFirst = newLast = capturedUpdate;\n      }\n\n      queue = {\n        baseState: currentQueue.baseState,\n        firstBaseUpdate: newFirst,\n        lastBaseUpdate: newLast,\n        shared: currentQueue.shared,\n        effects: currentQueue.effects\n      };\n      workInProgress.updateQueue = queue;\n      return;\n    }\n  } // Append the update to the end of the list.\n\n\n  var lastBaseUpdate = queue.lastBaseUpdate;\n\n  if (lastBaseUpdate === null) {\n    queue.firstBaseUpdate = capturedUpdate;\n  } else {\n    lastBaseUpdate.next = capturedUpdate;\n  }\n\n  queue.lastBaseUpdate = capturedUpdate;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n  switch (update.tag) {\n    case ReplaceState:\n      {\n        var payload = update.payload;\n\n        if (typeof payload === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n          }\n\n          var nextState = payload.call(instance, prevState, nextProps);\n\n          {\n            if ( workInProgress.mode & StrictLegacyMode) {\n              setIsStrictModeForDevtools(true);\n\n              try {\n                payload.call(instance, prevState, nextProps);\n              } finally {\n                setIsStrictModeForDevtools(false);\n              }\n            }\n\n            exitDisallowedContextReadInDEV();\n          }\n\n          return nextState;\n        } // State object\n\n\n        return payload;\n      }\n\n    case CaptureUpdate:\n      {\n        workInProgress.flags = workInProgress.flags & ~ShouldCapture | DidCapture;\n      }\n    // Intentional fallthrough\n\n    case UpdateState:\n      {\n        var _payload = update.payload;\n        var partialState;\n\n        if (typeof _payload === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n          }\n\n          partialState = _payload.call(instance, prevState, nextProps);\n\n          {\n            if ( workInProgress.mode & StrictLegacyMode) {\n              setIsStrictModeForDevtools(true);\n\n              try {\n                _payload.call(instance, prevState, nextProps);\n              } finally {\n                setIsStrictModeForDevtools(false);\n              }\n            }\n\n            exitDisallowedContextReadInDEV();\n          }\n        } else {\n          // Partial state object\n          partialState = _payload;\n        }\n\n        if (partialState === null || partialState === undefined) {\n          // Null and undefined are treated as no-ops.\n          return prevState;\n        } // Merge the partial state and the previous state.\n\n\n        return assign({}, prevState, partialState);\n      }\n\n    case ForceUpdate:\n      {\n        hasForceUpdate = true;\n        return prevState;\n      }\n  }\n\n  return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderLanes) {\n  // This is always non-null on a ClassComponent or HostRoot\n  var queue = workInProgress.updateQueue;\n  hasForceUpdate = false;\n\n  {\n    currentlyProcessingQueue = queue.shared;\n  }\n\n  var firstBaseUpdate = queue.firstBaseUpdate;\n  var lastBaseUpdate = queue.lastBaseUpdate; // Check if there are pending updates. If so, transfer them to the base queue.\n\n  var pendingQueue = queue.shared.pending;\n\n  if (pendingQueue !== null) {\n    queue.shared.pending = null; // The pending queue is circular. Disconnect the pointer between first\n    // and last so that it's non-circular.\n\n    var lastPendingUpdate = pendingQueue;\n    var firstPendingUpdate = lastPendingUpdate.next;\n    lastPendingUpdate.next = null; // Append pending updates to base queue\n\n    if (lastBaseUpdate === null) {\n      firstBaseUpdate = firstPendingUpdate;\n    } else {\n      lastBaseUpdate.next = firstPendingUpdate;\n    }\n\n    lastBaseUpdate = lastPendingUpdate; // If there's a current queue, and it's different from the base queue, then\n    // we need to transfer the updates to that queue, too. Because the base\n    // queue is a singly-linked list with no cycles, we can append to both\n    // lists and take advantage of structural sharing.\n    // TODO: Pass `current` as argument\n\n    var current = workInProgress.alternate;\n\n    if (current !== null) {\n      // This is always non-null on a ClassComponent or HostRoot\n      var currentQueue = current.updateQueue;\n      var currentLastBaseUpdate = currentQueue.lastBaseUpdate;\n\n      if (currentLastBaseUpdate !== lastBaseUpdate) {\n        if (currentLastBaseUpdate === null) {\n          currentQueue.firstBaseUpdate = firstPendingUpdate;\n        } else {\n          currentLastBaseUpdate.next = firstPendingUpdate;\n        }\n\n        currentQueue.lastBaseUpdate = lastPendingUpdate;\n      }\n    }\n  } // These values may change as we process the queue.\n\n\n  if (firstBaseUpdate !== null) {\n    // Iterate through the list of updates to compute the result.\n    var newState = queue.baseState; // TODO: Don't need to accumulate this. Instead, we can remove renderLanes\n    // from the original lanes.\n\n    var newLanes = NoLanes;\n    var newBaseState = null;\n    var newFirstBaseUpdate = null;\n    var newLastBaseUpdate = null;\n    var update = firstBaseUpdate;\n\n    do {\n      var updateLane = update.lane;\n      var updateEventTime = update.eventTime;\n\n      if (!isSubsetOfLanes(renderLanes, updateLane)) {\n        // Priority is insufficient. Skip this update. If this is the first\n        // skipped update, the previous update/state is the new base\n        // update/state.\n        var clone = {\n          eventTime: updateEventTime,\n          lane: updateLane,\n          tag: update.tag,\n          payload: update.payload,\n          callback: update.callback,\n          next: null\n        };\n\n        if (newLastBaseUpdate === null) {\n          newFirstBaseUpdate = newLastBaseUpdate = clone;\n          newBaseState = newState;\n        } else {\n          newLastBaseUpdate = newLastBaseUpdate.next = clone;\n        } // Update the remaining priority in the queue.\n\n\n        newLanes = mergeLanes(newLanes, updateLane);\n      } else {\n        // This update does have sufficient priority.\n        if (newLastBaseUpdate !== null) {\n          var _clone = {\n            eventTime: updateEventTime,\n            // This update is going to be committed so we never want uncommit\n            // it. Using NoLane works because 0 is a subset of all bitmasks, so\n            // this will never be skipped by the check above.\n            lane: NoLane,\n            tag: update.tag,\n            payload: update.payload,\n            callback: update.callback,\n            next: null\n          };\n          newLastBaseUpdate = newLastBaseUpdate.next = _clone;\n        } // Process this update.\n\n\n        newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n        var callback = update.callback;\n\n        if (callback !== null && // If the update was already committed, we should not queue its\n        // callback again.\n        update.lane !== NoLane) {\n          workInProgress.flags |= Callback;\n          var effects = queue.effects;\n\n          if (effects === null) {\n            queue.effects = [update];\n          } else {\n            effects.push(update);\n          }\n        }\n      }\n\n      update = update.next;\n\n      if (update === null) {\n        pendingQueue = queue.shared.pending;\n\n        if (pendingQueue === null) {\n          break;\n        } else {\n          // An update was scheduled from inside a reducer. Add the new\n          // pending updates to the end of the list and keep processing.\n          var _lastPendingUpdate = pendingQueue; // Intentionally unsound. Pending updates form a circular list, but we\n          // unravel them when transferring them to the base queue.\n\n          var _firstPendingUpdate = _lastPendingUpdate.next;\n          _lastPendingUpdate.next = null;\n          update = _firstPendingUpdate;\n          queue.lastBaseUpdate = _lastPendingUpdate;\n          queue.shared.pending = null;\n        }\n      }\n    } while (true);\n\n    if (newLastBaseUpdate === null) {\n      newBaseState = newState;\n    }\n\n    queue.baseState = newBaseState;\n    queue.firstBaseUpdate = newFirstBaseUpdate;\n    queue.lastBaseUpdate = newLastBaseUpdate; // Interleaved updates are stored on a separate queue. We aren't going to\n    // process them during this render, but we do need to track which lanes\n    // are remaining.\n\n    var lastInterleaved = queue.shared.interleaved;\n\n    if (lastInterleaved !== null) {\n      var interleaved = lastInterleaved;\n\n      do {\n        newLanes = mergeLanes(newLanes, interleaved.lane);\n        interleaved = interleaved.next;\n      } while (interleaved !== lastInterleaved);\n    } else if (firstBaseUpdate === null) {\n      // `queue.lanes` is used for entangling transitions. We can set it back to\n      // zero once the queue is empty.\n      queue.shared.lanes = NoLanes;\n    } // Set the remaining expiration time to be whatever is remaining in the queue.\n    // This should be fine because the only two other things that contribute to\n    // expiration time are props and context. We're already in the middle of the\n    // begin phase by the time we start processing the queue, so we've already\n    // dealt with the props. Context in components that specify\n    // shouldComponentUpdate is tricky; but we'll have to account for\n    // that regardless.\n\n\n    markSkippedUpdateLanes(newLanes);\n    workInProgress.lanes = newLanes;\n    workInProgress.memoizedState = newState;\n  }\n\n  {\n    currentlyProcessingQueue = null;\n  }\n}\n\nfunction callCallback(callback, context) {\n  if (typeof callback !== 'function') {\n    throw new Error('Invalid argument passed as callback. Expected a function. Instead ' + (\"received: \" + callback));\n  }\n\n  callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n  hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n  return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n  // Commit the effects\n  var effects = finishedQueue.effects;\n  finishedQueue.effects = null;\n\n  if (effects !== null) {\n    for (var i = 0; i < effects.length; i++) {\n      var effect = effects[i];\n      var callback = effect.callback;\n\n      if (callback !== null) {\n        effect.callback = null;\n        callCallback(callback, instance);\n      }\n    }\n  }\n}\n\nvar fakeInternalInstance = {}; // React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\n\nvar emptyRefsObject = new React.Component().refs;\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\n\n{\n  didWarnAboutStateAssignmentForComponent = new Set();\n  didWarnAboutUninitializedState = new Set();\n  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n  didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n  didWarnAboutDirectlyAssigningPropsToState = new Set();\n  didWarnAboutUndefinedDerivedState = new Set();\n  didWarnAboutContextTypeAndContextTypes = new Set();\n  didWarnAboutInvalidateContextType = new Set();\n  var didWarnOnInvalidCallback = new Set();\n\n  warnOnInvalidCallback = function (callback, callerName) {\n    if (callback === null || typeof callback === 'function') {\n      return;\n    }\n\n    var key = callerName + '_' + callback;\n\n    if (!didWarnOnInvalidCallback.has(key)) {\n      didWarnOnInvalidCallback.add(key);\n\n      error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  };\n\n  warnOnUndefinedDerivedState = function (type, partialState) {\n    if (partialState === undefined) {\n      var componentName = getComponentNameFromType(type) || 'Component';\n\n      if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n        didWarnAboutUndefinedDerivedState.add(componentName);\n\n        error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n      }\n    }\n  }; // This is so gross but it's at least non-critical and can be removed if\n  // it causes problems. This is meant to give a nicer error message for\n  // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n  // ...)) which otherwise throws a \"_processChildContext is not a function\"\n  // exception.\n\n\n  Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n    enumerable: false,\n    value: function () {\n      throw new Error('_processChildContext is not available in React 16+. This likely ' + 'means you have multiple copies of React and are attempting to nest ' + 'a React 15 tree inside a React 16 tree using ' + \"unstable_renderSubtreeIntoContainer, which isn't supported. Try \" + 'to make sure you have only one copy of React (and ideally, switch ' + 'to ReactDOM.createPortal).');\n    }\n  });\n  Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n  var prevState = workInProgress.memoizedState;\n  var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n  {\n    if ( workInProgress.mode & StrictLegacyMode) {\n      setIsStrictModeForDevtools(true);\n\n      try {\n        // Invoke the function an extra time to help detect side-effects.\n        partialState = getDerivedStateFromProps(nextProps, prevState);\n      } finally {\n        setIsStrictModeForDevtools(false);\n      }\n    }\n\n    warnOnUndefinedDerivedState(ctor, partialState);\n  } // Merge the partial state and the previous state.\n\n\n  var memoizedState = partialState === null || partialState === undefined ? prevState : assign({}, prevState, partialState);\n  workInProgress.memoizedState = memoizedState; // Once the update queue is empty, persist the derived state onto the\n  // base state.\n\n  if (workInProgress.lanes === NoLanes) {\n    // Queue is always non-null for classes\n    var updateQueue = workInProgress.updateQueue;\n    updateQueue.baseState = memoizedState;\n  }\n}\n\nvar classComponentUpdater = {\n  isMounted: isMounted,\n  enqueueSetState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var eventTime = requestEventTime();\n    var lane = requestUpdateLane(fiber);\n    var update = createUpdate(eventTime, lane);\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'setState');\n      }\n\n      update.callback = callback;\n    }\n\n    var root = enqueueUpdate(fiber, update, lane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n      entangleTransitions(root, fiber, lane);\n    }\n\n    {\n      markStateUpdateScheduled(fiber, lane);\n    }\n  },\n  enqueueReplaceState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var eventTime = requestEventTime();\n    var lane = requestUpdateLane(fiber);\n    var update = createUpdate(eventTime, lane);\n    update.tag = ReplaceState;\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'replaceState');\n      }\n\n      update.callback = callback;\n    }\n\n    var root = enqueueUpdate(fiber, update, lane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n      entangleTransitions(root, fiber, lane);\n    }\n\n    {\n      markStateUpdateScheduled(fiber, lane);\n    }\n  },\n  enqueueForceUpdate: function (inst, callback) {\n    var fiber = get(inst);\n    var eventTime = requestEventTime();\n    var lane = requestUpdateLane(fiber);\n    var update = createUpdate(eventTime, lane);\n    update.tag = ForceUpdate;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'forceUpdate');\n      }\n\n      update.callback = callback;\n    }\n\n    var root = enqueueUpdate(fiber, update, lane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n      entangleTransitions(root, fiber, lane);\n    }\n\n    {\n      markForceUpdateScheduled(fiber, lane);\n    }\n  }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n  var instance = workInProgress.stateNode;\n\n  if (typeof instance.shouldComponentUpdate === 'function') {\n    var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n\n    {\n      if ( workInProgress.mode & StrictLegacyMode) {\n        setIsStrictModeForDevtools(true);\n\n        try {\n          // Invoke the function an extra time to help detect side-effects.\n          shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n        } finally {\n          setIsStrictModeForDevtools(false);\n        }\n      }\n\n      if (shouldUpdate === undefined) {\n        error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentNameFromType(ctor) || 'Component');\n      }\n    }\n\n    return shouldUpdate;\n  }\n\n  if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n    return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n  }\n\n  return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n  var instance = workInProgress.stateNode;\n\n  {\n    var name = getComponentNameFromType(ctor) || 'Component';\n    var renderPresent = instance.render;\n\n    if (!renderPresent) {\n      if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n        error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n      } else {\n        error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n      }\n    }\n\n    if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n      error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n    }\n\n    if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n    }\n\n    if (instance.propTypes) {\n      error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n    }\n\n    if (instance.contextType) {\n      error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n    }\n\n    {\n      if (instance.contextTypes) {\n        error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n      }\n\n      if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n        didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n        error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n      }\n    }\n\n    if (typeof instance.componentShouldUpdate === 'function') {\n      error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n    }\n\n    if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n      error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentNameFromType(ctor) || 'A pure component');\n    }\n\n    if (typeof instance.componentDidUnmount === 'function') {\n      error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n    }\n\n    if (typeof instance.componentDidReceiveProps === 'function') {\n      error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n    }\n\n    if (typeof instance.componentWillRecieveProps === 'function') {\n      error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n    }\n\n    if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n      error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n    }\n\n    var hasMutatedProps = instance.props !== newProps;\n\n    if (instance.props !== undefined && hasMutatedProps) {\n      error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n    }\n\n    if (instance.defaultProps) {\n      error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n      didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n      error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentNameFromType(ctor));\n    }\n\n    if (typeof instance.getDerivedStateFromProps === 'function') {\n      error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n    }\n\n    if (typeof instance.getDerivedStateFromError === 'function') {\n      error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n    }\n\n    if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n      error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n    }\n\n    var _state = instance.state;\n\n    if (_state && (typeof _state !== 'object' || isArray(_state))) {\n      error('%s.state: must be set to an object or null', name);\n    }\n\n    if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n      error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n    }\n  }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n  instance.updater = classComponentUpdater;\n  workInProgress.stateNode = instance; // The instance needs access to the fiber so that it can schedule updates\n\n  set(instance, workInProgress);\n\n  {\n    instance._reactInternalInstance = fakeInternalInstance;\n  }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n  var isLegacyContextConsumer = false;\n  var unmaskedContext = emptyContextObject;\n  var context = emptyContextObject;\n  var contextType = ctor.contextType;\n\n  {\n    if ('contextType' in ctor) {\n      var isValid = // Allow null for conditional declaration\n      contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n      if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n        didWarnAboutInvalidateContextType.add(ctor);\n        var addendum = '';\n\n        if (contextType === undefined) {\n          addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n        } else if (typeof contextType !== 'object') {\n          addendum = ' However, it is set to a ' + typeof contextType + '.';\n        } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n          addendum = ' Did you accidentally pass the Context.Provider instead?';\n        } else if (contextType._context !== undefined) {\n          // <Context.Consumer>\n          addendum = ' Did you accidentally pass the Context.Consumer instead?';\n        } else {\n          addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n        }\n\n        error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentNameFromType(ctor) || 'Component', addendum);\n      }\n    }\n  }\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    context = readContext(contextType);\n  } else {\n    unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    var contextTypes = ctor.contextTypes;\n    isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n    context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n  }\n\n  var instance = new ctor(props, context); // Instantiate twice to help detect side-effects.\n\n  {\n    if ( workInProgress.mode & StrictLegacyMode) {\n      setIsStrictModeForDevtools(true);\n\n      try {\n        instance = new ctor(props, context); // eslint-disable-line no-new\n      } finally {\n        setIsStrictModeForDevtools(false);\n      }\n    }\n  }\n\n  var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n  adoptClassInstance(workInProgress, instance);\n\n  {\n    if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n      var componentName = getComponentNameFromType(ctor) || 'Component';\n\n      if (!didWarnAboutUninitializedState.has(componentName)) {\n        didWarnAboutUninitializedState.add(componentName);\n\n        error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n      }\n    } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n    // Warn about these lifecycles if they are present.\n    // Don't warn about react-lifecycles-compat polyfilled methods though.\n\n\n    if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n      var foundWillMountName = null;\n      var foundWillReceivePropsName = null;\n      var foundWillUpdateName = null;\n\n      if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n        foundWillMountName = 'componentWillMount';\n      } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        foundWillMountName = 'UNSAFE_componentWillMount';\n      }\n\n      if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n        foundWillReceivePropsName = 'componentWillReceiveProps';\n      } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n        foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n      }\n\n      if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n        foundWillUpdateName = 'componentWillUpdate';\n      } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n      }\n\n      if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n        var _componentName = getComponentNameFromType(ctor) || 'Component';\n\n        var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n        if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n          didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n          error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n  \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n  \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n  \" + foundWillUpdateName : '');\n        }\n      }\n    }\n  } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n  // ReactFiberContext usually updates this cache but can't for newly-created instances.\n\n\n  if (isLegacyContextConsumer) {\n    cacheContext(workInProgress, unmaskedContext, context);\n  }\n\n  return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n  var oldState = instance.state;\n\n  if (typeof instance.componentWillMount === 'function') {\n    instance.componentWillMount();\n  }\n\n  if (typeof instance.UNSAFE_componentWillMount === 'function') {\n    instance.UNSAFE_componentWillMount();\n  }\n\n  if (oldState !== instance.state) {\n    {\n      error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentNameFromFiber(workInProgress) || 'Component');\n    }\n\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n  var oldState = instance.state;\n\n  if (typeof instance.componentWillReceiveProps === 'function') {\n    instance.componentWillReceiveProps(newProps, nextContext);\n  }\n\n  if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n  }\n\n  if (instance.state !== oldState) {\n    {\n      var componentName = getComponentNameFromFiber(workInProgress) || 'Component';\n\n      if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n        didWarnAboutStateAssignmentForComponent.add(componentName);\n\n        error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n      }\n    }\n\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n} // Invokes the mount life-cycles on a previously never rendered instance.\n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n  {\n    checkClassInstance(workInProgress, ctor, newProps);\n  }\n\n  var instance = workInProgress.stateNode;\n  instance.props = newProps;\n  instance.state = workInProgress.memoizedState;\n  instance.refs = emptyRefsObject;\n  initializeUpdateQueue(workInProgress);\n  var contextType = ctor.contextType;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    instance.context = readContext(contextType);\n  } else {\n    var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    instance.context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  {\n    if (instance.state === newProps) {\n      var componentName = getComponentNameFromType(ctor) || 'Component';\n\n      if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n        didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n        error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n      }\n    }\n\n    if (workInProgress.mode & StrictLegacyMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n    }\n\n    {\n      ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n    }\n  }\n\n  instance.state = workInProgress.memoizedState;\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    instance.state = workInProgress.memoizedState;\n  } // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n\n  if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n    callComponentWillMount(workInProgress, instance); // If we had additional state updates during this life-cycle, let's\n    // process them now.\n\n    processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  if (typeof instance.componentDidMount === 'function') {\n    var fiberFlags = Update;\n\n    {\n      fiberFlags |= LayoutStatic;\n    }\n\n    if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n      fiberFlags |= MountLayoutDev;\n    }\n\n    workInProgress.flags |= fiberFlags;\n  }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n  var instance = workInProgress.stateNode;\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = oldProps;\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else {\n    var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n  newState = workInProgress.memoizedState;\n\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      var fiberFlags = Update;\n\n      {\n        fiberFlags |= LayoutStatic;\n      }\n\n      if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n        fiberFlags |= MountLayoutDev;\n      }\n\n      workInProgress.flags |= fiberFlags;\n    }\n\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n      if (typeof instance.componentWillMount === 'function') {\n        instance.componentWillMount();\n      }\n\n      if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        instance.UNSAFE_componentWillMount();\n      }\n    }\n\n    if (typeof instance.componentDidMount === 'function') {\n      var _fiberFlags = Update;\n\n      {\n        _fiberFlags |= LayoutStatic;\n      }\n\n      if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n        _fiberFlags |= MountLayoutDev;\n      }\n\n      workInProgress.flags |= _fiberFlags;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      var _fiberFlags2 = Update;\n\n      {\n        _fiberFlags2 |= LayoutStatic;\n      }\n\n      if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n        _fiberFlags2 |= MountLayoutDev;\n      }\n\n      workInProgress.flags |= _fiberFlags2;\n    } // If shouldComponentUpdate returned false, we should still update the\n    // memoized state to indicate that this work can be reused.\n\n\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  } // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n\n\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n  return shouldUpdate;\n} // Invokes the update life-cycles and returns false if it shouldn't rerender.\n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderLanes) {\n  var instance = workInProgress.stateNode;\n  cloneUpdateQueue(current, workInProgress);\n  var unresolvedOldProps = workInProgress.memoizedProps;\n  var oldProps = workInProgress.type === workInProgress.elementType ? unresolvedOldProps : resolveDefaultProps(workInProgress.type, unresolvedOldProps);\n  instance.props = oldProps;\n  var unresolvedNewProps = workInProgress.pendingProps;\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else {\n    var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (unresolvedOldProps !== unresolvedNewProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n  newState = workInProgress.memoizedState;\n\n  if (unresolvedOldProps === unresolvedNewProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing() && !(enableLazyContextPropagation   )) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.flags |= Update;\n      }\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.flags |= Snapshot;\n      }\n    }\n\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) || // TODO: In some cases, we'll end up checking if context has changed twice,\n  // both before and after `shouldComponentUpdate` has been called. Not ideal,\n  // but I'm loath to refactor this function. This only happens for memoized\n  // components so it's not that common.\n  enableLazyContextPropagation   ;\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n      if (typeof instance.componentWillUpdate === 'function') {\n        instance.componentWillUpdate(newProps, newState, nextContext);\n      }\n\n      if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n      }\n    }\n\n    if (typeof instance.componentDidUpdate === 'function') {\n      workInProgress.flags |= Update;\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      workInProgress.flags |= Snapshot;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.flags |= Update;\n      }\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.flags |= Snapshot;\n      }\n    } // If shouldComponentUpdate returned false, we should still update the\n    // memoized props/state to indicate that this work can be reused.\n\n\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  } // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n\n\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n  return shouldUpdate;\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child, returnFiber) {};\n\n{\n  didWarnAboutMaps = false;\n  didWarnAboutGenerators = false;\n  didWarnAboutStringRefs = {};\n  /**\n   * Warn if there's no key explicitly set on dynamic arrays of children or\n   * object keys are not valid. This allows us to keep track of children between\n   * updates.\n   */\n\n  ownerHasKeyUseWarning = {};\n  ownerHasFunctionTypeWarning = {};\n\n  warnForMissingKey = function (child, returnFiber) {\n    if (child === null || typeof child !== 'object') {\n      return;\n    }\n\n    if (!child._store || child._store.validated || child.key != null) {\n      return;\n    }\n\n    if (typeof child._store !== 'object') {\n      throw new Error('React Component in warnForMissingKey should have a _store. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n    }\n\n    child._store.validated = true;\n    var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n    if (ownerHasKeyUseWarning[componentName]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[componentName] = true;\n\n    error('Each child in a list should have a unique ' + '\"key\" prop. See https://reactjs.org/link/warning-keys for ' + 'more information.');\n  };\n}\n\nfunction coerceRef(returnFiber, current, element) {\n  var mixedRef = element.ref;\n\n  if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n    {\n      // TODO: Clean this up once we turn on the string ref warning for\n      // everyone, because the strict mode case will no longer be relevant\n      if ((returnFiber.mode & StrictLegacyMode || warnAboutStringRefs) && // We warn in ReactElement.js if owner and self are equal for string refs\n      // because these cannot be automatically converted to an arrow function\n      // using a codemod. Therefore, we don't have to warn about string refs again.\n      !(element._owner && element._self && element._owner.stateNode !== element._self)) {\n        var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n        if (!didWarnAboutStringRefs[componentName]) {\n          {\n            error('A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', mixedRef);\n          }\n\n          didWarnAboutStringRefs[componentName] = true;\n        }\n      }\n    }\n\n    if (element._owner) {\n      var owner = element._owner;\n      var inst;\n\n      if (owner) {\n        var ownerFiber = owner;\n\n        if (ownerFiber.tag !== ClassComponent) {\n          throw new Error('Function components cannot have string refs. ' + 'We recommend using useRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref');\n        }\n\n        inst = ownerFiber.stateNode;\n      }\n\n      if (!inst) {\n        throw new Error(\"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a \" + 'bug in React. Please file an issue.');\n      } // Assigning this to a const so Flow knows it won't change in the closure\n\n\n      var resolvedInst = inst;\n\n      {\n        checkPropStringCoercion(mixedRef, 'ref');\n      }\n\n      var stringRef = '' + mixedRef; // Check if previous string ref matches new string ref\n\n      if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n        return current.ref;\n      }\n\n      var ref = function (value) {\n        var refs = resolvedInst.refs;\n\n        if (refs === emptyRefsObject) {\n          // This is a lazy pooled frozen object, so we need to initialize.\n          refs = resolvedInst.refs = {};\n        }\n\n        if (value === null) {\n          delete refs[stringRef];\n        } else {\n          refs[stringRef] = value;\n        }\n      };\n\n      ref._stringRef = stringRef;\n      return ref;\n    } else {\n      if (typeof mixedRef !== 'string') {\n        throw new Error('Expected ref to be a function, a string, an object returned by React.createRef(), or null.');\n      }\n\n      if (!element._owner) {\n        throw new Error(\"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of\" + ' the following reasons:\\n' + '1. You may be adding a ref to a function component\\n' + \"2. You may be adding a ref to a component that was not created inside a component's render method\\n\" + '3. You have multiple copies of React loaded\\n' + 'See https://reactjs.org/link/refs-must-have-owner for more information.');\n      }\n    }\n  }\n\n  return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n  var childString = Object.prototype.toString.call(newChild);\n  throw new Error(\"Objects are not valid as a React child (found: \" + (childString === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : childString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n}\n\nfunction warnOnFunctionType(returnFiber) {\n  {\n    var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n    if (ownerHasFunctionTypeWarning[componentName]) {\n      return;\n    }\n\n    ownerHasFunctionTypeWarning[componentName] = true;\n\n    error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n  }\n}\n\nfunction resolveLazy(lazyType) {\n  var payload = lazyType._payload;\n  var init = lazyType._init;\n  return init(payload);\n} // This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n  function deleteChild(returnFiber, childToDelete) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return;\n    }\n\n    var deletions = returnFiber.deletions;\n\n    if (deletions === null) {\n      returnFiber.deletions = [childToDelete];\n      returnFiber.flags |= ChildDeletion;\n    } else {\n      deletions.push(childToDelete);\n    }\n  }\n\n  function deleteRemainingChildren(returnFiber, currentFirstChild) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return null;\n    } // TODO: For the shouldClone case, this could be micro-optimized a bit by\n    // assuming that after the first child we've already added everything.\n\n\n    var childToDelete = currentFirstChild;\n\n    while (childToDelete !== null) {\n      deleteChild(returnFiber, childToDelete);\n      childToDelete = childToDelete.sibling;\n    }\n\n    return null;\n  }\n\n  function mapRemainingChildren(returnFiber, currentFirstChild) {\n    // Add the remaining children to a temporary map so that we can find them by\n    // keys quickly. Implicit (null) keys get added to this set with their index\n    // instead.\n    var existingChildren = new Map();\n    var existingChild = currentFirstChild;\n\n    while (existingChild !== null) {\n      if (existingChild.key !== null) {\n        existingChildren.set(existingChild.key, existingChild);\n      } else {\n        existingChildren.set(existingChild.index, existingChild);\n      }\n\n      existingChild = existingChild.sibling;\n    }\n\n    return existingChildren;\n  }\n\n  function useFiber(fiber, pendingProps) {\n    // We currently set sibling to null and index to 0 here because it is easy\n    // to forget to do before returning it. E.g. for the single child case.\n    var clone = createWorkInProgress(fiber, pendingProps);\n    clone.index = 0;\n    clone.sibling = null;\n    return clone;\n  }\n\n  function placeChild(newFiber, lastPlacedIndex, newIndex) {\n    newFiber.index = newIndex;\n\n    if (!shouldTrackSideEffects) {\n      // During hydration, the useId algorithm needs to know which fibers are\n      // part of a list of children (arrays, iterators).\n      newFiber.flags |= Forked;\n      return lastPlacedIndex;\n    }\n\n    var current = newFiber.alternate;\n\n    if (current !== null) {\n      var oldIndex = current.index;\n\n      if (oldIndex < lastPlacedIndex) {\n        // This is a move.\n        newFiber.flags |= Placement;\n        return lastPlacedIndex;\n      } else {\n        // This item can stay in place.\n        return oldIndex;\n      }\n    } else {\n      // This is an insertion.\n      newFiber.flags |= Placement;\n      return lastPlacedIndex;\n    }\n  }\n\n  function placeSingleChild(newFiber) {\n    // This is simpler for the single child case. We only need to do a\n    // placement for inserting new children.\n    if (shouldTrackSideEffects && newFiber.alternate === null) {\n      newFiber.flags |= Placement;\n    }\n\n    return newFiber;\n  }\n\n  function updateTextNode(returnFiber, current, textContent, lanes) {\n    if (current === null || current.tag !== HostText) {\n      // Insert\n      var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, textContent);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateElement(returnFiber, current, element, lanes) {\n    var elementType = element.type;\n\n    if (elementType === REACT_FRAGMENT_TYPE) {\n      return updateFragment(returnFiber, current, element.props.children, lanes, element.key);\n    }\n\n    if (current !== null) {\n      if (current.elementType === elementType || ( // Keep this check inline so it only runs on the false path:\n       isCompatibleFamilyForHotReloading(current, element) ) || // Lazy types should reconcile their resolved type.\n      // We need to do this after the Hot Reloading check above,\n      // because hot reloading has different semantics than prod because\n      // it doesn't resuspend. So we can't let the call below suspend.\n      typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type) {\n        // Move based on index\n        var existing = useFiber(current, element.props);\n        existing.ref = coerceRef(returnFiber, current, element);\n        existing.return = returnFiber;\n\n        {\n          existing._debugSource = element._source;\n          existing._debugOwner = element._owner;\n        }\n\n        return existing;\n      }\n    } // Insert\n\n\n    var created = createFiberFromElement(element, returnFiber.mode, lanes);\n    created.ref = coerceRef(returnFiber, current, element);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function updatePortal(returnFiber, current, portal, lanes) {\n    if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n      // Insert\n      var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, portal.children || []);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateFragment(returnFiber, current, fragment, lanes, key) {\n    if (current === null || current.tag !== Fragment) {\n      // Insert\n      var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, fragment);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function createChild(returnFiber, newChild, lanes) {\n    if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      var created = createFiberFromText('' + newChild, returnFiber.mode, lanes);\n      created.return = returnFiber;\n      return created;\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _created = createFiberFromElement(newChild, returnFiber.mode, lanes);\n\n            _created.ref = coerceRef(returnFiber, null, newChild);\n            _created.return = returnFiber;\n            return _created;\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            var _created2 = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n\n            _created2.return = returnFiber;\n            return _created2;\n          }\n\n        case REACT_LAZY_TYPE:\n          {\n            var payload = newChild._payload;\n            var init = newChild._init;\n            return createChild(returnFiber, init(payload), lanes);\n          }\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        var _created3 = createFiberFromFragment(newChild, returnFiber.mode, lanes, null);\n\n        _created3.return = returnFiber;\n        return _created3;\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType(returnFiber);\n      }\n    }\n\n    return null;\n  }\n\n  function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n    // Update the fiber if the keys match, otherwise return null.\n    var key = oldFiber !== null ? oldFiber.key : null;\n\n    if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      if (key !== null) {\n        return null;\n      }\n\n      return updateTextNode(returnFiber, oldFiber, '' + newChild, lanes);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            if (newChild.key === key) {\n              return updateElement(returnFiber, oldFiber, newChild, lanes);\n            } else {\n              return null;\n            }\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            if (newChild.key === key) {\n              return updatePortal(returnFiber, oldFiber, newChild, lanes);\n            } else {\n              return null;\n            }\n          }\n\n        case REACT_LAZY_TYPE:\n          {\n            var payload = newChild._payload;\n            var init = newChild._init;\n            return updateSlot(returnFiber, oldFiber, init(payload), lanes);\n          }\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        if (key !== null) {\n          return null;\n        }\n\n        return updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType(returnFiber);\n      }\n    }\n\n    return null;\n  }\n\n  function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) {\n    if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n      // Text nodes don't have keys, so we neither have to check the old nor\n      // new node for the key. If both are text nodes, they match.\n      var matchedFiber = existingChildren.get(newIdx) || null;\n      return updateTextNode(returnFiber, matchedFiber, '' + newChild, lanes);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n            return updateElement(returnFiber, _matchedFiber, newChild, lanes);\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n            return updatePortal(returnFiber, _matchedFiber2, newChild, lanes);\n          }\n\n        case REACT_LAZY_TYPE:\n          var payload = newChild._payload;\n          var init = newChild._init;\n          return updateFromMap(existingChildren, returnFiber, newIdx, init(payload), lanes);\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n        return updateFragment(returnFiber, _matchedFiber3, newChild, lanes, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType(returnFiber);\n      }\n    }\n\n    return null;\n  }\n  /**\n   * Warns if there is a duplicate or missing key\n   */\n\n\n  function warnOnInvalidKey(child, knownKeys, returnFiber) {\n    {\n      if (typeof child !== 'object' || child === null) {\n        return knownKeys;\n      }\n\n      switch (child.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n        case REACT_PORTAL_TYPE:\n          warnForMissingKey(child, returnFiber);\n          var key = child.key;\n\n          if (typeof key !== 'string') {\n            break;\n          }\n\n          if (knownKeys === null) {\n            knownKeys = new Set();\n            knownKeys.add(key);\n            break;\n          }\n\n          if (!knownKeys.has(key)) {\n            knownKeys.add(key);\n            break;\n          }\n\n          error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n          break;\n\n        case REACT_LAZY_TYPE:\n          var payload = child._payload;\n          var init = child._init;\n          warnOnInvalidKey(init(payload), knownKeys, returnFiber);\n          break;\n      }\n    }\n\n    return knownKeys;\n  }\n\n  function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) {\n    // This algorithm can't optimize by searching from both ends since we\n    // don't have backpointers on fibers. I'm trying to see how far we can get\n    // with that model. If it ends up not being worth the tradeoffs, we can\n    // add it later.\n    // Even with a two ended optimization, we'd want to optimize for the case\n    // where there are few changes and brute force the comparison instead of\n    // going for the Map. It'd like to explore hitting that path first in\n    // forward-only mode and only go for the Map once we notice that we need\n    // lots of look ahead. This doesn't handle reversal as well as two ended\n    // search but that's unusual. Besides, for the two ended optimization to\n    // work on Iterables, we'd need to copy the whole set.\n    // In this first iteration, we'll just live with hitting the bad case\n    // (adding everything to a Map) in for every insert/move.\n    // If you change this code, also update reconcileChildrenIterator() which\n    // uses the same algorithm.\n    {\n      // First, validate keys.\n      var knownKeys = null;\n\n      for (var i = 0; i < newChildren.length; i++) {\n        var child = newChildren[i];\n        knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n      }\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n\n    for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n\n      var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes);\n\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n\n        break;\n      }\n\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (newIdx === newChildren.length) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n\n      if (getIsHydrating()) {\n        var numberOfForks = newIdx;\n        pushTreeFork(returnFiber, numberOfForks);\n      }\n\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; newIdx < newChildren.length; newIdx++) {\n        var _newFiber = createChild(returnFiber, newChildren[newIdx], lanes);\n\n        if (_newFiber === null) {\n          continue;\n        }\n\n        lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber;\n        } else {\n          previousNewFiber.sibling = _newFiber;\n        }\n\n        previousNewFiber = _newFiber;\n      }\n\n      if (getIsHydrating()) {\n        var _numberOfForks = newIdx;\n        pushTreeFork(returnFiber, _numberOfForks);\n      }\n\n      return resultingFirstChild;\n    } // Add all children to a key map for quick lookups.\n\n\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n    for (; newIdx < newChildren.length; newIdx++) {\n      var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], lanes);\n\n      if (_newFiber2 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber2.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n          }\n        }\n\n        lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber2;\n        } else {\n          previousNewFiber.sibling = _newFiber2;\n        }\n\n        previousNewFiber = _newFiber2;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    if (getIsHydrating()) {\n      var _numberOfForks2 = newIdx;\n      pushTreeFork(returnFiber, _numberOfForks2);\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) {\n    // This is the same implementation as reconcileChildrenArray(),\n    // but using the iterator instead.\n    var iteratorFn = getIteratorFn(newChildrenIterable);\n\n    if (typeof iteratorFn !== 'function') {\n      throw new Error('An object is not an iterable. This error is likely caused by a bug in ' + 'React. Please file an issue.');\n    }\n\n    {\n      // We don't support rendering Generators because it's a mutation.\n      // See https://github.com/facebook/react/issues/12995\n      if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag\n      newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n        if (!didWarnAboutGenerators) {\n          error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n        }\n\n        didWarnAboutGenerators = true;\n      } // Warn about using Maps as children\n\n\n      if (newChildrenIterable.entries === iteratorFn) {\n        if (!didWarnAboutMaps) {\n          error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n        }\n\n        didWarnAboutMaps = true;\n      } // First, validate keys.\n      // We'll get a different iterator later for the main pass.\n\n\n      var _newChildren = iteratorFn.call(newChildrenIterable);\n\n      if (_newChildren) {\n        var knownKeys = null;\n\n        var _step = _newChildren.next();\n\n        for (; !_step.done; _step = _newChildren.next()) {\n          var child = _step.value;\n          knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n        }\n      }\n    }\n\n    var newChildren = iteratorFn.call(newChildrenIterable);\n\n    if (newChildren == null) {\n      throw new Error('An iterable object provided no iterator.');\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n    var step = newChildren.next();\n\n    for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n\n      var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n\n        break;\n      }\n\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (step.done) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n\n      if (getIsHydrating()) {\n        var numberOfForks = newIdx;\n        pushTreeFork(returnFiber, numberOfForks);\n      }\n\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; !step.done; newIdx++, step = newChildren.next()) {\n        var _newFiber3 = createChild(returnFiber, step.value, lanes);\n\n        if (_newFiber3 === null) {\n          continue;\n        }\n\n        lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber3;\n        } else {\n          previousNewFiber.sibling = _newFiber3;\n        }\n\n        previousNewFiber = _newFiber3;\n      }\n\n      if (getIsHydrating()) {\n        var _numberOfForks3 = newIdx;\n        pushTreeFork(returnFiber, _numberOfForks3);\n      }\n\n      return resultingFirstChild;\n    } // Add all children to a key map for quick lookups.\n\n\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n    for (; !step.done; newIdx++, step = newChildren.next()) {\n      var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, lanes);\n\n      if (_newFiber4 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber4.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n          }\n        }\n\n        lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber4;\n        } else {\n          previousNewFiber.sibling = _newFiber4;\n        }\n\n        previousNewFiber = _newFiber4;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    if (getIsHydrating()) {\n      var _numberOfForks4 = newIdx;\n      pushTreeFork(returnFiber, _numberOfForks4);\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, lanes) {\n    // There's no need to check for keys on text nodes since we don't have a\n    // way to define them.\n    if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n      // We already have an existing node so let's just update it and delete\n      // the rest.\n      deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n      var existing = useFiber(currentFirstChild, textContent);\n      existing.return = returnFiber;\n      return existing;\n    } // The existing first child is not a text node so we need to create one\n    // and delete the existing ones.\n\n\n    deleteRemainingChildren(returnFiber, currentFirstChild);\n    var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function reconcileSingleElement(returnFiber, currentFirstChild, element, lanes) {\n    var key = element.key;\n    var child = currentFirstChild;\n\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        var elementType = element.type;\n\n        if (elementType === REACT_FRAGMENT_TYPE) {\n          if (child.tag === Fragment) {\n            deleteRemainingChildren(returnFiber, child.sibling);\n            var existing = useFiber(child, element.props.children);\n            existing.return = returnFiber;\n\n            {\n              existing._debugSource = element._source;\n              existing._debugOwner = element._owner;\n            }\n\n            return existing;\n          }\n        } else {\n          if (child.elementType === elementType || ( // Keep this check inline so it only runs on the false path:\n           isCompatibleFamilyForHotReloading(child, element) ) || // Lazy types should reconcile their resolved type.\n          // We need to do this after the Hot Reloading check above,\n          // because hot reloading has different semantics than prod because\n          // it doesn't resuspend. So we can't let the call below suspend.\n          typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === child.type) {\n            deleteRemainingChildren(returnFiber, child.sibling);\n\n            var _existing = useFiber(child, element.props);\n\n            _existing.ref = coerceRef(returnFiber, child, element);\n            _existing.return = returnFiber;\n\n            {\n              _existing._debugSource = element._source;\n              _existing._debugOwner = element._owner;\n            }\n\n            return _existing;\n          }\n        } // Didn't match.\n\n\n        deleteRemainingChildren(returnFiber, child);\n        break;\n      } else {\n        deleteChild(returnFiber, child);\n      }\n\n      child = child.sibling;\n    }\n\n    if (element.type === REACT_FRAGMENT_TYPE) {\n      var created = createFiberFromFragment(element.props.children, returnFiber.mode, lanes, element.key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      var _created4 = createFiberFromElement(element, returnFiber.mode, lanes);\n\n      _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n      _created4.return = returnFiber;\n      return _created4;\n    }\n  }\n\n  function reconcileSinglePortal(returnFiber, currentFirstChild, portal, lanes) {\n    var key = portal.key;\n    var child = currentFirstChild;\n\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, portal.children || []);\n          existing.return = returnFiber;\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n\n      child = child.sibling;\n    }\n\n    var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n    created.return = returnFiber;\n    return created;\n  } // This API will tag the children with the side-effect of the reconciliation\n  // itself. They will be added to the side-effect list as we pass through the\n  // children and the parent.\n\n\n  function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) {\n    // This function is not recursive.\n    // If the top level item is an array, we treat it as a set of children,\n    // not as a fragment. Nested arrays on the other hand will be treated as\n    // fragment nodes. Recursion happens at the normal flow.\n    // Handle top level unkeyed fragments as if they were arrays.\n    // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n    // We treat the ambiguous cases above the same.\n    var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n    if (isUnkeyedTopLevelFragment) {\n      newChild = newChild.props.children;\n    } // Handle object types\n\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, lanes));\n\n        case REACT_PORTAL_TYPE:\n          return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, lanes));\n\n        case REACT_LAZY_TYPE:\n          var payload = newChild._payload;\n          var init = newChild._init; // TODO: This function is supposed to be non-recursive.\n\n          return reconcileChildFibers(returnFiber, currentFirstChild, init(payload), lanes);\n      }\n\n      if (isArray(newChild)) {\n        return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes);\n      }\n\n      if (getIteratorFn(newChild)) {\n        return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n      return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, lanes));\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType(returnFiber);\n      }\n    } // Remaining cases are all treated as empty.\n\n\n    return deleteRemainingChildren(returnFiber, currentFirstChild);\n  }\n\n  return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n  if (current !== null && workInProgress.child !== current.child) {\n    throw new Error('Resuming work not yet implemented.');\n  }\n\n  if (workInProgress.child === null) {\n    return;\n  }\n\n  var currentChild = workInProgress.child;\n  var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n  workInProgress.child = newChild;\n  newChild.return = workInProgress;\n\n  while (currentChild.sibling !== null) {\n    currentChild = currentChild.sibling;\n    newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n    newChild.return = workInProgress;\n  }\n\n  newChild.sibling = null;\n} // Reset a workInProgress child set to prepare it for a second pass.\n\nfunction resetChildFibers(workInProgress, lanes) {\n  var child = workInProgress.child;\n\n  while (child !== null) {\n    resetWorkInProgress(child, lanes);\n    child = child.sibling;\n  }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n  if (c === NO_CONTEXT) {\n    throw new Error('Expected host context to exist. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n  }\n\n  return c;\n}\n\nfunction getRootHostContainer() {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n  // Push current root instance onto the stack;\n  // This allows us to reset root when portals are popped.\n  push(rootInstanceStackCursor, nextRootInstance, fiber); // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n\n  push(contextFiberStackCursor, fiber, fiber); // Finally, we need to push the host context to the stack.\n  // However, we can't just call getRootHostContext() and push it because\n  // we'd have a different number of entries on the stack depending on\n  // whether getRootHostContext() throws somewhere in renderer code or not.\n  // So we push an empty value first. This lets us safely unwind on errors.\n\n  push(contextStackCursor$1, NO_CONTEXT, fiber);\n  var nextRootContext = getRootHostContext(nextRootInstance); // Now that we know this function doesn't throw, replace it.\n\n  pop(contextStackCursor$1, fiber);\n  push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n  pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n  var context = requiredContext(contextStackCursor$1.current);\n  return context;\n}\n\nfunction pushHostContext(fiber) {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  var context = requiredContext(contextStackCursor$1.current);\n  var nextContext = getChildHostContext(context, fiber.type); // Don't push this Fiber's context unless it's unique.\n\n  if (context === nextContext) {\n    return;\n  } // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n\n\n  push(contextFiberStackCursor, fiber, fiber);\n  push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n  // Do not pop unless this Fiber provided the current context.\n  // pushHostContext() only pushes Fibers that provide unique contexts.\n  if (contextFiberStackCursor.current !== fiber) {\n    return;\n  }\n\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; // The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\n\nvar SubtreeSuspenseContextMask = 1; // Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\n\nvar InvisibleParentSuspenseContext = 1; // Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n  return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n  return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n  return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n  return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n  push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n  pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n  // If it was the primary children that just suspended, capture and render the\n  // fallback. Otherwise, don't capture and bubble to the next boundary.\n  var nextState = workInProgress.memoizedState;\n\n  if (nextState !== null) {\n    if (nextState.dehydrated !== null) {\n      // A dehydrated boundary always captures.\n      return true;\n    }\n\n    return false;\n  }\n\n  var props = workInProgress.memoizedProps; // Regular boundaries always capture.\n\n  {\n    return true;\n  } // If it's a boundary we should avoid, then we prefer to bubble up to the\n}\nfunction findFirstSuspended(row) {\n  var node = row;\n\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n\n      if (state !== null) {\n        var dehydrated = state.dehydrated;\n\n        if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n          return node;\n        }\n      }\n    } else if (node.tag === SuspenseListComponent && // revealOrder undefined can't be trusted because it don't\n    // keep track of whether it suspended or not.\n    node.memoizedProps.revealOrder !== undefined) {\n      var didSuspend = (node.flags & DidCapture) !== NoFlags;\n\n      if (didSuspend) {\n        return node;\n      }\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === row) {\n      return null;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === row) {\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n\n  return null;\n}\n\nvar NoFlags$1 =\n/*   */\n0; // Represents whether effect should fire.\n\nvar HasEffect =\n/* */\n1; // Represents the phase in which the effect (not the clean-up) fires.\n\nvar Insertion =\n/*  */\n2;\nvar Layout =\n/*    */\n4;\nvar Passive$1 =\n/*   */\n8;\n\n// and should be reset before starting a new render.\n// This tracks which mutable sources need to be reset after a render.\n\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n  for (var i = 0; i < workInProgressSources.length; i++) {\n    var mutableSource = workInProgressSources[i];\n\n    {\n      mutableSource._workInProgressVersionPrimary = null;\n    }\n  }\n\n  workInProgressSources.length = 0;\n}\n// This ensures that the version used for server rendering matches the one\n// that is eventually read during hydration.\n// If they don't match there's a potential tear and a full deopt render is required.\n\nfunction registerMutableSourceForHydration(root, mutableSource) {\n  var getVersion = mutableSource._getVersion;\n  var version = getVersion(mutableSource._source); // TODO Clear this data once all pending hydration work is finished.\n  // Retaining it forever may interfere with GC.\n\n  if (root.mutableSourceEagerHydrationData == null) {\n    root.mutableSourceEagerHydrationData = [mutableSource, version];\n  } else {\n    root.mutableSourceEagerHydrationData.push(mutableSource, version);\n  }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n    ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\nvar didWarnUncachedGetSnapshot;\n\n{\n  didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderLanes = NoLanes; // The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\n\nvar currentlyRenderingFiber$1 = null; // Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\n\nvar currentHook = null;\nvar workInProgressHook = null; // Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\n\nvar didScheduleRenderPhaseUpdate = false; // Where an update was scheduled only during the current render pass. This\n// gets reset after each attempt.\n// TODO: Maybe there's some way to consolidate this with\n// `didScheduleRenderPhaseUpdate`. Or with `numberOfReRenders`.\n\nvar didScheduleRenderPhaseUpdateDuringThisPass = false; // Counts the number of useId hooks in this component.\n\nvar localIdCounter = 0; // Used for ids that are generated completely client-side (i.e. not during\n// hydration). This counter is global, so client ids are not stable across\n// render attempts.\n\nvar globalClientIdCounter = 0;\nvar RE_RENDER_LIMIT = 25; // In DEV, this is the name of the currently executing primitive hook\n\nvar currentHookNameInDev = null; // In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; // In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev === null) {\n      hookTypesDev = [hookName];\n    } else {\n      hookTypesDev.push(hookName);\n    }\n  }\n}\n\nfunction updateHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev !== null) {\n      hookTypesUpdateIndexDev++;\n\n      if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n        warnOnHookMismatchInDev(hookName);\n      }\n    }\n  }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n  {\n    if (deps !== undefined && deps !== null && !isArray(deps)) {\n      // Verify deps, but only on mount to avoid extra checks.\n      // It's unlikely their type would change as usually you define them inline.\n      error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n    }\n  }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n  {\n    var componentName = getComponentNameFromFiber(currentlyRenderingFiber$1);\n\n    if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n      didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n      if (hookTypesDev !== null) {\n        var table = '';\n        var secondColumnStart = 30;\n\n        for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n          var oldHookName = hookTypesDev[i];\n          var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n          var row = i + 1 + \". \" + oldHookName; // Extra space so second column lines up\n          // lol @ IE not supporting String#repeat\n\n          while (row.length < secondColumnStart) {\n            row += ' ';\n          }\n\n          row += newHookName + '\\n';\n          table += row;\n        }\n\n        error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n' + '   Previous render            Next render\\n' + '   ------------------------------------------------------\\n' + '%s' + '   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n      }\n    }\n  }\n}\n\nfunction throwInvalidHookError() {\n  throw new Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n  {\n    if (ignorePreviousDependencies) {\n      // Only true when this component is being hot reloaded.\n      return false;\n    }\n  }\n\n  if (prevDeps === null) {\n    {\n      error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n    }\n\n    return false;\n  }\n\n  {\n    // Don't bother comparing lengths in prod because these arrays should be\n    // passed inline.\n    if (nextDeps.length !== prevDeps.length) {\n      error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n    }\n  }\n\n  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n    if (objectIs(nextDeps[i], prevDeps[i])) {\n      continue;\n    }\n\n    return false;\n  }\n\n  return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) {\n  renderLanes = nextRenderLanes;\n  currentlyRenderingFiber$1 = workInProgress;\n\n  {\n    hookTypesDev = current !== null ? current._debugHookTypes : null;\n    hookTypesUpdateIndexDev = -1; // Used for hot reloading:\n\n    ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n  }\n\n  workInProgress.memoizedState = null;\n  workInProgress.updateQueue = null;\n  workInProgress.lanes = NoLanes; // The following should have already been reset\n  // currentHook = null;\n  // workInProgressHook = null;\n  // didScheduleRenderPhaseUpdate = false;\n  // localIdCounter = 0;\n  // TODO Warn if no hooks are used at all during mount, then some are used during update.\n  // Currently we will identify the update render as a mount because memoizedState === null.\n  // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n  // Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n  // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n  // so memoizedState would be null during updates and mounts.\n\n  {\n    if (current !== null && current.memoizedState !== null) {\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n    } else if (hookTypesDev !== null) {\n      // This dispatcher handles an edge case where a component is updating,\n      // but no stateful hooks have been used.\n      // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n      // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n      // This dispatcher does that.\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n    } else {\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n    }\n  }\n\n  var children = Component(props, secondArg); // Check if there was a render phase update\n\n  if (didScheduleRenderPhaseUpdateDuringThisPass) {\n    // Keep rendering in a loop for as long as render phase updates continue to\n    // be scheduled. Use a counter to prevent infinite loops.\n    var numberOfReRenders = 0;\n\n    do {\n      didScheduleRenderPhaseUpdateDuringThisPass = false;\n      localIdCounter = 0;\n\n      if (numberOfReRenders >= RE_RENDER_LIMIT) {\n        throw new Error('Too many re-renders. React limits the number of renders to prevent ' + 'an infinite loop.');\n      }\n\n      numberOfReRenders += 1;\n\n      {\n        // Even when hot reloading, allow dependencies to stabilize\n        // after first render to prevent infinite render phase updates.\n        ignorePreviousDependencies = false;\n      } // Start over from the beginning of the list\n\n\n      currentHook = null;\n      workInProgressHook = null;\n      workInProgress.updateQueue = null;\n\n      {\n        // Also validate hook order for cascading updates.\n        hookTypesUpdateIndexDev = -1;\n      }\n\n      ReactCurrentDispatcher$1.current =  HooksDispatcherOnRerenderInDEV ;\n      children = Component(props, secondArg);\n    } while (didScheduleRenderPhaseUpdateDuringThisPass);\n  } // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrance.\n\n\n  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n  {\n    workInProgress._debugHookTypes = hookTypesDev;\n  } // This check uses currentHook so that it works the same in DEV and prod bundles.\n  // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n\n\n  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n  renderLanes = NoLanes;\n  currentlyRenderingFiber$1 = null;\n  currentHook = null;\n  workInProgressHook = null;\n\n  {\n    currentHookNameInDev = null;\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1; // Confirm that a static flag was not added or removed since the last\n    // render. If this fires, it suggests that we incorrectly reset the static\n    // flags in some other part of the codebase. This has happened before, for\n    // example, in the SuspenseList implementation.\n\n    if (current !== null && (current.flags & StaticMask) !== (workInProgress.flags & StaticMask) && // Disable this warning in legacy mode, because legacy Suspense is weird\n    // and creates false positives. To make this work in legacy mode, we'd\n    // need to mark fibers that commit in an incomplete state, somehow. For\n    // now I'll disable the warning that most of the bugs that would trigger\n    // it are either exclusive to concurrent mode or exist in both.\n    (current.mode & ConcurrentMode) !== NoMode) {\n      error('Internal React error: Expected static flag was missing. Please ' + 'notify the React team.');\n    }\n  }\n\n  didScheduleRenderPhaseUpdate = false; // This is reset by checkDidRenderIdHook\n  // localIdCounter = 0;\n\n  if (didRenderTooFewHooks) {\n    throw new Error('Rendered fewer hooks than expected. This may be caused by an accidental ' + 'early return statement.');\n  }\n\n  return children;\n}\nfunction checkDidRenderIdHook() {\n  // This should be called immediately after every renderWithHooks call.\n  // Conceptually, it's part of the return value of renderWithHooks; it's only a\n  // separate function to avoid using an array tuple.\n  var didRenderIdHook = localIdCounter !== 0;\n  localIdCounter = 0;\n  return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n  workInProgress.updateQueue = current.updateQueue; // TODO: Don't need to reset the flags here, because they're reset in the\n  // complete phase (bubbleProperties).\n\n  if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n    workInProgress.flags &= ~(MountPassiveDev | MountLayoutDev | Passive | Update);\n  } else {\n    workInProgress.flags &= ~(Passive | Update);\n  }\n\n  current.lanes = removeLanes(current.lanes, lanes);\n}\nfunction resetHooksAfterThrow() {\n  // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrance.\n  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n  if (didScheduleRenderPhaseUpdate) {\n    // There were render phase updates. These are only valid for this render\n    // phase, which we are now aborting. Remove the updates from the queues so\n    // they do not persist to the next render. Do not remove updates from hooks\n    // that weren't processed.\n    //\n    // Only reset the updates from the queue if it has a clone. If it does\n    // not have a clone, that means it wasn't processed, and the updates were\n    // scheduled before we entered the render phase.\n    var hook = currentlyRenderingFiber$1.memoizedState;\n\n    while (hook !== null) {\n      var queue = hook.queue;\n\n      if (queue !== null) {\n        queue.pending = null;\n      }\n\n      hook = hook.next;\n    }\n\n    didScheduleRenderPhaseUpdate = false;\n  }\n\n  renderLanes = NoLanes;\n  currentlyRenderingFiber$1 = null;\n  currentHook = null;\n  workInProgressHook = null;\n\n  {\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1;\n    currentHookNameInDev = null;\n    isUpdatingOpaqueValueInRenderPhase = false;\n  }\n\n  didScheduleRenderPhaseUpdateDuringThisPass = false;\n  localIdCounter = 0;\n}\n\nfunction mountWorkInProgressHook() {\n  var hook = {\n    memoizedState: null,\n    baseState: null,\n    baseQueue: null,\n    queue: null,\n    next: null\n  };\n\n  if (workInProgressHook === null) {\n    // This is the first hook in the list\n    currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n  } else {\n    // Append to the end of the list\n    workInProgressHook = workInProgressHook.next = hook;\n  }\n\n  return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n  // This function is used both for updates and for re-renders triggered by a\n  // render phase update. It assumes there is either a current hook we can\n  // clone, or a work-in-progress hook from a previous render pass that we can\n  // use as a base. When we reach the end of the base list, we must switch to\n  // the dispatcher used for mounts.\n  var nextCurrentHook;\n\n  if (currentHook === null) {\n    var current = currentlyRenderingFiber$1.alternate;\n\n    if (current !== null) {\n      nextCurrentHook = current.memoizedState;\n    } else {\n      nextCurrentHook = null;\n    }\n  } else {\n    nextCurrentHook = currentHook.next;\n  }\n\n  var nextWorkInProgressHook;\n\n  if (workInProgressHook === null) {\n    nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n  } else {\n    nextWorkInProgressHook = workInProgressHook.next;\n  }\n\n  if (nextWorkInProgressHook !== null) {\n    // There's already a work-in-progress. Reuse it.\n    workInProgressHook = nextWorkInProgressHook;\n    nextWorkInProgressHook = workInProgressHook.next;\n    currentHook = nextCurrentHook;\n  } else {\n    // Clone from the current hook.\n    if (nextCurrentHook === null) {\n      throw new Error('Rendered more hooks than during the previous render.');\n    }\n\n    currentHook = nextCurrentHook;\n    var newHook = {\n      memoizedState: currentHook.memoizedState,\n      baseState: currentHook.baseState,\n      baseQueue: currentHook.baseQueue,\n      queue: currentHook.queue,\n      next: null\n    };\n\n    if (workInProgressHook === null) {\n      // This is the first hook in the list.\n      currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n    } else {\n      // Append to the end of the list.\n      workInProgressHook = workInProgressHook.next = newHook;\n    }\n  }\n\n  return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n  return {\n    lastEffect: null,\n    stores: null\n  };\n}\n\nfunction basicStateReducer(state, action) {\n  // $FlowFixMe: Flow doesn't like mixed types\n  return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n  var hook = mountWorkInProgressHook();\n  var initialState;\n\n  if (init !== undefined) {\n    initialState = init(initialArg);\n  } else {\n    initialState = initialArg;\n  }\n\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = {\n    pending: null,\n    interleaved: null,\n    lanes: NoLanes,\n    dispatch: null,\n    lastRenderedReducer: reducer,\n    lastRenderedState: initialState\n  };\n  hook.queue = queue;\n  var dispatch = queue.dispatch = dispatchReducerAction.bind(null, currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n  var hook = updateWorkInProgressHook();\n  var queue = hook.queue;\n\n  if (queue === null) {\n    throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');\n  }\n\n  queue.lastRenderedReducer = reducer;\n  var current = currentHook; // The last rebase update that is NOT part of the base state.\n\n  var baseQueue = current.baseQueue; // The last pending update that hasn't been processed yet.\n\n  var pendingQueue = queue.pending;\n\n  if (pendingQueue !== null) {\n    // We have new updates that haven't been processed yet.\n    // We'll add them to the base queue.\n    if (baseQueue !== null) {\n      // Merge the pending queue and the base queue.\n      var baseFirst = baseQueue.next;\n      var pendingFirst = pendingQueue.next;\n      baseQueue.next = pendingFirst;\n      pendingQueue.next = baseFirst;\n    }\n\n    {\n      if (current.baseQueue !== baseQueue) {\n        // Internal invariant that should never happen, but feasibly could in\n        // the future if we implement resuming, or some form of that.\n        error('Internal error: Expected work-in-progress queue to be a clone. ' + 'This is a bug in React.');\n      }\n    }\n\n    current.baseQueue = baseQueue = pendingQueue;\n    queue.pending = null;\n  }\n\n  if (baseQueue !== null) {\n    // We have a queue to process.\n    var first = baseQueue.next;\n    var newState = current.baseState;\n    var newBaseState = null;\n    var newBaseQueueFirst = null;\n    var newBaseQueueLast = null;\n    var update = first;\n\n    do {\n      var updateLane = update.lane;\n\n      if (!isSubsetOfLanes(renderLanes, updateLane)) {\n        // Priority is insufficient. Skip this update. If this is the first\n        // skipped update, the previous update/state is the new base\n        // update/state.\n        var clone = {\n          lane: updateLane,\n          action: update.action,\n          hasEagerState: update.hasEagerState,\n          eagerState: update.eagerState,\n          next: null\n        };\n\n        if (newBaseQueueLast === null) {\n          newBaseQueueFirst = newBaseQueueLast = clone;\n          newBaseState = newState;\n        } else {\n          newBaseQueueLast = newBaseQueueLast.next = clone;\n        } // Update the remaining priority in the queue.\n        // TODO: Don't need to accumulate this. Instead, we can remove\n        // renderLanes from the original lanes.\n\n\n        currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, updateLane);\n        markSkippedUpdateLanes(updateLane);\n      } else {\n        // This update does have sufficient priority.\n        if (newBaseQueueLast !== null) {\n          var _clone = {\n            // This update is going to be committed so we never want uncommit\n            // it. Using NoLane works because 0 is a subset of all bitmasks, so\n            // this will never be skipped by the check above.\n            lane: NoLane,\n            action: update.action,\n            hasEagerState: update.hasEagerState,\n            eagerState: update.eagerState,\n            next: null\n          };\n          newBaseQueueLast = newBaseQueueLast.next = _clone;\n        } // Process this update.\n\n\n        if (update.hasEagerState) {\n          // If this update is a state update (not a reducer) and was processed eagerly,\n          // we can use the eagerly computed state\n          newState = update.eagerState;\n        } else {\n          var action = update.action;\n          newState = reducer(newState, action);\n        }\n      }\n\n      update = update.next;\n    } while (update !== null && update !== first);\n\n    if (newBaseQueueLast === null) {\n      newBaseState = newState;\n    } else {\n      newBaseQueueLast.next = newBaseQueueFirst;\n    } // Mark that the fiber performed work, but only if the new state is\n    // different from the current state.\n\n\n    if (!objectIs(newState, hook.memoizedState)) {\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = newState;\n    hook.baseState = newBaseState;\n    hook.baseQueue = newBaseQueueLast;\n    queue.lastRenderedState = newState;\n  } // Interleaved updates are stored on a separate queue. We aren't going to\n  // process them during this render, but we do need to track which lanes\n  // are remaining.\n\n\n  var lastInterleaved = queue.interleaved;\n\n  if (lastInterleaved !== null) {\n    var interleaved = lastInterleaved;\n\n    do {\n      var interleavedLane = interleaved.lane;\n      currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, interleavedLane);\n      markSkippedUpdateLanes(interleavedLane);\n      interleaved = interleaved.next;\n    } while (interleaved !== lastInterleaved);\n  } else if (baseQueue === null) {\n    // `queue.lanes` is used for entangling transitions. We can set it back to\n    // zero once the queue is empty.\n    queue.lanes = NoLanes;\n  }\n\n  var dispatch = queue.dispatch;\n  return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n  var hook = updateWorkInProgressHook();\n  var queue = hook.queue;\n\n  if (queue === null) {\n    throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');\n  }\n\n  queue.lastRenderedReducer = reducer; // This is a re-render. Apply the new render phase updates to the previous\n  // work-in-progress hook.\n\n  var dispatch = queue.dispatch;\n  var lastRenderPhaseUpdate = queue.pending;\n  var newState = hook.memoizedState;\n\n  if (lastRenderPhaseUpdate !== null) {\n    // The queue doesn't persist past this render pass.\n    queue.pending = null;\n    var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n    var update = firstRenderPhaseUpdate;\n\n    do {\n      // Process this render phase update. We don't have to check the\n      // priority because it will always be the same as the current\n      // render's.\n      var action = update.action;\n      newState = reducer(newState, action);\n      update = update.next;\n    } while (update !== firstRenderPhaseUpdate); // Mark that the fiber performed work, but only if the new state is\n    // different from the current state.\n\n\n    if (!objectIs(newState, hook.memoizedState)) {\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = newState; // Don't persist the state accumulated from the render phase updates to\n    // the base state unless the queue is empty.\n    // TODO: Not sure if this is the desired semantics, but it's what we\n    // do for gDSFP. I can't remember why.\n\n    if (hook.baseQueue === null) {\n      hook.baseState = newState;\n    }\n\n    queue.lastRenderedState = newState;\n  }\n\n  return [newState, dispatch];\n}\n\nfunction mountMutableSource(source, getSnapshot, subscribe) {\n  {\n    return undefined;\n  }\n}\n\nfunction updateMutableSource(source, getSnapshot, subscribe) {\n  {\n    return undefined;\n  }\n}\n\nfunction mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var fiber = currentlyRenderingFiber$1;\n  var hook = mountWorkInProgressHook();\n  var nextSnapshot;\n  var isHydrating = getIsHydrating();\n\n  if (isHydrating) {\n    if (getServerSnapshot === undefined) {\n      throw new Error('Missing getServerSnapshot, which is required for ' + 'server-rendered content. Will revert to client rendering.');\n    }\n\n    nextSnapshot = getServerSnapshot();\n\n    {\n      if (!didWarnUncachedGetSnapshot) {\n        if (nextSnapshot !== getServerSnapshot()) {\n          error('The result of getServerSnapshot should be cached to avoid an infinite loop');\n\n          didWarnUncachedGetSnapshot = true;\n        }\n      }\n    }\n  } else {\n    nextSnapshot = getSnapshot();\n\n    {\n      if (!didWarnUncachedGetSnapshot) {\n        var cachedSnapshot = getSnapshot();\n\n        if (!objectIs(nextSnapshot, cachedSnapshot)) {\n          error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n          didWarnUncachedGetSnapshot = true;\n        }\n      }\n    } // Unless we're rendering a blocking lane, schedule a consistency check.\n    // Right before committing, we will walk the tree and check if any of the\n    // stores were mutated.\n    //\n    // We won't do this if we're hydrating server-rendered content, because if\n    // the content is stale, it's already visible anyway. Instead we'll patch\n    // it up in a passive effect.\n\n\n    var root = getWorkInProgressRoot();\n\n    if (root === null) {\n      throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');\n    }\n\n    if (!includesBlockingLane(root, renderLanes)) {\n      pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n    }\n  } // Read the current snapshot from the store on every render. This breaks the\n  // normal rules of React, and only works because store updates are\n  // always synchronous.\n\n\n  hook.memoizedState = nextSnapshot;\n  var inst = {\n    value: nextSnapshot,\n    getSnapshot: getSnapshot\n  };\n  hook.queue = inst; // Schedule an effect to subscribe to the store.\n\n  mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); // Schedule an effect to update the mutable instance fields. We will update\n  // this whenever subscribe, getSnapshot, or value changes. Because there's no\n  // clean-up function, and we track the deps correctly, we can call pushEffect\n  // directly, without storing any additional state. For the same reason, we\n  // don't need to set a static flag, either.\n  // TODO: We can move this to the passive phase once we add a pre-commit\n  // consistency check. See the next comment.\n\n  fiber.flags |= Passive;\n  pushEffect(HasEffect | Passive$1, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null);\n  return nextSnapshot;\n}\n\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var fiber = currentlyRenderingFiber$1;\n  var hook = updateWorkInProgressHook(); // Read the current snapshot from the store on every render. This breaks the\n  // normal rules of React, and only works because store updates are\n  // always synchronous.\n\n  var nextSnapshot = getSnapshot();\n\n  {\n    if (!didWarnUncachedGetSnapshot) {\n      var cachedSnapshot = getSnapshot();\n\n      if (!objectIs(nextSnapshot, cachedSnapshot)) {\n        error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n        didWarnUncachedGetSnapshot = true;\n      }\n    }\n  }\n\n  var prevSnapshot = hook.memoizedState;\n  var snapshotChanged = !objectIs(prevSnapshot, nextSnapshot);\n\n  if (snapshotChanged) {\n    hook.memoizedState = nextSnapshot;\n    markWorkInProgressReceivedUpdate();\n  }\n\n  var inst = hook.queue;\n  updateEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); // Whenever getSnapshot or subscribe changes, we need to check in the\n  // commit phase if there was an interleaved mutation. In concurrent mode\n  // this can happen all the time, but even in synchronous mode, an earlier\n  // effect may have mutated the store.\n\n  if (inst.getSnapshot !== getSnapshot || snapshotChanged || // Check if the susbcribe function changed. We can save some memory by\n  // checking whether we scheduled a subscription effect above.\n  workInProgressHook !== null && workInProgressHook.memoizedState.tag & HasEffect) {\n    fiber.flags |= Passive;\n    pushEffect(HasEffect | Passive$1, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null); // Unless we're rendering a blocking lane, schedule a consistency check.\n    // Right before committing, we will walk the tree and check if any of the\n    // stores were mutated.\n\n    var root = getWorkInProgressRoot();\n\n    if (root === null) {\n      throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');\n    }\n\n    if (!includesBlockingLane(root, renderLanes)) {\n      pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n    }\n  }\n\n  return nextSnapshot;\n}\n\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n  fiber.flags |= StoreConsistency;\n  var check = {\n    getSnapshot: getSnapshot,\n    value: renderedSnapshot\n  };\n  var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n  if (componentUpdateQueue === null) {\n    componentUpdateQueue = createFunctionComponentUpdateQueue();\n    currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n    componentUpdateQueue.stores = [check];\n  } else {\n    var stores = componentUpdateQueue.stores;\n\n    if (stores === null) {\n      componentUpdateQueue.stores = [check];\n    } else {\n      stores.push(check);\n    }\n  }\n}\n\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n  // These are updated in the passive phase\n  inst.value = nextSnapshot;\n  inst.getSnapshot = getSnapshot; // Something may have been mutated in between render and commit. This could\n  // have been in an event that fired before the passive effects, or it could\n  // have been in a layout effect. In that case, we would have used the old\n  // snapsho and getSnapshot values to bail out. We need to check one more time.\n\n  if (checkIfSnapshotChanged(inst)) {\n    // Force a re-render.\n    forceStoreRerender(fiber);\n  }\n}\n\nfunction subscribeToStore(fiber, inst, subscribe) {\n  var handleStoreChange = function () {\n    // The store changed. Check if the snapshot changed since the last time we\n    // read from the store.\n    if (checkIfSnapshotChanged(inst)) {\n      // Force a re-render.\n      forceStoreRerender(fiber);\n    }\n  }; // Subscribe to the store and return a clean-up function.\n\n\n  return subscribe(handleStoreChange);\n}\n\nfunction checkIfSnapshotChanged(inst) {\n  var latestGetSnapshot = inst.getSnapshot;\n  var prevValue = inst.value;\n\n  try {\n    var nextValue = latestGetSnapshot();\n    return !objectIs(prevValue, nextValue);\n  } catch (error) {\n    return true;\n  }\n}\n\nfunction forceStoreRerender(fiber) {\n  var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n  if (root !== null) {\n    scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n  }\n}\n\nfunction mountState(initialState) {\n  var hook = mountWorkInProgressHook();\n\n  if (typeof initialState === 'function') {\n    // $FlowFixMe: Flow doesn't like mixed types\n    initialState = initialState();\n  }\n\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = {\n    pending: null,\n    interleaved: null,\n    lanes: NoLanes,\n    dispatch: null,\n    lastRenderedReducer: basicStateReducer,\n    lastRenderedState: initialState\n  };\n  hook.queue = queue;\n  var dispatch = queue.dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n  return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n  return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n  var effect = {\n    tag: tag,\n    create: create,\n    destroy: destroy,\n    deps: deps,\n    // Circular\n    next: null\n  };\n  var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n  if (componentUpdateQueue === null) {\n    componentUpdateQueue = createFunctionComponentUpdateQueue();\n    currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n    componentUpdateQueue.lastEffect = effect.next = effect;\n  } else {\n    var lastEffect = componentUpdateQueue.lastEffect;\n\n    if (lastEffect === null) {\n      componentUpdateQueue.lastEffect = effect.next = effect;\n    } else {\n      var firstEffect = lastEffect.next;\n      lastEffect.next = effect;\n      effect.next = firstEffect;\n      componentUpdateQueue.lastEffect = effect;\n    }\n  }\n\n  return effect;\n}\n\nfunction mountRef(initialValue) {\n  var hook = mountWorkInProgressHook();\n\n  {\n    var _ref2 = {\n      current: initialValue\n    };\n    hook.memoizedState = _ref2;\n    return _ref2;\n  }\n}\n\nfunction updateRef(initialValue) {\n  var hook = updateWorkInProgressHook();\n  return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  currentlyRenderingFiber$1.flags |= fiberFlags;\n  hook.memoizedState = pushEffect(HasEffect | hookFlags, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var destroy = undefined;\n\n  if (currentHook !== null) {\n    var prevEffect = currentHook.memoizedState;\n    destroy = prevEffect.destroy;\n\n    if (nextDeps !== null) {\n      var prevDeps = prevEffect.deps;\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        hook.memoizedState = pushEffect(hookFlags, create, destroy, nextDeps);\n        return;\n      }\n    }\n  }\n\n  currentlyRenderingFiber$1.flags |= fiberFlags;\n  hook.memoizedState = pushEffect(HasEffect | hookFlags, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n  if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n    return mountEffectImpl(MountPassiveDev | Passive | PassiveStatic, Passive$1, create, deps);\n  } else {\n    return mountEffectImpl(Passive | PassiveStatic, Passive$1, create, deps);\n  }\n}\n\nfunction updateEffect(create, deps) {\n  return updateEffectImpl(Passive, Passive$1, create, deps);\n}\n\nfunction mountInsertionEffect(create, deps) {\n  return mountEffectImpl(Update, Insertion, create, deps);\n}\n\nfunction updateInsertionEffect(create, deps) {\n  return updateEffectImpl(Update, Insertion, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n  var fiberFlags = Update;\n\n  {\n    fiberFlags |= LayoutStatic;\n  }\n\n  if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n    fiberFlags |= MountLayoutDev;\n  }\n\n  return mountEffectImpl(fiberFlags, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n  return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n  if (typeof ref === 'function') {\n    var refCallback = ref;\n\n    var _inst = create();\n\n    refCallback(_inst);\n    return function () {\n      refCallback(null);\n    };\n  } else if (ref !== null && ref !== undefined) {\n    var refObject = ref;\n\n    {\n      if (!refObject.hasOwnProperty('current')) {\n        error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n      }\n    }\n\n    var _inst2 = create();\n\n    refObject.current = _inst2;\n    return function () {\n      refObject.current = null;\n    };\n  }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n  {\n    if (typeof create !== 'function') {\n      error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n    }\n  } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n  var fiberFlags = Update;\n\n  {\n    fiberFlags |= LayoutStatic;\n  }\n\n  if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n    fiberFlags |= MountLayoutDev;\n  }\n\n  return mountEffectImpl(fiberFlags, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n  {\n    if (typeof create !== 'function') {\n      error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n    }\n  } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n  return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {// This hook is normally a no-op.\n  // The react-debug-hooks package injects its own implementation\n  // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction updateCallback(callback, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n\n  if (prevState !== null) {\n    if (nextDeps !== null) {\n      var prevDeps = prevState[1];\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        return prevState[0];\n      }\n    }\n  }\n\n  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n\n  if (prevState !== null) {\n    // Assume these are defined. If they're not, areHookInputsEqual will warn.\n    if (nextDeps !== null) {\n      var prevDeps = prevState[1];\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        return prevState[0];\n      }\n    }\n  }\n\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction mountDeferredValue(value) {\n  var hook = mountWorkInProgressHook();\n  hook.memoizedState = value;\n  return value;\n}\n\nfunction updateDeferredValue(value) {\n  var hook = updateWorkInProgressHook();\n  var resolvedCurrentHook = currentHook;\n  var prevValue = resolvedCurrentHook.memoizedState;\n  return updateDeferredValueImpl(hook, prevValue, value);\n}\n\nfunction rerenderDeferredValue(value) {\n  var hook = updateWorkInProgressHook();\n\n  if (currentHook === null) {\n    // This is a rerender during a mount.\n    hook.memoizedState = value;\n    return value;\n  } else {\n    // This is a rerender during an update.\n    var prevValue = currentHook.memoizedState;\n    return updateDeferredValueImpl(hook, prevValue, value);\n  }\n}\n\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n  var shouldDeferValue = !includesOnlyNonUrgentLanes(renderLanes);\n\n  if (shouldDeferValue) {\n    // This is an urgent update. If the value has changed, keep using the\n    // previous value and spawn a deferred render to update it later.\n    if (!objectIs(value, prevValue)) {\n      // Schedule a deferred render\n      var deferredLane = claimNextTransitionLane();\n      currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, deferredLane);\n      markSkippedUpdateLanes(deferredLane); // Set this to true to indicate that the rendered value is inconsistent\n      // from the latest value. The name \"baseState\" doesn't really match how we\n      // use it because we're reusing a state hook field instead of creating a\n      // new one.\n\n      hook.baseState = true;\n    } // Reuse the previous value\n\n\n    return prevValue;\n  } else {\n    // This is not an urgent update, so we can use the latest value regardless\n    // of what it is. No need to defer it.\n    // However, if we're currently inside a spawned render, then we need to mark\n    // this as an update to prevent the fiber from bailing out.\n    //\n    // `baseState` is true when the current value is different from the rendered\n    // value. The name doesn't really match how we use it because we're reusing\n    // a state hook field instead of creating a new one.\n    if (hook.baseState) {\n      // Flip this back to false.\n      hook.baseState = false;\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = value;\n    return value;\n  }\n}\n\nfunction startTransition(setPending, callback, options) {\n  var previousPriority = getCurrentUpdatePriority();\n  setCurrentUpdatePriority(higherEventPriority(previousPriority, ContinuousEventPriority));\n  setPending(true);\n  var prevTransition = ReactCurrentBatchConfig$2.transition;\n  ReactCurrentBatchConfig$2.transition = {};\n  var currentTransition = ReactCurrentBatchConfig$2.transition;\n\n  {\n    ReactCurrentBatchConfig$2.transition._updatedFibers = new Set();\n  }\n\n  try {\n    setPending(false);\n    callback();\n  } finally {\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig$2.transition = prevTransition;\n\n    {\n      if (prevTransition === null && currentTransition._updatedFibers) {\n        var updatedFibersCount = currentTransition._updatedFibers.size;\n\n        if (updatedFibersCount > 10) {\n          warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n        }\n\n        currentTransition._updatedFibers.clear();\n      }\n    }\n  }\n}\n\nfunction mountTransition() {\n  var _mountState = mountState(false),\n      isPending = _mountState[0],\n      setPending = _mountState[1]; // The `start` method never changes.\n\n\n  var start = startTransition.bind(null, setPending);\n  var hook = mountWorkInProgressHook();\n  hook.memoizedState = start;\n  return [isPending, start];\n}\n\nfunction updateTransition() {\n  var _updateState = updateState(),\n      isPending = _updateState[0];\n\n  var hook = updateWorkInProgressHook();\n  var start = hook.memoizedState;\n  return [isPending, start];\n}\n\nfunction rerenderTransition() {\n  var _rerenderState = rerenderState(),\n      isPending = _rerenderState[0];\n\n  var hook = updateWorkInProgressHook();\n  var start = hook.memoizedState;\n  return [isPending, start];\n}\n\nvar isUpdatingOpaqueValueInRenderPhase = false;\nfunction getIsUpdatingOpaqueValueInRenderPhaseInDEV() {\n  {\n    return isUpdatingOpaqueValueInRenderPhase;\n  }\n}\n\nfunction mountId() {\n  var hook = mountWorkInProgressHook();\n  var root = getWorkInProgressRoot(); // TODO: In Fizz, id generation is specific to each server config. Maybe we\n  // should do this in Fiber, too? Deferring this decision for now because\n  // there's no other place to store the prefix except for an internal field on\n  // the public createRoot object, which the fiber tree does not currently have\n  // a reference to.\n\n  var identifierPrefix = root.identifierPrefix;\n  var id;\n\n  if (getIsHydrating()) {\n    var treeId = getTreeId(); // Use a captial R prefix for server-generated ids.\n\n    id = ':' + identifierPrefix + 'R' + treeId; // Unless this is the first id at this level, append a number at the end\n    // that represents the position of this useId hook among all the useId\n    // hooks for this fiber.\n\n    var localId = localIdCounter++;\n\n    if (localId > 0) {\n      id += 'H' + localId.toString(32);\n    }\n\n    id += ':';\n  } else {\n    // Use a lowercase r prefix for client-generated ids.\n    var globalClientId = globalClientIdCounter++;\n    id = ':' + identifierPrefix + 'r' + globalClientId.toString(32) + ':';\n  }\n\n  hook.memoizedState = id;\n  return id;\n}\n\nfunction updateId() {\n  var hook = updateWorkInProgressHook();\n  var id = hook.memoizedState;\n  return id;\n}\n\nfunction dispatchReducerAction(fiber, queue, action) {\n  {\n    if (typeof arguments[3] === 'function') {\n      error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n    }\n  }\n\n  var lane = requestUpdateLane(fiber);\n  var update = {\n    lane: lane,\n    action: action,\n    hasEagerState: false,\n    eagerState: null,\n    next: null\n  };\n\n  if (isRenderPhaseUpdate(fiber)) {\n    enqueueRenderPhaseUpdate(queue, update);\n  } else {\n    var root = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n\n    if (root !== null) {\n      var eventTime = requestEventTime();\n      scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n      entangleTransitionUpdate(root, queue, lane);\n    }\n  }\n\n  markUpdateInDevTools(fiber, lane);\n}\n\nfunction dispatchSetState(fiber, queue, action) {\n  {\n    if (typeof arguments[3] === 'function') {\n      error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n    }\n  }\n\n  var lane = requestUpdateLane(fiber);\n  var update = {\n    lane: lane,\n    action: action,\n    hasEagerState: false,\n    eagerState: null,\n    next: null\n  };\n\n  if (isRenderPhaseUpdate(fiber)) {\n    enqueueRenderPhaseUpdate(queue, update);\n  } else {\n    var alternate = fiber.alternate;\n\n    if (fiber.lanes === NoLanes && (alternate === null || alternate.lanes === NoLanes)) {\n      // The queue is currently empty, which means we can eagerly compute the\n      // next state before entering the render phase. If the new state is the\n      // same as the current state, we may be able to bail out entirely.\n      var lastRenderedReducer = queue.lastRenderedReducer;\n\n      if (lastRenderedReducer !== null) {\n        var prevDispatcher;\n\n        {\n          prevDispatcher = ReactCurrentDispatcher$1.current;\n          ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n        }\n\n        try {\n          var currentState = queue.lastRenderedState;\n          var eagerState = lastRenderedReducer(currentState, action); // Stash the eagerly computed state, and the reducer used to compute\n          // it, on the update object. If the reducer hasn't changed by the\n          // time we enter the render phase, then the eager state can be used\n          // without calling the reducer again.\n\n          update.hasEagerState = true;\n          update.eagerState = eagerState;\n\n          if (objectIs(eagerState, currentState)) {\n            // Fast path. We can bail out without scheduling React to re-render.\n            // It's still possible that we'll need to rebase this update later,\n            // if the component re-renders for a different reason and by that\n            // time the reducer has changed.\n            // TODO: Do we still need to entangle transitions in this case?\n            enqueueConcurrentHookUpdateAndEagerlyBailout(fiber, queue, update, lane);\n            return;\n          }\n        } catch (error) {// Suppress the error. It will throw again in the render phase.\n        } finally {\n          {\n            ReactCurrentDispatcher$1.current = prevDispatcher;\n          }\n        }\n      }\n    }\n\n    var root = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n\n    if (root !== null) {\n      var eventTime = requestEventTime();\n      scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n      entangleTransitionUpdate(root, queue, lane);\n    }\n  }\n\n  markUpdateInDevTools(fiber, lane);\n}\n\nfunction isRenderPhaseUpdate(fiber) {\n  var alternate = fiber.alternate;\n  return fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1;\n}\n\nfunction enqueueRenderPhaseUpdate(queue, update) {\n  // This is a render phase update. Stash it in a lazily-created map of\n  // queue -> linked list of updates. After this render pass, we'll restart\n  // and apply the stashed updates on top of the work-in-progress hook.\n  didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true;\n  var pending = queue.pending;\n\n  if (pending === null) {\n    // This is the first update. Create a circular list.\n    update.next = update;\n  } else {\n    update.next = pending.next;\n    pending.next = update;\n  }\n\n  queue.pending = update;\n} // TODO: Move to ReactFiberConcurrentUpdates?\n\n\nfunction entangleTransitionUpdate(root, queue, lane) {\n  if (isTransitionLane(lane)) {\n    var queueLanes = queue.lanes; // If any entangled lanes are no longer pending on the root, then they\n    // must have finished. We can remove them from the shared queue, which\n    // represents a superset of the actually pending lanes. In some cases we\n    // may entangle more than we need to, but that's OK. In fact it's worse if\n    // we *don't* entangle when we should.\n\n    queueLanes = intersectLanes(queueLanes, root.pendingLanes); // Entangle the new transition lane with the other transition lanes.\n\n    var newQueueLanes = mergeLanes(queueLanes, lane);\n    queue.lanes = newQueueLanes; // Even if queue.lanes already include lane, we don't know for certain if\n    // the lane finished since the last time we entangled it. So we need to\n    // entangle it again, just to be sure.\n\n    markRootEntangled(root, newQueueLanes);\n  }\n}\n\nfunction markUpdateInDevTools(fiber, lane, action) {\n\n  {\n    markStateUpdateScheduled(fiber, lane);\n  }\n}\n\nvar ContextOnlyDispatcher = {\n  readContext: readContext,\n  useCallback: throwInvalidHookError,\n  useContext: throwInvalidHookError,\n  useEffect: throwInvalidHookError,\n  useImperativeHandle: throwInvalidHookError,\n  useInsertionEffect: throwInvalidHookError,\n  useLayoutEffect: throwInvalidHookError,\n  useMemo: throwInvalidHookError,\n  useReducer: throwInvalidHookError,\n  useRef: throwInvalidHookError,\n  useState: throwInvalidHookError,\n  useDebugValue: throwInvalidHookError,\n  useDeferredValue: throwInvalidHookError,\n  useTransition: throwInvalidHookError,\n  useMutableSource: throwInvalidHookError,\n  useSyncExternalStore: throwInvalidHookError,\n  useId: throwInvalidHookError,\n  unstable_isNewReconciler: enableNewReconciler\n};\n\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n  var warnInvalidContextAccess = function () {\n    error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n  };\n\n  var warnInvalidHookAccess = function () {\n    error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks');\n  };\n\n  HooksDispatcherOnMountInDEV = {\n    readContext: function (context) {\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      mountHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      mountHookTypesDev();\n      return mountDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      mountHookTypesDev();\n      return mountDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      mountHookTypesDev();\n      return mountTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      mountHookTypesDev();\n      return mountMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      mountHookTypesDev();\n      return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      mountHookTypesDev();\n      return mountId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  HooksDispatcherOnMountWithHookTypesInDEV = {\n    readContext: function (context) {\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      updateHookTypesDev();\n      return mountInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return mountDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return mountDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return mountTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      updateHookTypesDev();\n      return mountMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      updateHookTypesDev();\n      return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      updateHookTypesDev();\n      return mountId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  HooksDispatcherOnUpdateInDEV = {\n    readContext: function (context) {\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      updateHookTypesDev();\n      return updateInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return updateDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return updateTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      updateHookTypesDev();\n      return updateMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      updateHookTypesDev();\n      return updateSyncExternalStore(subscribe, getSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      updateHookTypesDev();\n      return updateId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  HooksDispatcherOnRerenderInDEV = {\n    readContext: function (context) {\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      updateHookTypesDev();\n      return updateInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return rerenderReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return rerenderState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return rerenderDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return rerenderTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      updateHookTypesDev();\n      return updateMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      updateHookTypesDev();\n      return updateSyncExternalStore(subscribe, getSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      updateHookTypesDev();\n      return updateId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  InvalidNestedHooksDispatcherOnMountInDEV = {\n    readContext: function (context) {\n      warnInvalidContextAccess();\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  InvalidNestedHooksDispatcherOnUpdateInDEV = {\n    readContext: function (context) {\n      warnInvalidContextAccess();\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateSyncExternalStore(subscribe, getSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n\n  InvalidNestedHooksDispatcherOnRerenderInDEV = {\n    readContext: function (context) {\n      warnInvalidContextAccess();\n      return readContext(context);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return readContext(context);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useInsertionEffect: function (create, deps) {\n      currentHookNameInDev = 'useInsertionEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateInsertionEffect(create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return rerenderReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return rerenderState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useDeferredValue: function (value) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return rerenderDeferredValue(value);\n    },\n    useTransition: function () {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return rerenderTransition();\n    },\n    useMutableSource: function (source, getSnapshot, subscribe) {\n      currentHookNameInDev = 'useMutableSource';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateMutableSource();\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n      currentHookNameInDev = 'useSyncExternalStore';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateSyncExternalStore(subscribe, getSnapshot);\n    },\n    useId: function () {\n      currentHookNameInDev = 'useId';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateId();\n    },\n    unstable_isNewReconciler: enableNewReconciler\n  };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar layoutEffectStartTime = -1;\nvar profilerStartTime = -1;\nvar passiveEffectStartTime = -1;\n/**\n * Tracks whether the current update was a nested/cascading update (scheduled from a layout effect).\n *\n * The overall sequence is:\n *   1. render\n *   2. commit (and call `onRender`, `onCommit`)\n *   3. check for nested updates\n *   4. flush passive effects (and call `onPostCommit`)\n *\n * Nested updates are identified in step 3 above,\n * but step 4 still applies to the work that was just committed.\n * We use two flags to track nested updates then:\n * one tracks whether the upcoming update is a nested update,\n * and the other tracks whether the current update was a nested update.\n * The first value gets synced to the second at the start of the render phase.\n */\n\nvar currentUpdateIsNested = false;\nvar nestedUpdateScheduled = false;\n\nfunction isCurrentUpdateNested() {\n  return currentUpdateIsNested;\n}\n\nfunction markNestedUpdateScheduled() {\n  {\n    nestedUpdateScheduled = true;\n  }\n}\n\nfunction resetNestedUpdateFlag() {\n  {\n    currentUpdateIsNested = false;\n    nestedUpdateScheduled = false;\n  }\n}\n\nfunction syncNestedUpdateFlag() {\n  {\n    currentUpdateIsNested = nestedUpdateScheduled;\n    nestedUpdateScheduled = false;\n  }\n}\n\nfunction getCommitTime() {\n  return commitTime;\n}\n\nfunction recordCommitTime() {\n\n  commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n  profilerStartTime = now$1();\n\n  if (fiber.actualStartTime < 0) {\n    fiber.actualStartTime = now$1();\n  }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n  profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n  if (profilerStartTime >= 0) {\n    var elapsedTime = now$1() - profilerStartTime;\n    fiber.actualDuration += elapsedTime;\n\n    if (overrideBaseTime) {\n      fiber.selfBaseDuration = elapsedTime;\n    }\n\n    profilerStartTime = -1;\n  }\n}\n\nfunction recordLayoutEffectDuration(fiber) {\n\n  if (layoutEffectStartTime >= 0) {\n    var elapsedTime = now$1() - layoutEffectStartTime;\n    layoutEffectStartTime = -1; // Store duration on the next nearest Profiler ancestor\n    // Or the root (for the DevTools Profiler to read)\n\n    var parentFiber = fiber.return;\n\n    while (parentFiber !== null) {\n      switch (parentFiber.tag) {\n        case HostRoot:\n          var root = parentFiber.stateNode;\n          root.effectDuration += elapsedTime;\n          return;\n\n        case Profiler:\n          var parentStateNode = parentFiber.stateNode;\n          parentStateNode.effectDuration += elapsedTime;\n          return;\n      }\n\n      parentFiber = parentFiber.return;\n    }\n  }\n}\n\nfunction recordPassiveEffectDuration(fiber) {\n\n  if (passiveEffectStartTime >= 0) {\n    var elapsedTime = now$1() - passiveEffectStartTime;\n    passiveEffectStartTime = -1; // Store duration on the next nearest Profiler ancestor\n    // Or the root (for the DevTools Profiler to read)\n\n    var parentFiber = fiber.return;\n\n    while (parentFiber !== null) {\n      switch (parentFiber.tag) {\n        case HostRoot:\n          var root = parentFiber.stateNode;\n\n          if (root !== null) {\n            root.passiveEffectDuration += elapsedTime;\n          }\n\n          return;\n\n        case Profiler:\n          var parentStateNode = parentFiber.stateNode;\n\n          if (parentStateNode !== null) {\n            // Detached fibers have their state node cleared out.\n            // In this case, the return pointer is also cleared out,\n            // so we won't be able to report the time spent in this Profiler's subtree.\n            parentStateNode.passiveEffectDuration += elapsedTime;\n          }\n\n          return;\n      }\n\n      parentFiber = parentFiber.return;\n    }\n  }\n}\n\nfunction startLayoutEffectTimer() {\n\n  layoutEffectStartTime = now$1();\n}\n\nfunction startPassiveEffectTimer() {\n\n  passiveEffectStartTime = now$1();\n}\n\nfunction transferActualDuration(fiber) {\n  // Transfer time spent rendering these children so we don't lose it\n  // after we rerender. This is used as a helper in special cases\n  // where we should count the work of multiple passes.\n  var child = fiber.child;\n\n  while (child) {\n    fiber.actualDuration += child.actualDuration;\n    child = child.sibling;\n  }\n}\n\nfunction createCapturedValueAtFiber(value, source) {\n  // If the value is an error, call this function immediately after it is thrown\n  // so the stack is accurate.\n  return {\n    value: value,\n    source: source,\n    stack: getStackByFiberInDevAndProd(source),\n    digest: null\n  };\n}\nfunction createCapturedValue(value, digest, stack) {\n  return {\n    value: value,\n    source: null,\n    stack: stack != null ? stack : null,\n    digest: digest != null ? digest : null\n  };\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(boundary, errorInfo) {\n  return true;\n}\n\nfunction logCapturedError(boundary, errorInfo) {\n  try {\n    var logError = showErrorDialog(boundary, errorInfo); // Allow injected showErrorDialog() to prevent default console.error logging.\n    // This enables renderers like ReactNative to better manage redbox behavior.\n\n    if (logError === false) {\n      return;\n    }\n\n    var error = errorInfo.value;\n\n    if (true) {\n      var source = errorInfo.source;\n      var stack = errorInfo.stack;\n      var componentStack = stack !== null ? stack : ''; // Browsers support silencing uncaught errors by calling\n      // `preventDefault()` in window `error` handler.\n      // We record this information as an expando on the error.\n\n      if (error != null && error._suppressLogging) {\n        if (boundary.tag === ClassComponent) {\n          // The error is recoverable and was silenced.\n          // Ignore it and don't print the stack addendum.\n          // This is handy for testing error boundaries without noise.\n          return;\n        } // The error is fatal. Since the silencing might have\n        // been accidental, we'll surface it anyway.\n        // However, the browser would have silenced the original error\n        // so we'll print it first, and then print the stack addendum.\n\n\n        console['error'](error); // Don't transform to our wrapper\n        // For a more detailed description of this block, see:\n        // https://github.com/facebook/react/pull/13384\n      }\n\n      var componentName = source ? getComponentNameFromFiber(source) : null;\n      var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n      var errorBoundaryMessage;\n\n      if (boundary.tag === HostRoot) {\n        errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';\n      } else {\n        var errorBoundaryName = getComponentNameFromFiber(boundary) || 'Anonymous';\n        errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n      }\n\n      var combinedMessage = componentNameMessage + \"\\n\" + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); // In development, we provide our own message with just the component stack.\n      // We don't include the original error message and JS stack because the browser\n      // has already printed it. Even if the application swallows the error, it is still\n      // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n\n      console['error'](combinedMessage); // Don't transform to our wrapper\n    } else {}\n  } catch (e) {\n    // This method must not throw, or React internal state will get messed up.\n    // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n    // we want to report this error outside of the normal stack as a last resort.\n    // https://github.com/facebook/react/issues/13188\n    setTimeout(function () {\n      throw e;\n    });\n  }\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n  var update = createUpdate(NoTimestamp, lane); // Unmount the root by rendering null.\n\n  update.tag = CaptureUpdate; // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n\n  update.payload = {\n    element: null\n  };\n  var error = errorInfo.value;\n\n  update.callback = function () {\n    onUncaughtError(error);\n    logCapturedError(fiber, errorInfo);\n  };\n\n  return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n  var update = createUpdate(NoTimestamp, lane);\n  update.tag = CaptureUpdate;\n  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n  if (typeof getDerivedStateFromError === 'function') {\n    var error$1 = errorInfo.value;\n\n    update.payload = function () {\n      return getDerivedStateFromError(error$1);\n    };\n\n    update.callback = function () {\n      {\n        markFailedErrorBoundaryForHotReloading(fiber);\n      }\n\n      logCapturedError(fiber, errorInfo);\n    };\n  }\n\n  var inst = fiber.stateNode;\n\n  if (inst !== null && typeof inst.componentDidCatch === 'function') {\n    update.callback = function callback() {\n      {\n        markFailedErrorBoundaryForHotReloading(fiber);\n      }\n\n      logCapturedError(fiber, errorInfo);\n\n      if (typeof getDerivedStateFromError !== 'function') {\n        // To preserve the preexisting retry behavior of error boundaries,\n        // we keep track of which ones already failed during this batch.\n        // This gets reset before we yield back to the browser.\n        // TODO: Warn in strict mode if getDerivedStateFromError is\n        // not defined.\n        markLegacyErrorBoundaryAsFailed(this);\n      }\n\n      var error$1 = errorInfo.value;\n      var stack = errorInfo.stack;\n      this.componentDidCatch(error$1, {\n        componentStack: stack !== null ? stack : ''\n      });\n\n      {\n        if (typeof getDerivedStateFromError !== 'function') {\n          // If componentDidCatch is the only error boundary method defined,\n          // then it needs to call setState to recover from errors.\n          // If no state update is scheduled then the boundary will swallow the error.\n          if (!includesSomeLane(fiber.lanes, SyncLane)) {\n            error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentNameFromFiber(fiber) || 'Unknown');\n          }\n        }\n      }\n    };\n  }\n\n  return update;\n}\n\nfunction attachPingListener(root, wakeable, lanes) {\n  // Attach a ping listener\n  //\n  // The data might resolve before we have a chance to commit the fallback. Or,\n  // in the case of a refresh, we'll never commit a fallback. So we need to\n  // attach a listener now. When it resolves (\"pings\"), we can decide whether to\n  // try rendering the tree again.\n  //\n  // Only attach a listener if one does not already exist for the lanes\n  // we're currently rendering (which acts like a \"thread ID\" here).\n  //\n  // We only need to do this in concurrent mode. Legacy Suspense always\n  // commits fallbacks synchronously, so there are no pings.\n  var pingCache = root.pingCache;\n  var threadIDs;\n\n  if (pingCache === null) {\n    pingCache = root.pingCache = new PossiblyWeakMap$1();\n    threadIDs = new Set();\n    pingCache.set(wakeable, threadIDs);\n  } else {\n    threadIDs = pingCache.get(wakeable);\n\n    if (threadIDs === undefined) {\n      threadIDs = new Set();\n      pingCache.set(wakeable, threadIDs);\n    }\n  }\n\n  if (!threadIDs.has(lanes)) {\n    // Memoize using the thread ID to prevent redundant listeners.\n    threadIDs.add(lanes);\n    var ping = pingSuspendedRoot.bind(null, root, wakeable, lanes);\n\n    {\n      if (isDevToolsPresent) {\n        // If we have pending work still, restore the original updaters\n        restorePendingUpdaters(root, lanes);\n      }\n    }\n\n    wakeable.then(ping, ping);\n  }\n}\n\nfunction attachRetryListener(suspenseBoundary, root, wakeable, lanes) {\n  // Retry listener\n  //\n  // If the fallback does commit, we need to attach a different type of\n  // listener. This one schedules an update on the Suspense boundary to turn\n  // the fallback state off.\n  //\n  // Stash the wakeable on the boundary fiber so we can access it in the\n  // commit phase.\n  //\n  // When the wakeable resolves, we'll attempt to render the boundary\n  // again (\"retry\").\n  var wakeables = suspenseBoundary.updateQueue;\n\n  if (wakeables === null) {\n    var updateQueue = new Set();\n    updateQueue.add(wakeable);\n    suspenseBoundary.updateQueue = updateQueue;\n  } else {\n    wakeables.add(wakeable);\n  }\n}\n\nfunction resetSuspendedComponent(sourceFiber, rootRenderLanes) {\n  // A legacy mode Suspense quirk, only relevant to hook components.\n\n\n  var tag = sourceFiber.tag;\n\n  if ((sourceFiber.mode & ConcurrentMode) === NoMode && (tag === FunctionComponent || tag === ForwardRef || tag === SimpleMemoComponent)) {\n    var currentSource = sourceFiber.alternate;\n\n    if (currentSource) {\n      sourceFiber.updateQueue = currentSource.updateQueue;\n      sourceFiber.memoizedState = currentSource.memoizedState;\n      sourceFiber.lanes = currentSource.lanes;\n    } else {\n      sourceFiber.updateQueue = null;\n      sourceFiber.memoizedState = null;\n    }\n  }\n}\n\nfunction getNearestSuspenseBoundaryToCapture(returnFiber) {\n  var node = returnFiber;\n\n  do {\n    if (node.tag === SuspenseComponent && shouldCaptureSuspense(node)) {\n      return node;\n    } // This boundary already captured during this render. Continue to the next\n    // boundary.\n\n\n    node = node.return;\n  } while (node !== null);\n\n  return null;\n}\n\nfunction markSuspenseBoundaryShouldCapture(suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes) {\n  // This marks a Suspense boundary so that when we're unwinding the stack,\n  // it captures the suspended \"exception\" and does a second (fallback) pass.\n  if ((suspenseBoundary.mode & ConcurrentMode) === NoMode) {\n    // Legacy Mode Suspense\n    //\n    // If the boundary is in legacy mode, we should *not*\n    // suspend the commit. Pretend as if the suspended component rendered\n    // null and keep rendering. When the Suspense boundary completes,\n    // we'll do a second pass to render the fallback.\n    if (suspenseBoundary === returnFiber) {\n      // Special case where we suspended while reconciling the children of\n      // a Suspense boundary's inner Offscreen wrapper fiber. This happens\n      // when a React.lazy component is a direct child of a\n      // Suspense boundary.\n      //\n      // Suspense boundaries are implemented as multiple fibers, but they\n      // are a single conceptual unit. The legacy mode behavior where we\n      // pretend the suspended fiber committed as `null` won't work,\n      // because in this case the \"suspended\" fiber is the inner\n      // Offscreen wrapper.\n      //\n      // Because the contents of the boundary haven't started rendering\n      // yet (i.e. nothing in the tree has partially rendered) we can\n      // switch to the regular, concurrent mode behavior: mark the\n      // boundary with ShouldCapture and enter the unwind phase.\n      suspenseBoundary.flags |= ShouldCapture;\n    } else {\n      suspenseBoundary.flags |= DidCapture;\n      sourceFiber.flags |= ForceUpdateForLegacySuspense; // We're going to commit this fiber even though it didn't complete.\n      // But we shouldn't call any lifecycle methods or callbacks. Remove\n      // all lifecycle effect tags.\n\n      sourceFiber.flags &= ~(LifecycleEffectMask | Incomplete);\n\n      if (sourceFiber.tag === ClassComponent) {\n        var currentSourceFiber = sourceFiber.alternate;\n\n        if (currentSourceFiber === null) {\n          // This is a new mount. Change the tag so it's not mistaken for a\n          // completed class component. For example, we should not call\n          // componentWillUnmount if it is deleted.\n          sourceFiber.tag = IncompleteClassComponent;\n        } else {\n          // When we try rendering again, we should not reuse the current fiber,\n          // since it's known to be in an inconsistent state. Use a force update to\n          // prevent a bail out.\n          var update = createUpdate(NoTimestamp, SyncLane);\n          update.tag = ForceUpdate;\n          enqueueUpdate(sourceFiber, update, SyncLane);\n        }\n      } // The source fiber did not complete. Mark it with Sync priority to\n      // indicate that it still has pending work.\n\n\n      sourceFiber.lanes = mergeLanes(sourceFiber.lanes, SyncLane);\n    }\n\n    return suspenseBoundary;\n  } // Confirmed that the boundary is in a concurrent mode tree. Continue\n  // with the normal suspend path.\n  //\n  // After this we'll use a set of heuristics to determine whether this\n  // render pass will run to completion or restart or \"suspend\" the commit.\n  // The actual logic for this is spread out in different places.\n  //\n  // This first principle is that if we're going to suspend when we complete\n  // a root, then we should also restart if we get an update or ping that\n  // might unsuspend it, and vice versa. The only reason to suspend is\n  // because you think you might want to restart before committing. However,\n  // it doesn't make sense to restart only while in the period we're suspended.\n  //\n  // Restarting too aggressively is also not good because it starves out any\n  // intermediate loading state. So we use heuristics to determine when.\n  // Suspense Heuristics\n  //\n  // If nothing threw a Promise or all the same fallbacks are already showing,\n  // then don't suspend/restart.\n  //\n  // If this is an initial render of a new tree of Suspense boundaries and\n  // those trigger a fallback, then don't suspend/restart. We want to ensure\n  // that we can show the initial loading state as quickly as possible.\n  //\n  // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n  // a fallback, then we should always suspend/restart. Transitions apply\n  // to this case. If none is defined, JND is used instead.\n  //\n  // If we're already showing a fallback and it gets \"retried\", allowing us to show\n  // another level, but there's still an inner boundary that would show a fallback,\n  // then we suspend/restart for 500ms since the last time we showed a fallback\n  // anywhere in the tree. This effectively throttles progressive loading into a\n  // consistent train of commits. This also gives us an opportunity to restart to\n  // get to the completed state slightly earlier.\n  //\n  // If there's ambiguity due to batching it's resolved in preference of:\n  // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n  //\n  // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n  // ensure that new initial loading states can commit as soon as possible.\n\n\n  suspenseBoundary.flags |= ShouldCapture; // TODO: I think we can remove this, since we now use `DidCapture` in\n  // the begin phase to prevent an early bailout.\n\n  suspenseBoundary.lanes = rootRenderLanes;\n  return suspenseBoundary;\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, rootRenderLanes) {\n  // The source fiber did not complete.\n  sourceFiber.flags |= Incomplete;\n\n  {\n    if (isDevToolsPresent) {\n      // If we have pending work still, restore the original updaters\n      restorePendingUpdaters(root, rootRenderLanes);\n    }\n  }\n\n  if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n    // This is a wakeable. The component suspended.\n    var wakeable = value;\n    resetSuspendedComponent(sourceFiber);\n\n    {\n      if (getIsHydrating() && sourceFiber.mode & ConcurrentMode) {\n        markDidThrowWhileHydratingDEV();\n      }\n    }\n\n\n    var suspenseBoundary = getNearestSuspenseBoundaryToCapture(returnFiber);\n\n    if (suspenseBoundary !== null) {\n      suspenseBoundary.flags &= ~ForceClientRender;\n      markSuspenseBoundaryShouldCapture(suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes); // We only attach ping listeners in concurrent mode. Legacy Suspense always\n      // commits fallbacks synchronously, so there are no pings.\n\n      if (suspenseBoundary.mode & ConcurrentMode) {\n        attachPingListener(root, wakeable, rootRenderLanes);\n      }\n\n      attachRetryListener(suspenseBoundary, root, wakeable);\n      return;\n    } else {\n      // No boundary was found. Unless this is a sync update, this is OK.\n      // We can suspend and wait for more data to arrive.\n      if (!includesSyncLane(rootRenderLanes)) {\n        // This is not a sync update. Suspend. Since we're not activating a\n        // Suspense boundary, this will unwind all the way to the root without\n        // performing a second pass to render a fallback. (This is arguably how\n        // refresh transitions should work, too, since we're not going to commit\n        // the fallbacks anyway.)\n        //\n        // This case also applies to initial hydration.\n        attachPingListener(root, wakeable, rootRenderLanes);\n        renderDidSuspendDelayIfPossible();\n        return;\n      } // This is a sync/discrete update. We treat this case like an error\n      // because discrete renders are expected to produce a complete tree\n      // synchronously to maintain consistency with external state.\n\n\n      var uncaughtSuspenseError = new Error('A component suspended while responding to synchronous input. This ' + 'will cause the UI to be replaced with a loading indicator. To ' + 'fix, updates that suspend should be wrapped ' + 'with startTransition.'); // If we're outside a transition, fall through to the regular error path.\n      // The error will be caught by the nearest suspense boundary.\n\n      value = uncaughtSuspenseError;\n    }\n  } else {\n    // This is a regular error, not a Suspense wakeable.\n    if (getIsHydrating() && sourceFiber.mode & ConcurrentMode) {\n      markDidThrowWhileHydratingDEV();\n\n      var _suspenseBoundary = getNearestSuspenseBoundaryToCapture(returnFiber); // If the error was thrown during hydration, we may be able to recover by\n      // discarding the dehydrated content and switching to a client render.\n      // Instead of surfacing the error, find the nearest Suspense boundary\n      // and render it again without hydration.\n\n\n      if (_suspenseBoundary !== null) {\n        if ((_suspenseBoundary.flags & ShouldCapture) === NoFlags) {\n          // Set a flag to indicate that we should try rendering the normal\n          // children again, not the fallback.\n          _suspenseBoundary.flags |= ForceClientRender;\n        }\n\n        markSuspenseBoundaryShouldCapture(_suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes); // Even though the user may not be affected by this error, we should\n        // still log it so it can be fixed.\n\n        queueHydrationError(createCapturedValueAtFiber(value, sourceFiber));\n        return;\n      }\n    }\n  }\n\n  value = createCapturedValueAtFiber(value, sourceFiber);\n  renderDidError(value); // We didn't find a boundary that could handle this type of exception. Start\n  // over and traverse parent path again, this time treating the exception\n  // as an error.\n\n  var workInProgress = returnFiber;\n\n  do {\n    switch (workInProgress.tag) {\n      case HostRoot:\n        {\n          var _errorInfo = value;\n          workInProgress.flags |= ShouldCapture;\n          var lane = pickArbitraryLane(rootRenderLanes);\n          workInProgress.lanes = mergeLanes(workInProgress.lanes, lane);\n          var update = createRootErrorUpdate(workInProgress, _errorInfo, lane);\n          enqueueCapturedUpdate(workInProgress, update);\n          return;\n        }\n\n      case ClassComponent:\n        // Capture and retry\n        var errorInfo = value;\n        var ctor = workInProgress.type;\n        var instance = workInProgress.stateNode;\n\n        if ((workInProgress.flags & DidCapture) === NoFlags && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n          workInProgress.flags |= ShouldCapture;\n\n          var _lane = pickArbitraryLane(rootRenderLanes);\n\n          workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state\n\n          var _update = createClassErrorUpdate(workInProgress, errorInfo, _lane);\n\n          enqueueCapturedUpdate(workInProgress, _update);\n          return;\n        }\n\n        break;\n    }\n\n    workInProgress = workInProgress.return;\n  } while (workInProgress !== null);\n}\n\nfunction getSuspendedCache() {\n  {\n    return null;\n  } // This function is called when a Suspense boundary suspends. It returns the\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\n\n{\n  didWarnAboutBadClass = {};\n  didWarnAboutModulePatternComponent = {};\n  didWarnAboutContextTypeOnFunctionComponent = {};\n  didWarnAboutGetDerivedStateOnFunctionComponent = {};\n  didWarnAboutFunctionRefs = {};\n  didWarnAboutReassigningProps = false;\n  didWarnAboutRevealOrder = {};\n  didWarnAboutTailOptions = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n  if (current === null) {\n    // If this is a fresh new component that hasn't been rendered yet, we\n    // won't update its child set by applying minimal side-effects. Instead,\n    // we will add them all to the child before it gets rendered. That means\n    // we can optimize this reconciliation pass by not tracking side-effects.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n  } else {\n    // If the current child is the same as the work in progress, it means that\n    // we haven't yet started any work on these children. Therefore, we use\n    // the clone algorithm to create a copy of all the current children.\n    // If we had any progressed work already, that is invalid at this point so\n    // let's throw it out.\n    workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes);\n  }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes) {\n  // This function is fork of reconcileChildren. It's used in cases where we\n  // want to reconcile without matching against the existing set. This has the\n  // effect of all current children being unmounted; even if the type and key\n  // are the same, the old child is unmounted and a new child is created.\n  //\n  // To do this, we're going to go through the reconcile algorithm twice. In\n  // the first pass, we schedule a deletion for all the current children by\n  // passing null.\n  workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes); // In the second pass, we mount the new children. The trick here is that we\n  // pass null in place of where we usually pass the current child set. This has\n  // the effect of remounting all children regardless of whether their\n  // identities match.\n\n  workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens after the first render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentNameFromType(Component));\n      }\n    }\n  }\n\n  var render = Component.render;\n  var ref = workInProgress.ref; // The rest is a fork of updateFunctionComponent\n\n  var nextChildren;\n  var hasId;\n  prepareToReadContext(workInProgress, renderLanes);\n\n  {\n    markComponentRenderStarted(workInProgress);\n  }\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n    hasId = checkDidRenderIdHook();\n\n    if ( workInProgress.mode & StrictLegacyMode) {\n      setIsStrictModeForDevtools(true);\n\n      try {\n        nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n        hasId = checkDidRenderIdHook();\n      } finally {\n        setIsStrictModeForDevtools(false);\n      }\n    }\n\n    setIsRendering(false);\n  }\n\n  {\n    markComponentRenderStopped();\n  }\n\n  if (current !== null && !didReceiveUpdate) {\n    bailoutHooks(current, workInProgress, renderLanes);\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n  }\n\n  if (getIsHydrating() && hasId) {\n    pushMaterializedTreeId(workInProgress);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, renderLanes) {\n  if (current === null) {\n    var type = Component.type;\n\n    if (isSimpleFunctionComponent(type) && Component.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.\n    Component.defaultProps === undefined) {\n      var resolvedType = type;\n\n      {\n        resolvedType = resolveFunctionForHotReloading(type);\n      } // If this is a plain function component without default props,\n      // and with only the default shallow comparison, we upgrade it\n      // to a SimpleMemoComponent to allow fast path updates.\n\n\n      workInProgress.tag = SimpleMemoComponent;\n      workInProgress.type = resolvedType;\n\n      {\n        validateFunctionComponentInDev(workInProgress, type);\n      }\n\n      return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, renderLanes);\n    }\n\n    {\n      var innerPropTypes = type.propTypes;\n\n      if (innerPropTypes) {\n        // Inner memo component props aren't currently validated in createElement.\n        // We could move it there, but we'd still need this for lazy code path.\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentNameFromType(type));\n      }\n    }\n\n    var child = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes);\n    child.ref = workInProgress.ref;\n    child.return = workInProgress;\n    workInProgress.child = child;\n    return child;\n  }\n\n  {\n    var _type = Component.type;\n    var _innerPropTypes = _type.propTypes;\n\n    if (_innerPropTypes) {\n      // Inner memo component props aren't currently validated in createElement.\n      // We could move it there, but we'd still need this for lazy code path.\n      checkPropTypes(_innerPropTypes, nextProps, // Resolved props\n      'prop', getComponentNameFromType(_type));\n    }\n  }\n\n  var currentChild = current.child; // This is always exactly one child\n\n  var hasScheduledUpdateOrContext = checkScheduledUpdateOrContext(current, renderLanes);\n\n  if (!hasScheduledUpdateOrContext) {\n    // This will be the props with resolved defaultProps,\n    // unlike current.memoizedProps which will be the unresolved ones.\n    var prevProps = currentChild.memoizedProps; // Default to shallow comparison\n\n    var compare = Component.compare;\n    compare = compare !== null ? compare : shallowEqual;\n\n    if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n    }\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n  var newChild = createWorkInProgress(currentChild, nextProps);\n  newChild.ref = workInProgress.ref;\n  newChild.return = workInProgress;\n  workInProgress.child = newChild;\n  return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, renderLanes) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens when the inner render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var outerMemoType = workInProgress.elementType;\n\n      if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n        // We warn when you define propTypes on lazy()\n        // so let's just skip over it to find memo() outer wrapper.\n        // Inner props for memo are validated later.\n        var lazyComponent = outerMemoType;\n        var payload = lazyComponent._payload;\n        var init = lazyComponent._init;\n\n        try {\n          outerMemoType = init(payload);\n        } catch (x) {\n          outerMemoType = null;\n        } // Inner propTypes will be validated in the function component path.\n\n\n        var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n        if (outerPropTypes) {\n          checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n          'prop', getComponentNameFromType(outerMemoType));\n        }\n      }\n    }\n  }\n\n  if (current !== null) {\n    var prevProps = current.memoizedProps;\n\n    if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( // Prevent bailout if the implementation changed due to hot reload.\n     workInProgress.type === current.type )) {\n      didReceiveUpdate = false; // The props are shallowly equal. Reuse the previous props object, like we\n      // would during a normal fiber bailout.\n      //\n      // We don't have strong guarantees that the props object is referentially\n      // equal during updates where we can't bail out anyway — like if the props\n      // are shallowly equal, but there's a local state or context update in the\n      // same batch.\n      //\n      // However, as a principle, we should aim to make the behavior consistent\n      // across different ways of memoizing a component. For example, React.memo\n      // has a different internal Fiber layout if you pass a normal function\n      // component (SimpleMemoComponent) versus if you pass a different type\n      // like forwardRef (MemoComponent). But this is an implementation detail.\n      // Wrapping a component in forwardRef (or React.lazy, etc) shouldn't\n      // affect whether the props object is reused during a bailout.\n\n      workInProgress.pendingProps = nextProps = prevProps;\n\n      if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n        // The pending lanes were cleared at the beginning of beginWork. We're\n        // about to bail out, but there might be other lanes that weren't\n        // included in the current render. Usually, the priority level of the\n        // remaining updates is accumulated during the evaluation of the\n        // component (i.e. when processing the update queue). But since since\n        // we're bailing out early *without* evaluating the component, we need\n        // to account for it here, too. Reset to the value of the current fiber.\n        // NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n        // because a MemoComponent fiber does not have hooks or an update queue;\n        // rather, it wraps around an inner component, which may or may not\n        // contains hooks.\n        // TODO: Move the reset at in beginWork out of the common path so that\n        // this is no longer necessary.\n        workInProgress.lanes = current.lanes;\n        return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n      } else if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n        // This is a special case that only exists for legacy mode.\n        // See https://github.com/facebook/react/pull/19216.\n        didReceiveUpdate = true;\n      }\n    }\n  }\n\n  return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes);\n}\n\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n  var prevState = current !== null ? current.memoizedState : null;\n\n  if (nextProps.mode === 'hidden' || enableLegacyHidden ) {\n    // Rendering a hidden tree.\n    if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n      // In legacy sync mode, don't defer the subtree. Render it now.\n      // TODO: Consider how Offscreen should work with transitions in the future\n      var nextState = {\n        baseLanes: NoLanes,\n        cachePool: null,\n        transitions: null\n      };\n      workInProgress.memoizedState = nextState;\n\n      pushRenderLanes(workInProgress, renderLanes);\n    } else if (!includesSomeLane(renderLanes, OffscreenLane)) {\n      var spawnedCachePool = null; // We're hidden, and we're not rendering at Offscreen. We will bail out\n      // and resume this tree later.\n\n      var nextBaseLanes;\n\n      if (prevState !== null) {\n        var prevBaseLanes = prevState.baseLanes;\n        nextBaseLanes = mergeLanes(prevBaseLanes, renderLanes);\n      } else {\n        nextBaseLanes = renderLanes;\n      } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n      workInProgress.lanes = workInProgress.childLanes = laneToLanes(OffscreenLane);\n      var _nextState = {\n        baseLanes: nextBaseLanes,\n        cachePool: spawnedCachePool,\n        transitions: null\n      };\n      workInProgress.memoizedState = _nextState;\n      workInProgress.updateQueue = null;\n      // to avoid a push/pop misalignment.\n\n\n      pushRenderLanes(workInProgress, nextBaseLanes);\n\n      return null;\n    } else {\n      // This is the second render. The surrounding visible content has already\n      // committed. Now we resume rendering the hidden tree.\n      // Rendering at offscreen, so we can clear the base lanes.\n      var _nextState2 = {\n        baseLanes: NoLanes,\n        cachePool: null,\n        transitions: null\n      };\n      workInProgress.memoizedState = _nextState2; // Push the lanes that were skipped when we bailed out.\n\n      var subtreeRenderLanes = prevState !== null ? prevState.baseLanes : renderLanes;\n\n      pushRenderLanes(workInProgress, subtreeRenderLanes);\n    }\n  } else {\n    // Rendering a visible tree.\n    var _subtreeRenderLanes;\n\n    if (prevState !== null) {\n      // We're going from hidden -> visible.\n      _subtreeRenderLanes = mergeLanes(prevState.baseLanes, renderLanes);\n\n      workInProgress.memoizedState = null;\n    } else {\n      // We weren't previously hidden, and we still aren't, so there's nothing\n      // special to do. Need to push to the stack regardless, though, to avoid\n      // a push/pop misalignment.\n      _subtreeRenderLanes = renderLanes;\n    }\n\n    pushRenderLanes(workInProgress, _subtreeRenderLanes);\n  }\n\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n} // Note: These happen to have identical begin phases, for now. We shouldn't hold\n\nfunction updateFragment(current, workInProgress, renderLanes) {\n  var nextChildren = workInProgress.pendingProps;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderLanes) {\n  var nextChildren = workInProgress.pendingProps.children;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderLanes) {\n  {\n    workInProgress.flags |= Update;\n\n    {\n      // Reset effect durations for the next eventual effect phase.\n      // These are reset during render to allow the DevTools commit hook a chance to read them,\n      var stateNode = workInProgress.stateNode;\n      stateNode.effectDuration = 0;\n      stateNode.passiveEffectDuration = 0;\n    }\n  }\n\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n  var ref = workInProgress.ref;\n\n  if (current === null && ref !== null || current !== null && current.ref !== ref) {\n    // Schedule a Ref effect\n    workInProgress.flags |= Ref;\n\n    {\n      workInProgress.flags |= RefStatic;\n    }\n  }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) {\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentNameFromType(Component));\n      }\n    }\n  }\n\n  var context;\n\n  {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  var nextChildren;\n  var hasId;\n  prepareToReadContext(workInProgress, renderLanes);\n\n  {\n    markComponentRenderStarted(workInProgress);\n  }\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n    hasId = checkDidRenderIdHook();\n\n    if ( workInProgress.mode & StrictLegacyMode) {\n      setIsStrictModeForDevtools(true);\n\n      try {\n        nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n        hasId = checkDidRenderIdHook();\n      } finally {\n        setIsStrictModeForDevtools(false);\n      }\n    }\n\n    setIsRendering(false);\n  }\n\n  {\n    markComponentRenderStopped();\n  }\n\n  if (current !== null && !didReceiveUpdate) {\n    bailoutHooks(current, workInProgress, renderLanes);\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n  }\n\n  if (getIsHydrating() && hasId) {\n    pushMaterializedTreeId(workInProgress);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) {\n  {\n    // This is used by DevTools to force a boundary to error.\n    switch (shouldError(workInProgress)) {\n      case false:\n        {\n          var _instance = workInProgress.stateNode;\n          var ctor = workInProgress.type; // TODO This way of resetting the error boundary state is a hack.\n          // Is there a better way to do this?\n\n          var tempInstance = new ctor(workInProgress.memoizedProps, _instance.context);\n          var state = tempInstance.state;\n\n          _instance.updater.enqueueSetState(_instance, state, null);\n\n          break;\n        }\n\n      case true:\n        {\n          workInProgress.flags |= DidCapture;\n          workInProgress.flags |= ShouldCapture; // eslint-disable-next-line react-internal/prod-error-codes\n\n          var error$1 = new Error('Simulated error coming from DevTools');\n          var lane = pickArbitraryLane(renderLanes);\n          workInProgress.lanes = mergeLanes(workInProgress.lanes, lane); // Schedule the error boundary to re-render using updated state\n\n          var update = createClassErrorUpdate(workInProgress, createCapturedValueAtFiber(error$1, workInProgress), lane);\n          enqueueCapturedUpdate(workInProgress, update);\n          break;\n        }\n    }\n\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentNameFromType(Component));\n      }\n    }\n  } // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n\n\n  var hasContext;\n\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n\n  prepareToReadContext(workInProgress, renderLanes);\n  var instance = workInProgress.stateNode;\n  var shouldUpdate;\n\n  if (instance === null) {\n    resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); // In the initial pass we might need to construct the instance.\n\n    constructClassInstance(workInProgress, Component, nextProps);\n    mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n    shouldUpdate = true;\n  } else if (current === null) {\n    // In a resume, we'll already have an instance we can reuse.\n    shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderLanes);\n  } else {\n    shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);\n  }\n\n  var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);\n\n  {\n    var inst = workInProgress.stateNode;\n\n    if (shouldUpdate && inst.props !== nextProps) {\n      if (!didWarnAboutReassigningProps) {\n        error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentNameFromFiber(workInProgress) || 'a component');\n      }\n\n      didWarnAboutReassigningProps = true;\n    }\n  }\n\n  return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) {\n  // Refs should update even if shouldComponentUpdate returns false\n  markRef(current, workInProgress);\n  var didCaptureError = (workInProgress.flags & DidCapture) !== NoFlags;\n\n  if (!shouldUpdate && !didCaptureError) {\n    // Context providers should defer to sCU for rendering\n    if (hasContext) {\n      invalidateContextProvider(workInProgress, Component, false);\n    }\n\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n  }\n\n  var instance = workInProgress.stateNode; // Rerender\n\n  ReactCurrentOwner$1.current = workInProgress;\n  var nextChildren;\n\n  if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n    // If we captured an error, but getDerivedStateFromError is not defined,\n    // unmount all the children. componentDidCatch will schedule an update to\n    // re-render a fallback. This is temporary until we migrate everyone to\n    // the new API.\n    // TODO: Warn in a future release.\n    nextChildren = null;\n\n    {\n      stopProfilerTimerIfRunning();\n    }\n  } else {\n    {\n      markComponentRenderStarted(workInProgress);\n    }\n\n    {\n      setIsRendering(true);\n      nextChildren = instance.render();\n\n      if ( workInProgress.mode & StrictLegacyMode) {\n        setIsStrictModeForDevtools(true);\n\n        try {\n          instance.render();\n        } finally {\n          setIsStrictModeForDevtools(false);\n        }\n      }\n\n      setIsRendering(false);\n    }\n\n    {\n      markComponentRenderStopped();\n    }\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n\n  if (current !== null && didCaptureError) {\n    // If we're recovering from an error, reconcile without reusing any of\n    // the existing children. Conceptually, the normal children and the children\n    // that are shown on error are two different sets, so we shouldn't reuse\n    // normal children even if their identities match.\n    forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes);\n  } else {\n    reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  } // Memoize state using the values we just used to render.\n  // TODO: Restructure so we never read values from the instance.\n\n\n  workInProgress.memoizedState = instance.state; // The context might have changed so we need to recalculate it.\n\n  if (hasContext) {\n    invalidateContextProvider(workInProgress, Component, true);\n  }\n\n  return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n  var root = workInProgress.stateNode;\n\n  if (root.pendingContext) {\n    pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n  } else if (root.context) {\n    // Should always be set\n    pushTopLevelContextObject(workInProgress, root.context, false);\n  }\n\n  pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderLanes) {\n  pushHostRootContext(workInProgress);\n\n  if (current === null) {\n    throw new Error('Should have a current fiber. This is a bug in React.');\n  }\n\n  var nextProps = workInProgress.pendingProps;\n  var prevState = workInProgress.memoizedState;\n  var prevChildren = prevState.element;\n  cloneUpdateQueue(current, workInProgress);\n  processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n  var nextState = workInProgress.memoizedState;\n  var root = workInProgress.stateNode;\n  // being called \"element\".\n\n\n  var nextChildren = nextState.element;\n\n  if ( prevState.isDehydrated) {\n    // This is a hydration root whose shell has not yet hydrated. We should\n    // attempt to hydrate.\n    // Flip isDehydrated to false to indicate that when this render\n    // finishes, the root will no longer be dehydrated.\n    var overrideState = {\n      element: nextChildren,\n      isDehydrated: false,\n      cache: nextState.cache,\n      pendingSuspenseBoundaries: nextState.pendingSuspenseBoundaries,\n      transitions: nextState.transitions\n    };\n    var updateQueue = workInProgress.updateQueue; // `baseState` can always be the last state because the root doesn't\n    // have reducer functions so it doesn't need rebasing.\n\n    updateQueue.baseState = overrideState;\n    workInProgress.memoizedState = overrideState;\n\n    if (workInProgress.flags & ForceClientRender) {\n      // Something errored during a previous attempt to hydrate the shell, so we\n      // forced a client render.\n      var recoverableError = createCapturedValueAtFiber(new Error('There was an error while hydrating. Because the error happened outside ' + 'of a Suspense boundary, the entire root will switch to ' + 'client rendering.'), workInProgress);\n      return mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, recoverableError);\n    } else if (nextChildren !== prevChildren) {\n      var _recoverableError = createCapturedValueAtFiber(new Error('This root received an early update, before anything was able ' + 'hydrate. Switched the entire root to client rendering.'), workInProgress);\n\n      return mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, _recoverableError);\n    } else {\n      // The outermost shell has not hydrated yet. Start hydrating.\n      enterHydrationState(workInProgress);\n\n      var child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n      workInProgress.child = child;\n      var node = child;\n\n      while (node) {\n        // Mark each child as hydrating. This is a fast path to know whether this\n        // tree is part of a hydrating tree. This is used to determine if a child\n        // node has fully mounted yet, and for scheduling event replaying.\n        // Conceptually this is similar to Placement in that a new subtree is\n        // inserted into the React tree here. It just happens to not need DOM\n        // mutations because it already exists.\n        node.flags = node.flags & ~Placement | Hydrating;\n        node = node.sibling;\n      }\n    }\n  } else {\n    // Root is not dehydrated. Either this is a client-only root, or it\n    // already hydrated.\n    resetHydrationState();\n\n    if (nextChildren === prevChildren) {\n      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n    }\n\n    reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  }\n\n  return workInProgress.child;\n}\n\nfunction mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, recoverableError) {\n  // Revert to client rendering.\n  resetHydrationState();\n  queueHydrationError(recoverableError);\n  workInProgress.flags |= ForceClientRender;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderLanes) {\n  pushHostContext(workInProgress);\n\n  if (current === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n\n  var type = workInProgress.type;\n  var nextProps = workInProgress.pendingProps;\n  var prevProps = current !== null ? current.memoizedProps : null;\n  var nextChildren = nextProps.children;\n  var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n  if (isDirectTextChild) {\n    // We special case a direct text child of a host node. This is a common\n    // case. We won't handle it as a reified child. We will instead handle\n    // this in the host environment that also has access to this prop. That\n    // avoids allocating another HostText fiber and traversing it.\n    nextChildren = null;\n  } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n    // If we're switching from a direct text child to a normal child, or to\n    // empty, we need to schedule the text content to be reset.\n    workInProgress.flags |= ContentReset;\n  }\n\n  markRef(current, workInProgress);\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n  if (current === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  } // Nothing to do here. This is terminal. We'll do the completion step\n  // immediately after.\n\n\n  return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, renderLanes) {\n  resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress);\n  var props = workInProgress.pendingProps;\n  var lazyComponent = elementType;\n  var payload = lazyComponent._payload;\n  var init = lazyComponent._init;\n  var Component = init(payload); // Store the unwrapped component in the type.\n\n  workInProgress.type = Component;\n  var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n  var resolvedProps = resolveDefaultProps(Component, props);\n  var child;\n\n  switch (resolvedTag) {\n    case FunctionComponent:\n      {\n        {\n          validateFunctionComponentInDev(workInProgress, Component);\n          workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n        }\n\n        child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n        return child;\n      }\n\n    case ClassComponent:\n      {\n        {\n          workInProgress.type = Component = resolveClassForHotReloading(Component);\n        }\n\n        child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n        return child;\n      }\n\n    case ForwardRef:\n      {\n        {\n          workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n        }\n\n        child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderLanes);\n        return child;\n      }\n\n    case MemoComponent:\n      {\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = Component.propTypes;\n\n            if (outerPropTypes) {\n              checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only\n              'prop', getComponentNameFromType(Component));\n            }\n          }\n        }\n\n        child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n        renderLanes);\n        return child;\n      }\n  }\n\n  var hint = '';\n\n  {\n    if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n      hint = ' Did you wrap a component in React.lazy() more than once?';\n    }\n  } // This message intentionally doesn't mention ForwardRef or MemoComponent\n  // because the fact that it's a separate type of work is an\n  // implementation detail.\n\n\n  throw new Error(\"Element type is invalid. Received a promise that resolves to: \" + Component + \". \" + (\"Lazy element type must resolve to a class or function.\" + hint));\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderLanes) {\n  resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress); // Promote the fiber to a class and try rendering again.\n\n  workInProgress.tag = ClassComponent; // The rest of this function is a fork of `updateClassComponent`\n  // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n\n  var hasContext;\n\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n\n  prepareToReadContext(workInProgress, renderLanes);\n  constructClassInstance(workInProgress, Component, nextProps);\n  mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n  return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderLanes) {\n  resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress);\n  var props = workInProgress.pendingProps;\n  var context;\n\n  {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  prepareToReadContext(workInProgress, renderLanes);\n  var value;\n  var hasId;\n\n  {\n    markComponentRenderStarted(workInProgress);\n  }\n\n  {\n    if (Component.prototype && typeof Component.prototype.render === 'function') {\n      var componentName = getComponentNameFromType(Component) || 'Unknown';\n\n      if (!didWarnAboutBadClass[componentName]) {\n        error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n        didWarnAboutBadClass[componentName] = true;\n      }\n    }\n\n    if (workInProgress.mode & StrictLegacyMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n    }\n\n    setIsRendering(true);\n    ReactCurrentOwner$1.current = workInProgress;\n    value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n    hasId = checkDidRenderIdHook();\n    setIsRendering(false);\n  }\n\n  {\n    markComponentRenderStopped();\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n\n  {\n    // Support for module components is deprecated and is removed behind a flag.\n    // Whether or not it would crash later, we want to show a good message in DEV first.\n    if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n      var _componentName = getComponentNameFromType(Component) || 'Unknown';\n\n      if (!didWarnAboutModulePatternComponent[_componentName]) {\n        error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n        didWarnAboutModulePatternComponent[_componentName] = true;\n      }\n    }\n  }\n\n  if ( // Run these checks in production only if the flag is off.\n  // Eventually we'll delete this branch altogether.\n   typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n    {\n      var _componentName2 = getComponentNameFromType(Component) || 'Unknown';\n\n      if (!didWarnAboutModulePatternComponent[_componentName2]) {\n        error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2);\n\n        didWarnAboutModulePatternComponent[_componentName2] = true;\n      }\n    } // Proceed under the assumption that this is a class instance\n\n\n    workInProgress.tag = ClassComponent; // Throw out any hooks that were used.\n\n    workInProgress.memoizedState = null;\n    workInProgress.updateQueue = null; // Push context providers early to prevent context stack mismatches.\n    // During mounting we don't know the child context yet as the instance doesn't exist.\n    // We will invalidate the child context in finishClassComponent() right after rendering.\n\n    var hasContext = false;\n\n    if (isContextProvider(Component)) {\n      hasContext = true;\n      pushContextProvider(workInProgress);\n    } else {\n      hasContext = false;\n    }\n\n    workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n    initializeUpdateQueue(workInProgress);\n    adoptClassInstance(workInProgress, value);\n    mountClassInstance(workInProgress, Component, props, renderLanes);\n    return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n  } else {\n    // Proceed under the assumption that this is a function component\n    workInProgress.tag = FunctionComponent;\n\n    {\n\n      if ( workInProgress.mode & StrictLegacyMode) {\n        setIsStrictModeForDevtools(true);\n\n        try {\n          value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n          hasId = checkDidRenderIdHook();\n        } finally {\n          setIsStrictModeForDevtools(false);\n        }\n      }\n    }\n\n    if (getIsHydrating() && hasId) {\n      pushMaterializedTreeId(workInProgress);\n    }\n\n    reconcileChildren(null, workInProgress, value, renderLanes);\n\n    {\n      validateFunctionComponentInDev(workInProgress, Component);\n    }\n\n    return workInProgress.child;\n  }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n  {\n    if (Component) {\n      if (Component.childContextTypes) {\n        error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n      }\n    }\n\n    if (workInProgress.ref !== null) {\n      var info = '';\n      var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n      if (ownerName) {\n        info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n      }\n\n      var warningKey = ownerName || '';\n      var debugSource = workInProgress._debugSource;\n\n      if (debugSource) {\n        warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n      }\n\n      if (!didWarnAboutFunctionRefs[warningKey]) {\n        didWarnAboutFunctionRefs[warningKey] = true;\n\n        error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n      }\n    }\n\n    if (typeof Component.getDerivedStateFromProps === 'function') {\n      var _componentName3 = getComponentNameFromType(Component) || 'Unknown';\n\n      if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n        error('%s: Function components do not support getDerivedStateFromProps.', _componentName3);\n\n        didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n      }\n    }\n\n    if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n      var _componentName4 = getComponentNameFromType(Component) || 'Unknown';\n\n      if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n        error('%s: Function components do not support contextType.', _componentName4);\n\n        didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n      }\n    }\n  }\n}\n\nvar SUSPENDED_MARKER = {\n  dehydrated: null,\n  treeContext: null,\n  retryLane: NoLane\n};\n\nfunction mountSuspenseOffscreenState(renderLanes) {\n  return {\n    baseLanes: renderLanes,\n    cachePool: getSuspendedCache(),\n    transitions: null\n  };\n}\n\nfunction updateSuspenseOffscreenState(prevOffscreenState, renderLanes) {\n  var cachePool = null;\n\n  return {\n    baseLanes: mergeLanes(prevOffscreenState.baseLanes, renderLanes),\n    cachePool: cachePool,\n    transitions: prevOffscreenState.transitions\n  };\n} // TODO: Probably should inline this back\n\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress, renderLanes) {\n  // If we're already showing a fallback, there are cases where we need to\n  // remain on that fallback regardless of whether the content has resolved.\n  // For example, SuspenseList coordinates when nested content appears.\n  if (current !== null) {\n    var suspenseState = current.memoizedState;\n\n    if (suspenseState === null) {\n      // Currently showing content. Don't hide it, even if ForceSuspenseFallback\n      // is true. More precise name might be \"ForceRemainSuspenseFallback\".\n      // Note: This is a factoring smell. Can't remain on a fallback if there's\n      // no fallback to remain on.\n      return false;\n    }\n  } // Not currently showing content. Consult the Suspense context.\n\n\n  return hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n}\n\nfunction getRemainingWorkInPrimaryTree(current, renderLanes) {\n  // TODO: Should not remove render lanes that were pinged during this render\n  return removeLanes(current.childLanes, renderLanes);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps; // This is used by DevTools to force a boundary to suspend.\n\n  {\n    if (shouldSuspend(workInProgress)) {\n      workInProgress.flags |= DidCapture;\n    }\n  }\n\n  var suspenseContext = suspenseStackCursor.current;\n  var showFallback = false;\n  var didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;\n\n  if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n    // Something in this boundary's subtree already suspended. Switch to\n    // rendering the fallback children.\n    showFallback = true;\n    workInProgress.flags &= ~DidCapture;\n  } else {\n    // Attempting the main content\n    if (current === null || current.memoizedState !== null) {\n      // This is a new mount or this boundary is already showing a fallback state.\n      // Mark this subtree context as having at least one invisible parent that could\n      // handle the fallback state.\n      // Avoided boundaries are not considered since they cannot handle preferred fallback states.\n      {\n        suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n      }\n    }\n  }\n\n  suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n  pushSuspenseContext(workInProgress, suspenseContext); // OK, the next part is confusing. We're about to reconcile the Suspense\n  // boundary's children. This involves some custom reconciliation logic. Two\n  // main reasons this is so complicated.\n  //\n  // First, Legacy Mode has different semantics for backwards compatibility. The\n  // primary tree will commit in an inconsistent state, so when we do the\n  // second pass to render the fallback, we do some exceedingly, uh, clever\n  // hacks to make that not totally break. Like transferring effects and\n  // deletions from hidden tree. In Concurrent Mode, it's much simpler,\n  // because we bailout on the primary tree completely and leave it in its old\n  // state, no effects. Same as what we do for Offscreen (except that\n  // Offscreen doesn't have the first render pass).\n  //\n  // Second is hydration. During hydration, the Suspense fiber has a slightly\n  // different layout, where the child points to a dehydrated fragment, which\n  // contains the DOM rendered by the server.\n  //\n  // Third, even if you set all that aside, Suspense is like error boundaries in\n  // that we first we try to render one tree, and if that fails, we render again\n  // and switch to a different tree. Like a try/catch block. So we have to track\n  // which branch we're currently rendering. Ideally we would model this using\n  // a stack.\n\n  if (current === null) {\n    // Initial mount\n    // Special path for hydration\n    // If we're currently hydrating, try to hydrate this boundary.\n    tryToClaimNextHydratableInstance(workInProgress); // This could've been a dehydrated suspense component.\n\n    var suspenseState = workInProgress.memoizedState;\n\n    if (suspenseState !== null) {\n      var dehydrated = suspenseState.dehydrated;\n\n      if (dehydrated !== null) {\n        return mountDehydratedSuspenseComponent(workInProgress, dehydrated);\n      }\n    }\n\n    var nextPrimaryChildren = nextProps.children;\n    var nextFallbackChildren = nextProps.fallback;\n\n    if (showFallback) {\n      var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n      var primaryChildFragment = workInProgress.child;\n      primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n      workInProgress.memoizedState = SUSPENDED_MARKER;\n\n      return fallbackFragment;\n    } else {\n      return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n    }\n  } else {\n    // This is an update.\n    // Special path for hydration\n    var prevState = current.memoizedState;\n\n    if (prevState !== null) {\n      var _dehydrated = prevState.dehydrated;\n\n      if (_dehydrated !== null) {\n        return updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, _dehydrated, prevState, renderLanes);\n      }\n    }\n\n    if (showFallback) {\n      var _nextFallbackChildren = nextProps.fallback;\n      var _nextPrimaryChildren = nextProps.children;\n      var fallbackChildFragment = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren, _nextFallbackChildren, renderLanes);\n      var _primaryChildFragment2 = workInProgress.child;\n      var prevOffscreenState = current.child.memoizedState;\n      _primaryChildFragment2.memoizedState = prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(prevOffscreenState, renderLanes);\n\n      _primaryChildFragment2.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes);\n      workInProgress.memoizedState = SUSPENDED_MARKER;\n      return fallbackChildFragment;\n    } else {\n      var _nextPrimaryChildren2 = nextProps.children;\n\n      var _primaryChildFragment3 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren2, renderLanes);\n\n      workInProgress.memoizedState = null;\n      return _primaryChildFragment3;\n    }\n  }\n}\n\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren, renderLanes) {\n  var mode = workInProgress.mode;\n  var primaryChildProps = {\n    mode: 'visible',\n    children: primaryChildren\n  };\n  var primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, mode);\n  primaryChildFragment.return = workInProgress;\n  workInProgress.child = primaryChildFragment;\n  return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackChildren(workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n  var mode = workInProgress.mode;\n  var progressedPrimaryFragment = workInProgress.child;\n  var primaryChildProps = {\n    mode: 'hidden',\n    children: primaryChildren\n  };\n  var primaryChildFragment;\n  var fallbackChildFragment;\n\n  if ((mode & ConcurrentMode) === NoMode && progressedPrimaryFragment !== null) {\n    // In legacy mode, we commit the primary tree as if it successfully\n    // completed, even though it's in an inconsistent state.\n    primaryChildFragment = progressedPrimaryFragment;\n    primaryChildFragment.childLanes = NoLanes;\n    primaryChildFragment.pendingProps = primaryChildProps;\n\n    if ( workInProgress.mode & ProfileMode) {\n      // Reset the durations from the first pass so they aren't included in the\n      // final amounts. This seems counterintuitive, since we're intentionally\n      // not measuring part of the render phase, but this makes it match what we\n      // do in Concurrent Mode.\n      primaryChildFragment.actualDuration = 0;\n      primaryChildFragment.actualStartTime = -1;\n      primaryChildFragment.selfBaseDuration = 0;\n      primaryChildFragment.treeBaseDuration = 0;\n    }\n\n    fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n  } else {\n    primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, mode);\n    fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n  }\n\n  primaryChildFragment.return = workInProgress;\n  fallbackChildFragment.return = workInProgress;\n  primaryChildFragment.sibling = fallbackChildFragment;\n  workInProgress.child = primaryChildFragment;\n  return fallbackChildFragment;\n}\n\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode, renderLanes) {\n  // The props argument to `createFiberFromOffscreen` is `any` typed, so we use\n  // this wrapper function to constrain it.\n  return createFiberFromOffscreen(offscreenProps, mode, NoLanes, null);\n}\n\nfunction updateWorkInProgressOffscreenFiber(current, offscreenProps) {\n  // The props argument to `createWorkInProgress` is `any` typed, so we use this\n  // wrapper function to constrain it.\n  return createWorkInProgress(current, offscreenProps);\n}\n\nfunction updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) {\n  var currentPrimaryChildFragment = current.child;\n  var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n  var primaryChildFragment = updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment, {\n    mode: 'visible',\n    children: primaryChildren\n  });\n\n  if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n    primaryChildFragment.lanes = renderLanes;\n  }\n\n  primaryChildFragment.return = workInProgress;\n  primaryChildFragment.sibling = null;\n\n  if (currentFallbackChildFragment !== null) {\n    // Delete the fallback child fragment\n    var deletions = workInProgress.deletions;\n\n    if (deletions === null) {\n      workInProgress.deletions = [currentFallbackChildFragment];\n      workInProgress.flags |= ChildDeletion;\n    } else {\n      deletions.push(currentFallbackChildFragment);\n    }\n  }\n\n  workInProgress.child = primaryChildFragment;\n  return primaryChildFragment;\n}\n\nfunction updateSuspenseFallbackChildren(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n  var mode = workInProgress.mode;\n  var currentPrimaryChildFragment = current.child;\n  var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n  var primaryChildProps = {\n    mode: 'hidden',\n    children: primaryChildren\n  };\n  var primaryChildFragment;\n\n  if ( // In legacy mode, we commit the primary tree as if it successfully\n  // completed, even though it's in an inconsistent state.\n  (mode & ConcurrentMode) === NoMode && // Make sure we're on the second pass, i.e. the primary child fragment was\n  // already cloned. In legacy mode, the only case where this isn't true is\n  // when DevTools forces us to display a fallback; we skip the first render\n  // pass entirely and go straight to rendering the fallback. (In Concurrent\n  // Mode, SuspenseList can also trigger this scenario, but this is a legacy-\n  // only codepath.)\n  workInProgress.child !== currentPrimaryChildFragment) {\n    var progressedPrimaryFragment = workInProgress.child;\n    primaryChildFragment = progressedPrimaryFragment;\n    primaryChildFragment.childLanes = NoLanes;\n    primaryChildFragment.pendingProps = primaryChildProps;\n\n    if ( workInProgress.mode & ProfileMode) {\n      // Reset the durations from the first pass so they aren't included in the\n      // final amounts. This seems counterintuitive, since we're intentionally\n      // not measuring part of the render phase, but this makes it match what we\n      // do in Concurrent Mode.\n      primaryChildFragment.actualDuration = 0;\n      primaryChildFragment.actualStartTime = -1;\n      primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration;\n      primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration;\n    } // The fallback fiber was added as a deletion during the first pass.\n    // However, since we're going to remain on the fallback, we no longer want\n    // to delete it.\n\n\n    workInProgress.deletions = null;\n  } else {\n    primaryChildFragment = updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment, primaryChildProps); // Since we're reusing a current tree, we need to reuse the flags, too.\n    // (We don't do this in legacy mode, because in legacy mode we don't re-use\n    // the current tree; see previous branch.)\n\n    primaryChildFragment.subtreeFlags = currentPrimaryChildFragment.subtreeFlags & StaticMask;\n  }\n\n  var fallbackChildFragment;\n\n  if (currentFallbackChildFragment !== null) {\n    fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren);\n  } else {\n    fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null); // Needs a placement effect because the parent (the Suspense boundary) already\n    // mounted but this is a new fiber.\n\n    fallbackChildFragment.flags |= Placement;\n  }\n\n  fallbackChildFragment.return = workInProgress;\n  primaryChildFragment.return = workInProgress;\n  primaryChildFragment.sibling = fallbackChildFragment;\n  workInProgress.child = primaryChildFragment;\n  return fallbackChildFragment;\n}\n\nfunction retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, recoverableError) {\n  // Falling back to client rendering. Because this has performance\n  // implications, it's considered a recoverable error, even though the user\n  // likely won't observe anything wrong with the UI.\n  //\n  // The error is passed in as an argument to enforce that every caller provide\n  // a custom message, or explicitly opt out (currently the only path that opts\n  // out is legacy mode; every concurrent path provides an error).\n  if (recoverableError !== null) {\n    queueHydrationError(recoverableError);\n  } // This will add the old fiber to the deletion list\n\n\n  reconcileChildFibers(workInProgress, current.child, null, renderLanes); // We're now not suspended nor dehydrated.\n\n  var nextProps = workInProgress.pendingProps;\n  var primaryChildren = nextProps.children;\n  var primaryChildFragment = mountSuspensePrimaryChildren(workInProgress, primaryChildren); // Needs a placement effect because the parent (the Suspense boundary) already\n  // mounted but this is a new fiber.\n\n  primaryChildFragment.flags |= Placement;\n  workInProgress.memoizedState = null;\n  return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackAfterRetryWithoutHydrating(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n  var fiberMode = workInProgress.mode;\n  var primaryChildProps = {\n    mode: 'visible',\n    children: primaryChildren\n  };\n  var primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, fiberMode);\n  var fallbackChildFragment = createFiberFromFragment(fallbackChildren, fiberMode, renderLanes, null); // Needs a placement effect because the parent (the Suspense\n  // boundary) already mounted but this is a new fiber.\n\n  fallbackChildFragment.flags |= Placement;\n  primaryChildFragment.return = workInProgress;\n  fallbackChildFragment.return = workInProgress;\n  primaryChildFragment.sibling = fallbackChildFragment;\n  workInProgress.child = primaryChildFragment;\n\n  if ((workInProgress.mode & ConcurrentMode) !== NoMode) {\n    // We will have dropped the effect list which contains the\n    // deletion. We need to reconcile to delete the current child.\n    reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n  }\n\n  return fallbackChildFragment;\n}\n\nfunction mountDehydratedSuspenseComponent(workInProgress, suspenseInstance, renderLanes) {\n  // During the first pass, we'll bail out and not drill into the children.\n  // Instead, we'll leave the content in place and try to hydrate it later.\n  if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n    {\n      error('Cannot hydrate Suspense in legacy mode. Switch from ' + 'ReactDOM.hydrate(element, container) to ' + 'ReactDOMClient.hydrateRoot(container, <App />)' + '.render(element) or remove the Suspense components from ' + 'the server rendered components.');\n    }\n\n    workInProgress.lanes = laneToLanes(SyncLane);\n  } else if (isSuspenseInstanceFallback(suspenseInstance)) {\n    // This is a client-only boundary. Since we won't get any content from the server\n    // for this, we need to schedule that at a higher priority based on when it would\n    // have timed out. In theory we could render it in this pass but it would have the\n    // wrong priority associated with it and will prevent hydration of parent path.\n    // Instead, we'll leave work left on it to render it in a separate commit.\n    // TODO This time should be the time at which the server rendered response that is\n    // a parent to this boundary was displayed. However, since we currently don't have\n    // a protocol to transfer that time, we'll just estimate it by using the current\n    // time. This will mean that Suspense timeouts are slightly shifted to later than\n    // they should be.\n    // Schedule a normal pri update to render this content.\n    workInProgress.lanes = laneToLanes(DefaultHydrationLane);\n  } else {\n    // We'll continue hydrating the rest at offscreen priority since we'll already\n    // be showing the right content coming from the server, it is no rush.\n    workInProgress.lanes = laneToLanes(OffscreenLane);\n  }\n\n  return null;\n}\n\nfunction updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, suspenseInstance, suspenseState, renderLanes) {\n  if (!didSuspend) {\n    // This is the first render pass. Attempt to hydrate.\n    // We should never be hydrating at this point because it is the first pass,\n    // but after we've already committed once.\n    warnIfHydrating();\n\n    if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n      return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, // TODO: When we delete legacy mode, we should make this error argument\n      // required — every concurrent mode path that causes hydration to\n      // de-opt to client rendering should have an error message.\n      null);\n    }\n\n    if (isSuspenseInstanceFallback(suspenseInstance)) {\n      // This boundary is in a permanent fallback state. In this case, we'll never\n      // get an update and we'll never be able to hydrate the final content. Let's just try the\n      // client side render instead.\n      var digest, message, stack;\n\n      {\n        var _getSuspenseInstanceF = getSuspenseInstanceFallbackErrorDetails(suspenseInstance);\n\n        digest = _getSuspenseInstanceF.digest;\n        message = _getSuspenseInstanceF.message;\n        stack = _getSuspenseInstanceF.stack;\n      }\n\n      var error;\n\n      if (message) {\n        // eslint-disable-next-line react-internal/prod-error-codes\n        error = new Error(message);\n      } else {\n        error = new Error('The server could not finish this Suspense boundary, likely ' + 'due to an error during server rendering. Switched to ' + 'client rendering.');\n      }\n\n      var capturedValue = createCapturedValue(error, digest, stack);\n      return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, capturedValue);\n    }\n    // any context has changed, we need to treat is as if the input might have changed.\n\n\n    var hasContextChanged = includesSomeLane(renderLanes, current.childLanes);\n\n    if (didReceiveUpdate || hasContextChanged) {\n      // This boundary has changed since the first render. This means that we are now unable to\n      // hydrate it. We might still be able to hydrate it using a higher priority lane.\n      var root = getWorkInProgressRoot();\n\n      if (root !== null) {\n        var attemptHydrationAtLane = getBumpedLaneForHydration(root, renderLanes);\n\n        if (attemptHydrationAtLane !== NoLane && attemptHydrationAtLane !== suspenseState.retryLane) {\n          // Intentionally mutating since this render will get interrupted. This\n          // is one of the very rare times where we mutate the current tree\n          // during the render phase.\n          suspenseState.retryLane = attemptHydrationAtLane; // TODO: Ideally this would inherit the event time of the current render\n\n          var eventTime = NoTimestamp;\n          enqueueConcurrentRenderForLane(current, attemptHydrationAtLane);\n          scheduleUpdateOnFiber(root, current, attemptHydrationAtLane, eventTime);\n        }\n      } // If we have scheduled higher pri work above, this will probably just abort the render\n      // since we now have higher priority work, but in case it doesn't, we need to prepare to\n      // render something, if we time out. Even if that requires us to delete everything and\n      // skip hydration.\n      // Delay having to do this as long as the suspense timeout allows us.\n\n\n      renderDidSuspendDelayIfPossible();\n\n      var _capturedValue = createCapturedValue(new Error('This Suspense boundary received an update before it finished ' + 'hydrating. This caused the boundary to switch to client rendering. ' + 'The usual way to fix this is to wrap the original update ' + 'in startTransition.'));\n\n      return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, _capturedValue);\n    } else if (isSuspenseInstancePending(suspenseInstance)) {\n      // This component is still pending more data from the server, so we can't hydrate its\n      // content. We treat it as if this component suspended itself. It might seem as if\n      // we could just try to render it client-side instead. However, this will perform a\n      // lot of unnecessary work and is unlikely to complete since it often will suspend\n      // on missing data anyway. Additionally, the server might be able to render more\n      // than we can on the client yet. In that case we'd end up with more fallback states\n      // on the client than if we just leave it alone. If the server times out or errors\n      // these should update this boundary to the permanent Fallback state instead.\n      // Mark it as having captured (i.e. suspended).\n      workInProgress.flags |= DidCapture; // Leave the child in place. I.e. the dehydrated fragment.\n\n      workInProgress.child = current.child; // Register a callback to retry this boundary once the server has sent the result.\n\n      var retry = retryDehydratedSuspenseBoundary.bind(null, current);\n      registerSuspenseInstanceRetry(suspenseInstance, retry);\n      return null;\n    } else {\n      // This is the first attempt.\n      reenterHydrationStateFromDehydratedSuspenseInstance(workInProgress, suspenseInstance, suspenseState.treeContext);\n      var primaryChildren = nextProps.children;\n      var primaryChildFragment = mountSuspensePrimaryChildren(workInProgress, primaryChildren); // Mark the children as hydrating. This is a fast path to know whether this\n      // tree is part of a hydrating tree. This is used to determine if a child\n      // node has fully mounted yet, and for scheduling event replaying.\n      // Conceptually this is similar to Placement in that a new subtree is\n      // inserted into the React tree here. It just happens to not need DOM\n      // mutations because it already exists.\n\n      primaryChildFragment.flags |= Hydrating;\n      return primaryChildFragment;\n    }\n  } else {\n    // This is the second render pass. We already attempted to hydrated, but\n    // something either suspended or errored.\n    if (workInProgress.flags & ForceClientRender) {\n      // Something errored during hydration. Try again without hydrating.\n      workInProgress.flags &= ~ForceClientRender;\n\n      var _capturedValue2 = createCapturedValue(new Error('There was an error while hydrating this Suspense boundary. ' + 'Switched to client rendering.'));\n\n      return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, _capturedValue2);\n    } else if (workInProgress.memoizedState !== null) {\n      // Something suspended and we should still be in dehydrated mode.\n      // Leave the existing child in place.\n      workInProgress.child = current.child; // The dehydrated completion pass expects this flag to be there\n      // but the normal suspense pass doesn't.\n\n      workInProgress.flags |= DidCapture;\n      return null;\n    } else {\n      // Suspended but we should no longer be in dehydrated mode.\n      // Therefore we now have to render the fallback.\n      var nextPrimaryChildren = nextProps.children;\n      var nextFallbackChildren = nextProps.fallback;\n      var fallbackChildFragment = mountSuspenseFallbackAfterRetryWithoutHydrating(current, workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n      var _primaryChildFragment4 = workInProgress.child;\n      _primaryChildFragment4.memoizedState = mountSuspenseOffscreenState(renderLanes);\n      workInProgress.memoizedState = SUSPENDED_MARKER;\n      return fallbackChildFragment;\n    }\n  }\n}\n\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n  fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n  var alternate = fiber.alternate;\n\n  if (alternate !== null) {\n    alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n  }\n\n  scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderLanes) {\n  // Mark any Suspense boundaries with fallbacks as having work to do.\n  // If they were previously forced into fallbacks, they may now be able\n  // to unblock.\n  var node = firstChild;\n\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n\n      if (state !== null) {\n        scheduleSuspenseWorkOnFiber(node, renderLanes, workInProgress);\n      }\n    } else if (node.tag === SuspenseListComponent) {\n      // If the tail is hidden there might not be an Suspense boundaries\n      // to schedule work on. In this case we have to schedule it on the\n      // list itself.\n      // We don't have to traverse to the children of the list since\n      // the list will propagate the change when it rerenders.\n      scheduleSuspenseWorkOnFiber(node, renderLanes, workInProgress);\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === workInProgress) {\n      return;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === workInProgress) {\n        return;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction findLastContentRow(firstChild) {\n  // This is going to find the last row among these children that is already\n  // showing content on the screen, as opposed to being in fallback state or\n  // new. If a row has multiple Suspense boundaries, any of them being in the\n  // fallback state, counts as the whole row being in a fallback state.\n  // Note that the \"rows\" will be workInProgress, but any nested children\n  // will still be current since we haven't rendered them yet. The mounted\n  // order may not be the same as the new order. We use the new order.\n  var row = firstChild;\n  var lastContentRow = null;\n\n  while (row !== null) {\n    var currentRow = row.alternate; // New rows can't be content rows.\n\n    if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n      lastContentRow = row;\n    }\n\n    row = row.sibling;\n  }\n\n  return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n  {\n    if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n      didWarnAboutRevealOrder[revealOrder] = true;\n\n      if (typeof revealOrder === 'string') {\n        switch (revealOrder.toLowerCase()) {\n          case 'together':\n          case 'forwards':\n          case 'backwards':\n            {\n              error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n              break;\n            }\n\n          case 'forward':\n          case 'backward':\n            {\n              error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n              break;\n            }\n\n          default:\n            error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n            break;\n        }\n      } else {\n        error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n      }\n    }\n  }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n  {\n    if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n      if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n        didWarnAboutTailOptions[tailMode] = true;\n\n        error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n      } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n        didWarnAboutTailOptions[tailMode] = true;\n\n        error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n      }\n    }\n  }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n  {\n    var isAnArray = isArray(childSlot);\n    var isIterable = !isAnArray && typeof getIteratorFn(childSlot) === 'function';\n\n    if (isAnArray || isIterable) {\n      var type = isAnArray ? 'array' : 'iterable';\n\n      error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n  {\n    if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n      if (isArray(children)) {\n        for (var i = 0; i < children.length; i++) {\n          if (!validateSuspenseListNestedChild(children[i], i)) {\n            return;\n          }\n        }\n      } else {\n        var iteratorFn = getIteratorFn(children);\n\n        if (typeof iteratorFn === 'function') {\n          var childrenIterator = iteratorFn.call(children);\n\n          if (childrenIterator) {\n            var step = childrenIterator.next();\n            var _i = 0;\n\n            for (; !step.done; step = childrenIterator.next()) {\n              if (!validateSuspenseListNestedChild(step.value, _i)) {\n                return;\n              }\n\n              _i++;\n            }\n          }\n        } else {\n          error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n        }\n      }\n    }\n  }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode) {\n  var renderState = workInProgress.memoizedState;\n\n  if (renderState === null) {\n    workInProgress.memoizedState = {\n      isBackwards: isBackwards,\n      rendering: null,\n      renderingStartTime: 0,\n      last: lastContentRow,\n      tail: tail,\n      tailMode: tailMode\n    };\n  } else {\n    // We can reuse the existing object from previous renders.\n    renderState.isBackwards = isBackwards;\n    renderState.rendering = null;\n    renderState.renderingStartTime = 0;\n    renderState.last = lastContentRow;\n    renderState.tail = tail;\n    renderState.tailMode = tailMode;\n  }\n} // This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps;\n  var revealOrder = nextProps.revealOrder;\n  var tailMode = nextProps.tail;\n  var newChildren = nextProps.children;\n  validateRevealOrder(revealOrder);\n  validateTailOptions(tailMode, revealOrder);\n  validateSuspenseListChildren(newChildren, revealOrder);\n  reconcileChildren(current, workInProgress, newChildren, renderLanes);\n  var suspenseContext = suspenseStackCursor.current;\n  var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n  if (shouldForceFallback) {\n    suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n    workInProgress.flags |= DidCapture;\n  } else {\n    var didSuspendBefore = current !== null && (current.flags & DidCapture) !== NoFlags;\n\n    if (didSuspendBefore) {\n      // If we previously forced a fallback, we need to schedule work\n      // on any nested boundaries to let them know to try to render\n      // again. This is the same as context updating.\n      propagateSuspenseContextChange(workInProgress, workInProgress.child, renderLanes);\n    }\n\n    suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n  }\n\n  pushSuspenseContext(workInProgress, suspenseContext);\n\n  if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n    // In legacy mode, SuspenseList doesn't work so we just\n    // use make it a noop by treating it as the default revealOrder.\n    workInProgress.memoizedState = null;\n  } else {\n    switch (revealOrder) {\n      case 'forwards':\n        {\n          var lastContentRow = findLastContentRow(workInProgress.child);\n          var tail;\n\n          if (lastContentRow === null) {\n            // The whole list is part of the tail.\n            // TODO: We could fast path by just rendering the tail now.\n            tail = workInProgress.child;\n            workInProgress.child = null;\n          } else {\n            // Disconnect the tail rows after the content row.\n            // We're going to render them separately later.\n            tail = lastContentRow.sibling;\n            lastContentRow.sibling = null;\n          }\n\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          tail, lastContentRow, tailMode);\n          break;\n        }\n\n      case 'backwards':\n        {\n          // We're going to find the first row that has existing content.\n          // At the same time we're going to reverse the list of everything\n          // we pass in the meantime. That's going to be our tail in reverse\n          // order.\n          var _tail = null;\n          var row = workInProgress.child;\n          workInProgress.child = null;\n\n          while (row !== null) {\n            var currentRow = row.alternate; // New rows can't be content rows.\n\n            if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n              // This is the beginning of the main content.\n              workInProgress.child = row;\n              break;\n            }\n\n            var nextRow = row.sibling;\n            row.sibling = _tail;\n            _tail = row;\n            row = nextRow;\n          } // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n\n\n          initSuspenseListRenderState(workInProgress, true, // isBackwards\n          _tail, null, // last\n          tailMode);\n          break;\n        }\n\n      case 'together':\n        {\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          null, // tail\n          null, // last\n          undefined);\n          break;\n        }\n\n      default:\n        {\n          // The default reveal order is the same as not having\n          // a boundary.\n          workInProgress.memoizedState = null;\n        }\n    }\n  }\n\n  return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderLanes) {\n  pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n  var nextChildren = workInProgress.pendingProps;\n\n  if (current === null) {\n    // Portals are special because we don't append the children during mount\n    // but at commit. Therefore we need to track insertions which the normal\n    // flow doesn't do during mount. This doesn't happen at the root because\n    // the root always starts with a \"current\" with a null child.\n    // TODO: Consider unifying this with how the root works.\n    workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n  } else {\n    reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  }\n\n  return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingNoValuePropOnContextProvider = false;\n\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n  var providerType = workInProgress.type;\n  var context = providerType._context;\n  var newProps = workInProgress.pendingProps;\n  var oldProps = workInProgress.memoizedProps;\n  var newValue = newProps.value;\n\n  {\n    if (!('value' in newProps)) {\n      if (!hasWarnedAboutUsingNoValuePropOnContextProvider) {\n        hasWarnedAboutUsingNoValuePropOnContextProvider = true;\n\n        error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');\n      }\n    }\n\n    var providerPropTypes = workInProgress.type.propTypes;\n\n    if (providerPropTypes) {\n      checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider');\n    }\n  }\n\n  pushProvider(workInProgress, context, newValue);\n\n  {\n    if (oldProps !== null) {\n      var oldValue = oldProps.value;\n\n      if (objectIs(oldValue, newValue)) {\n        // No change. Bailout early if children are the same.\n        if (oldProps.children === newProps.children && !hasContextChanged()) {\n          return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n        }\n      } else {\n        // The context value changed. Search for matching consumers and schedule\n        // them to update.\n        propagateContextChange(workInProgress, context, renderLanes);\n      }\n    }\n  }\n\n  var newChildren = newProps.children;\n  reconcileChildren(current, workInProgress, newChildren, renderLanes);\n  return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderLanes) {\n  var context = workInProgress.type; // The logic below for Context differs depending on PROD or DEV mode. In\n  // DEV mode, we create a separate object for Context.Consumer that acts\n  // like a proxy to Context. This proxy object adds unnecessary code in PROD\n  // so we use the old behaviour (Context.Consumer references Context) to\n  // reduce size and overhead. The separate object references context via\n  // a property called \"_context\", which also gives us the ability to check\n  // in DEV mode if this property exists or not and warn if it does not.\n\n  {\n    if (context._context === undefined) {\n      // This may be because it's a Context (rather than a Consumer).\n      // Or it may be because it's older React where they're the same thing.\n      // We only want to warn if we're sure it's a new React.\n      if (context !== context.Consumer) {\n        if (!hasWarnedAboutUsingContextAsConsumer) {\n          hasWarnedAboutUsingContextAsConsumer = true;\n\n          error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n        }\n      }\n    } else {\n      context = context._context;\n    }\n  }\n\n  var newProps = workInProgress.pendingProps;\n  var render = newProps.children;\n\n  {\n    if (typeof render !== 'function') {\n      error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n    }\n  }\n\n  prepareToReadContext(workInProgress, renderLanes);\n  var newValue = readContext(context);\n\n  {\n    markComponentRenderStarted(workInProgress);\n  }\n\n  var newChildren;\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    newChildren = render(newValue);\n    setIsRendering(false);\n  }\n\n  {\n    markComponentRenderStopped();\n  } // React DevTools reads this flag.\n\n\n  workInProgress.flags |= PerformedWork;\n  reconcileChildren(current, workInProgress, newChildren, renderLanes);\n  return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n  didReceiveUpdate = true;\n}\n\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n  if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n    if (current !== null) {\n      // A lazy component only mounts if it suspended inside a non-\n      // concurrent tree, in an inconsistent state. We want to treat it like\n      // a new mount, even though an empty version of it already committed.\n      // Disconnect the alternate pointers.\n      current.alternate = null;\n      workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n      workInProgress.flags |= Placement;\n    }\n  }\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n  if (current !== null) {\n    // Reuse previous dependencies\n    workInProgress.dependencies = current.dependencies;\n  }\n\n  {\n    // Don't update \"base\" render times for bailouts.\n    stopProfilerTimerIfRunning();\n  }\n\n  markSkippedUpdateLanes(workInProgress.lanes); // Check if the children have any pending work.\n\n  if (!includesSomeLane(renderLanes, workInProgress.childLanes)) {\n    // The children don't have any work either. We can skip them.\n    // TODO: Once we add back resuming, we should check if the children are\n    // a work-in-progress set. If so, we need to transfer their effects.\n    {\n      return null;\n    }\n  } // This fiber doesn't have work, but its subtree does. Clone the child\n  // fibers and continue.\n\n\n  cloneChildFibers(current, workInProgress);\n  return workInProgress.child;\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n  {\n    var returnFiber = oldWorkInProgress.return;\n\n    if (returnFiber === null) {\n      // eslint-disable-next-line react-internal/prod-error-codes\n      throw new Error('Cannot swap the root fiber.');\n    } // Disconnect from the old current.\n    // It will get deleted.\n\n\n    current.alternate = null;\n    oldWorkInProgress.alternate = null; // Connect to the new tree.\n\n    newWorkInProgress.index = oldWorkInProgress.index;\n    newWorkInProgress.sibling = oldWorkInProgress.sibling;\n    newWorkInProgress.return = oldWorkInProgress.return;\n    newWorkInProgress.ref = oldWorkInProgress.ref; // Replace the child/sibling pointers above it.\n\n    if (oldWorkInProgress === returnFiber.child) {\n      returnFiber.child = newWorkInProgress;\n    } else {\n      var prevSibling = returnFiber.child;\n\n      if (prevSibling === null) {\n        // eslint-disable-next-line react-internal/prod-error-codes\n        throw new Error('Expected parent to have a child.');\n      }\n\n      while (prevSibling.sibling !== oldWorkInProgress) {\n        prevSibling = prevSibling.sibling;\n\n        if (prevSibling === null) {\n          // eslint-disable-next-line react-internal/prod-error-codes\n          throw new Error('Expected to find the previous sibling.');\n        }\n      }\n\n      prevSibling.sibling = newWorkInProgress;\n    } // Delete the old fiber and place the new one.\n    // Since the old fiber is disconnected, we have to schedule it manually.\n\n\n    var deletions = returnFiber.deletions;\n\n    if (deletions === null) {\n      returnFiber.deletions = [current];\n      returnFiber.flags |= ChildDeletion;\n    } else {\n      deletions.push(current);\n    }\n\n    newWorkInProgress.flags |= Placement; // Restart work from the new fiber.\n\n    return newWorkInProgress;\n  }\n}\n\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n  // Before performing an early bailout, we must check if there are pending\n  // updates or context.\n  var updateLanes = current.lanes;\n\n  if (includesSomeLane(updateLanes, renderLanes)) {\n    return true;\n  } // No pending update, but because context is propagated lazily, we need\n\n  return false;\n}\n\nfunction attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes) {\n  // This fiber does not have any pending work. Bailout without entering\n  // the begin phase. There's still some bookkeeping we that needs to be done\n  // in this optimized path, mostly pushing stuff onto the stack.\n  switch (workInProgress.tag) {\n    case HostRoot:\n      pushHostRootContext(workInProgress);\n      var root = workInProgress.stateNode;\n\n      resetHydrationState();\n      break;\n\n    case HostComponent:\n      pushHostContext(workInProgress);\n      break;\n\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n\n        if (isContextProvider(Component)) {\n          pushContextProvider(workInProgress);\n        }\n\n        break;\n      }\n\n    case HostPortal:\n      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n      break;\n\n    case ContextProvider:\n      {\n        var newValue = workInProgress.memoizedProps.value;\n        var context = workInProgress.type._context;\n        pushProvider(workInProgress, context, newValue);\n        break;\n      }\n\n    case Profiler:\n      {\n        // Profiler should only call onRender when one of its descendants actually rendered.\n        var hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n        if (hasChildWork) {\n          workInProgress.flags |= Update;\n        }\n\n        {\n          // Reset effect durations for the next eventual effect phase.\n          // These are reset during render to allow the DevTools commit hook a chance to read them,\n          var stateNode = workInProgress.stateNode;\n          stateNode.effectDuration = 0;\n          stateNode.passiveEffectDuration = 0;\n        }\n      }\n\n      break;\n\n    case SuspenseComponent:\n      {\n        var state = workInProgress.memoizedState;\n\n        if (state !== null) {\n          if (state.dehydrated !== null) {\n            pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // We know that this component will suspend again because if it has\n            // been unsuspended it has committed as a resolved Suspense component.\n            // If it needs to be retried, it should have work scheduled on it.\n\n            workInProgress.flags |= DidCapture; // We should never render the children of a dehydrated boundary until we\n            // upgrade it. We return null instead of bailoutOnAlreadyFinishedWork.\n\n            return null;\n          } // If this boundary is currently timed out, we need to decide\n          // whether to retry the primary children, or to skip over it and\n          // go straight to the fallback. Check the priority of the primary\n          // child fragment.\n\n\n          var primaryChildFragment = workInProgress.child;\n          var primaryChildLanes = primaryChildFragment.childLanes;\n\n          if (includesSomeLane(renderLanes, primaryChildLanes)) {\n            // The primary children have pending work. Use the normal path\n            // to attempt to render the primary children again.\n            return updateSuspenseComponent(current, workInProgress, renderLanes);\n          } else {\n            // The primary child fragment does not have pending work marked\n            // on it\n            pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // The primary children do not have pending work with sufficient\n            // priority. Bailout.\n\n            var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n\n            if (child !== null) {\n              // The fallback children have pending work. Skip over the\n              // primary children and work on the fallback.\n              return child.sibling;\n            } else {\n              // Note: We can return `null` here because we already checked\n              // whether there were nested context consumers, via the call to\n              // `bailoutOnAlreadyFinishedWork` above.\n              return null;\n            }\n          }\n        } else {\n          pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n        }\n\n        break;\n      }\n\n    case SuspenseListComponent:\n      {\n        var didSuspendBefore = (current.flags & DidCapture) !== NoFlags;\n\n        var _hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n        if (didSuspendBefore) {\n          if (_hasChildWork) {\n            // If something was in fallback state last time, and we have all the\n            // same children then we're still in progressive loading state.\n            // Something might get unblocked by state updates or retries in the\n            // tree which will affect the tail. So we need to use the normal\n            // path to compute the correct tail.\n            return updateSuspenseListComponent(current, workInProgress, renderLanes);\n          } // If none of the children had any work, that means that none of\n          // them got retried so they'll still be blocked in the same way\n          // as before. We can fast bail out.\n\n\n          workInProgress.flags |= DidCapture;\n        } // If nothing suspended before and we're rendering the same children,\n        // then the tail doesn't matter. Anything new that suspends will work\n        // in the \"together\" mode, so we can continue from the state we had.\n\n\n        var renderState = workInProgress.memoizedState;\n\n        if (renderState !== null) {\n          // Reset to the \"together\" mode in case we've started a different\n          // update in the past but didn't complete it.\n          renderState.rendering = null;\n          renderState.tail = null;\n          renderState.lastEffect = null;\n        }\n\n        pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n        if (_hasChildWork) {\n          break;\n        } else {\n          // If none of the children had any work, that means that none of\n          // them got retried so they'll still be blocked in the same way\n          // as before. We can fast bail out.\n          return null;\n        }\n      }\n\n    case OffscreenComponent:\n    case LegacyHiddenComponent:\n      {\n        // Need to check if the tree still needs to be deferred. This is\n        // almost identical to the logic used in the normal update path,\n        // so we'll just enter that. The only difference is we'll bail out\n        // at the next level instead of this one, because the child props\n        // have not changed. Which is fine.\n        // TODO: Probably should refactor `beginWork` to split the bailout\n        // path from the normal path. I'm tempted to do a labeled break here\n        // but I won't :)\n        workInProgress.lanes = NoLanes;\n        return updateOffscreenComponent(current, workInProgress, renderLanes);\n      }\n  }\n\n  return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\n\nfunction beginWork(current, workInProgress, renderLanes) {\n  {\n    if (workInProgress._debugNeedsRemount && current !== null) {\n      // This will restart the begin phase with a new fiber.\n      return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes));\n    }\n  }\n\n  if (current !== null) {\n    var oldProps = current.memoizedProps;\n    var newProps = workInProgress.pendingProps;\n\n    if (oldProps !== newProps || hasContextChanged() || ( // Force a re-render if the implementation changed due to hot reload:\n     workInProgress.type !== current.type )) {\n      // If props or context changed, mark the fiber as having performed work.\n      // This may be unset if the props are determined to be equal later (memo).\n      didReceiveUpdate = true;\n    } else {\n      // Neither props nor legacy context changes. Check if there's a pending\n      // update or context change.\n      var hasScheduledUpdateOrContext = checkScheduledUpdateOrContext(current, renderLanes);\n\n      if (!hasScheduledUpdateOrContext && // If this is the second pass of an error or suspense boundary, there\n      // may not be work scheduled on `current`, so we check for this flag.\n      (workInProgress.flags & DidCapture) === NoFlags) {\n        // No pending updates or context. Bail out now.\n        didReceiveUpdate = false;\n        return attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes);\n      }\n\n      if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n        // This is a special case that only exists for legacy mode.\n        // See https://github.com/facebook/react/pull/19216.\n        didReceiveUpdate = true;\n      } else {\n        // An update was scheduled on this fiber, but there are no new props\n        // nor legacy context. Set this to false. If an update queue or context\n        // consumer produces a changed value, it will set this to true. Otherwise,\n        // the component will assume the children have not changed and bail out.\n        didReceiveUpdate = false;\n      }\n    }\n  } else {\n    didReceiveUpdate = false;\n\n    if (getIsHydrating() && isForkedChild(workInProgress)) {\n      // Check if this child belongs to a list of muliple children in\n      // its parent.\n      //\n      // In a true multi-threaded implementation, we would render children on\n      // parallel threads. This would represent the beginning of a new render\n      // thread for this subtree.\n      //\n      // We only use this for id generation during hydration, which is why the\n      // logic is located in this special branch.\n      var slotIndex = workInProgress.index;\n      var numberOfForks = getForksAtLevel();\n      pushTreeId(workInProgress, numberOfForks, slotIndex);\n    }\n  } // Before entering the begin phase, clear pending update priority.\n  // TODO: This assumes that we're about to evaluate the component and process\n  // the update queue. However, there's an exception: SimpleMemoComponent\n  // sometimes bails out later in the begin phase. This indicates that we should\n  // move this assignment out of the common path and into each branch.\n\n\n  workInProgress.lanes = NoLanes;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n      {\n        return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderLanes);\n      }\n\n    case LazyComponent:\n      {\n        var elementType = workInProgress.elementType;\n        return mountLazyComponent(current, workInProgress, elementType, renderLanes);\n      }\n\n    case FunctionComponent:\n      {\n        var Component = workInProgress.type;\n        var unresolvedProps = workInProgress.pendingProps;\n        var resolvedProps = workInProgress.elementType === Component ? unresolvedProps : resolveDefaultProps(Component, unresolvedProps);\n        return updateFunctionComponent(current, workInProgress, Component, resolvedProps, renderLanes);\n      }\n\n    case ClassComponent:\n      {\n        var _Component = workInProgress.type;\n        var _unresolvedProps = workInProgress.pendingProps;\n\n        var _resolvedProps = workInProgress.elementType === _Component ? _unresolvedProps : resolveDefaultProps(_Component, _unresolvedProps);\n\n        return updateClassComponent(current, workInProgress, _Component, _resolvedProps, renderLanes);\n      }\n\n    case HostRoot:\n      return updateHostRoot(current, workInProgress, renderLanes);\n\n    case HostComponent:\n      return updateHostComponent(current, workInProgress, renderLanes);\n\n    case HostText:\n      return updateHostText(current, workInProgress);\n\n    case SuspenseComponent:\n      return updateSuspenseComponent(current, workInProgress, renderLanes);\n\n    case HostPortal:\n      return updatePortalComponent(current, workInProgress, renderLanes);\n\n    case ForwardRef:\n      {\n        var type = workInProgress.type;\n        var _unresolvedProps2 = workInProgress.pendingProps;\n\n        var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n        return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderLanes);\n      }\n\n    case Fragment:\n      return updateFragment(current, workInProgress, renderLanes);\n\n    case Mode:\n      return updateMode(current, workInProgress, renderLanes);\n\n    case Profiler:\n      return updateProfiler(current, workInProgress, renderLanes);\n\n    case ContextProvider:\n      return updateContextProvider(current, workInProgress, renderLanes);\n\n    case ContextConsumer:\n      return updateContextConsumer(current, workInProgress, renderLanes);\n\n    case MemoComponent:\n      {\n        var _type2 = workInProgress.type;\n        var _unresolvedProps3 = workInProgress.pendingProps; // Resolve outer props first, then resolve inner props.\n\n        var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = _type2.propTypes;\n\n            if (outerPropTypes) {\n              checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only\n              'prop', getComponentNameFromType(_type2));\n            }\n          }\n        }\n\n        _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n        return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, renderLanes);\n      }\n\n    case SimpleMemoComponent:\n      {\n        return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, renderLanes);\n      }\n\n    case IncompleteClassComponent:\n      {\n        var _Component2 = workInProgress.type;\n        var _unresolvedProps4 = workInProgress.pendingProps;\n\n        var _resolvedProps4 = workInProgress.elementType === _Component2 ? _unresolvedProps4 : resolveDefaultProps(_Component2, _unresolvedProps4);\n\n        return mountIncompleteClassComponent(current, workInProgress, _Component2, _resolvedProps4, renderLanes);\n      }\n\n    case SuspenseListComponent:\n      {\n        return updateSuspenseListComponent(current, workInProgress, renderLanes);\n      }\n\n    case ScopeComponent:\n      {\n\n        break;\n      }\n\n    case OffscreenComponent:\n      {\n        return updateOffscreenComponent(current, workInProgress, renderLanes);\n      }\n  }\n\n  throw new Error(\"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in \" + 'React. Please file an issue.');\n}\n\nfunction markUpdate(workInProgress) {\n  // Tag the fiber with an update effect. This turns a Placement into\n  // a PlacementAndUpdate.\n  workInProgress.flags |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n  workInProgress.flags |= Ref;\n\n  {\n    workInProgress.flags |= RefStatic;\n  }\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n  // Mutation mode\n  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n\n    while (node !== null) {\n      if (node.tag === HostComponent || node.tag === HostText) {\n        appendInitialChild(parent, node.stateNode);\n      } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === workInProgress) {\n        return;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n\n        node = node.return;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n\n  updateHostContainer = function (current, workInProgress) {// Noop\n  };\n\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // If we have an alternate, that means this is an update and we need to\n    // schedule a side-effect to do the updates.\n    var oldProps = current.memoizedProps;\n\n    if (oldProps === newProps) {\n      // In mutation mode, this is sufficient for a bailout because\n      // we won't touch this node even if children changed.\n      return;\n    } // If we get updated because one of our children updated, we don't\n    // have newProps so we'll have to reuse them.\n    // TODO: Split the update API as separate for the props vs. children.\n    // Even better would be if children weren't special cased at all tho.\n\n\n    var instance = workInProgress.stateNode;\n    var currentHostContext = getHostContext(); // TODO: Experiencing an error where oldProps is null. Suggests a host\n    // component is hitting the resume path. Figure out why. Possibly\n    // related to `hidden`.\n\n    var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); // TODO: Type this specific to this type of component.\n\n    workInProgress.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n    // is a new ref we mark this as an update. All the work is done in commitWork.\n\n    if (updatePayload) {\n      markUpdate(workInProgress);\n    }\n  };\n\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // If the text differs, mark it as an update. All the work in done in commitWork.\n    if (oldText !== newText) {\n      markUpdate(workInProgress);\n    }\n  };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n  if (getIsHydrating()) {\n    // If we're hydrating, we should consume as many items as we can\n    // so we don't leave any behind.\n    return;\n  }\n\n  switch (renderState.tailMode) {\n    case 'hidden':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var tailNode = renderState.tail;\n        var lastTailNode = null;\n\n        while (tailNode !== null) {\n          if (tailNode.alternate !== null) {\n            lastTailNode = tailNode;\n          }\n\n          tailNode = tailNode.sibling;\n        } // Next we're simply going to delete all insertions after the\n        // last rendered item.\n\n\n        if (lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          renderState.tail = null;\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          lastTailNode.sibling = null;\n        }\n\n        break;\n      }\n\n    case 'collapsed':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var _tailNode = renderState.tail;\n        var _lastTailNode = null;\n\n        while (_tailNode !== null) {\n          if (_tailNode.alternate !== null) {\n            _lastTailNode = _tailNode;\n          }\n\n          _tailNode = _tailNode.sibling;\n        } // Next we're simply going to delete all insertions after the\n        // last rendered item.\n\n\n        if (_lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          if (!hasRenderedATailFallback && renderState.tail !== null) {\n            // We suspended during the head. We want to show at least one\n            // row at the tail. So we'll keep on and cut off the rest.\n            renderState.tail.sibling = null;\n          } else {\n            renderState.tail = null;\n          }\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          _lastTailNode.sibling = null;\n        }\n\n        break;\n      }\n  }\n}\n\nfunction bubbleProperties(completedWork) {\n  var didBailout = completedWork.alternate !== null && completedWork.alternate.child === completedWork.child;\n  var newChildLanes = NoLanes;\n  var subtreeFlags = NoFlags;\n\n  if (!didBailout) {\n    // Bubble up the earliest expiration time.\n    if ( (completedWork.mode & ProfileMode) !== NoMode) {\n      // In profiling mode, resetChildExpirationTime is also used to reset\n      // profiler durations.\n      var actualDuration = completedWork.actualDuration;\n      var treeBaseDuration = completedWork.selfBaseDuration;\n      var child = completedWork.child;\n\n      while (child !== null) {\n        newChildLanes = mergeLanes(newChildLanes, mergeLanes(child.lanes, child.childLanes));\n        subtreeFlags |= child.subtreeFlags;\n        subtreeFlags |= child.flags; // When a fiber is cloned, its actualDuration is reset to 0. This value will\n        // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n        // When work is done, it should bubble to the parent's actualDuration. If\n        // the fiber has not been cloned though, (meaning no work was done), then\n        // this value will reflect the amount of time spent working on a previous\n        // render. In that case it should not bubble. We determine whether it was\n        // cloned by comparing the child pointer.\n\n        actualDuration += child.actualDuration;\n        treeBaseDuration += child.treeBaseDuration;\n        child = child.sibling;\n      }\n\n      completedWork.actualDuration = actualDuration;\n      completedWork.treeBaseDuration = treeBaseDuration;\n    } else {\n      var _child = completedWork.child;\n\n      while (_child !== null) {\n        newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child.lanes, _child.childLanes));\n        subtreeFlags |= _child.subtreeFlags;\n        subtreeFlags |= _child.flags; // Update the return pointer so the tree is consistent. This is a code\n        // smell because it assumes the commit phase is never concurrent with\n        // the render phase. Will address during refactor to alternate model.\n\n        _child.return = completedWork;\n        _child = _child.sibling;\n      }\n    }\n\n    completedWork.subtreeFlags |= subtreeFlags;\n  } else {\n    // Bubble up the earliest expiration time.\n    if ( (completedWork.mode & ProfileMode) !== NoMode) {\n      // In profiling mode, resetChildExpirationTime is also used to reset\n      // profiler durations.\n      var _treeBaseDuration = completedWork.selfBaseDuration;\n      var _child2 = completedWork.child;\n\n      while (_child2 !== null) {\n        newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child2.lanes, _child2.childLanes)); // \"Static\" flags share the lifetime of the fiber/hook they belong to,\n        // so we should bubble those up even during a bailout. All the other\n        // flags have a lifetime only of a single render + commit, so we should\n        // ignore them.\n\n        subtreeFlags |= _child2.subtreeFlags & StaticMask;\n        subtreeFlags |= _child2.flags & StaticMask;\n        _treeBaseDuration += _child2.treeBaseDuration;\n        _child2 = _child2.sibling;\n      }\n\n      completedWork.treeBaseDuration = _treeBaseDuration;\n    } else {\n      var _child3 = completedWork.child;\n\n      while (_child3 !== null) {\n        newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child3.lanes, _child3.childLanes)); // \"Static\" flags share the lifetime of the fiber/hook they belong to,\n        // so we should bubble those up even during a bailout. All the other\n        // flags have a lifetime only of a single render + commit, so we should\n        // ignore them.\n\n        subtreeFlags |= _child3.subtreeFlags & StaticMask;\n        subtreeFlags |= _child3.flags & StaticMask; // Update the return pointer so the tree is consistent. This is a code\n        // smell because it assumes the commit phase is never concurrent with\n        // the render phase. Will address during refactor to alternate model.\n\n        _child3.return = completedWork;\n        _child3 = _child3.sibling;\n      }\n    }\n\n    completedWork.subtreeFlags |= subtreeFlags;\n  }\n\n  completedWork.childLanes = newChildLanes;\n  return didBailout;\n}\n\nfunction completeDehydratedSuspenseBoundary(current, workInProgress, nextState) {\n  if (hasUnhydratedTailNodes() && (workInProgress.mode & ConcurrentMode) !== NoMode && (workInProgress.flags & DidCapture) === NoFlags) {\n    warnIfUnhydratedTailNodes(workInProgress);\n    resetHydrationState();\n    workInProgress.flags |= ForceClientRender | Incomplete | ShouldCapture;\n    return false;\n  }\n\n  var wasHydrated = popHydrationState(workInProgress);\n\n  if (nextState !== null && nextState.dehydrated !== null) {\n    // We might be inside a hydration state the first time we're picking up this\n    // Suspense boundary, and also after we've reentered it for further hydration.\n    if (current === null) {\n      if (!wasHydrated) {\n        throw new Error('A dehydrated suspense component was completed without a hydrated node. ' + 'This is probably a bug in React.');\n      }\n\n      prepareToHydrateHostSuspenseInstance(workInProgress);\n      bubbleProperties(workInProgress);\n\n      {\n        if ((workInProgress.mode & ProfileMode) !== NoMode) {\n          var isTimedOutSuspense = nextState !== null;\n\n          if (isTimedOutSuspense) {\n            // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n            var primaryChildFragment = workInProgress.child;\n\n            if (primaryChildFragment !== null) {\n              // $FlowFixMe Flow doesn't support type casting in combination with the -= operator\n              workInProgress.treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n            }\n          }\n        }\n      }\n\n      return false;\n    } else {\n      // We might have reentered this boundary to hydrate it. If so, we need to reset the hydration\n      // state since we're now exiting out of it. popHydrationState doesn't do that for us.\n      resetHydrationState();\n\n      if ((workInProgress.flags & DidCapture) === NoFlags) {\n        // This boundary did not suspend so it's now hydrated and unsuspended.\n        workInProgress.memoizedState = null;\n      } // If nothing suspended, we need to schedule an effect to mark this boundary\n      // as having hydrated so events know that they're free to be invoked.\n      // It's also a signal to replay events and the suspense callback.\n      // If something suspended, schedule an effect to attach retry listeners.\n      // So we might as well always mark this.\n\n\n      workInProgress.flags |= Update;\n      bubbleProperties(workInProgress);\n\n      {\n        if ((workInProgress.mode & ProfileMode) !== NoMode) {\n          var _isTimedOutSuspense = nextState !== null;\n\n          if (_isTimedOutSuspense) {\n            // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n            var _primaryChildFragment = workInProgress.child;\n\n            if (_primaryChildFragment !== null) {\n              // $FlowFixMe Flow doesn't support type casting in combination with the -= operator\n              workInProgress.treeBaseDuration -= _primaryChildFragment.treeBaseDuration;\n            }\n          }\n        }\n      }\n\n      return false;\n    }\n  } else {\n    // Successfully completed this tree. If this was a forced client render,\n    // there may have been recoverable errors during first hydration\n    // attempt. If so, add them to a queue so we can log them in the\n    // commit phase.\n    upgradeHydrationErrorsToRecoverable(); // Fall through to normal Suspense path\n\n    return true;\n  }\n}\n\nfunction completeWork(current, workInProgress, renderLanes) {\n  var newProps = workInProgress.pendingProps; // Note: This intentionally doesn't check if we're hydrating because comparing\n  // to the current tree provider fiber is just as fast and less error-prone.\n  // Ideally we would have a special version of the work loop only\n  // for hydration.\n\n  popTreeContext(workInProgress);\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n    case LazyComponent:\n    case SimpleMemoComponent:\n    case FunctionComponent:\n    case ForwardRef:\n    case Fragment:\n    case Mode:\n    case Profiler:\n    case ContextConsumer:\n    case MemoComponent:\n      bubbleProperties(workInProgress);\n      return null;\n\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n\n        bubbleProperties(workInProgress);\n        return null;\n      }\n\n    case HostRoot:\n      {\n        var fiberRoot = workInProgress.stateNode;\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        resetWorkInProgressVersions();\n\n        if (fiberRoot.pendingContext) {\n          fiberRoot.context = fiberRoot.pendingContext;\n          fiberRoot.pendingContext = null;\n        }\n\n        if (current === null || current.child === null) {\n          // If we hydrated, pop so that we can delete any remaining children\n          // that weren't hydrated.\n          var wasHydrated = popHydrationState(workInProgress);\n\n          if (wasHydrated) {\n            // If we hydrated, then we'll need to schedule an update for\n            // the commit side-effects on the root.\n            markUpdate(workInProgress);\n          } else {\n            if (current !== null) {\n              var prevState = current.memoizedState;\n\n              if ( // Check if this is a client root\n              !prevState.isDehydrated || // Check if we reverted to client rendering (e.g. due to an error)\n              (workInProgress.flags & ForceClientRender) !== NoFlags) {\n                // Schedule an effect to clear this container at the start of the\n                // next commit. This handles the case of React rendering into a\n                // container with previous children. It's also safe to do for\n                // updates too, because current.child would only be null if the\n                // previous render was null (so the container would already\n                // be empty).\n                workInProgress.flags |= Snapshot; // If this was a forced client render, there may have been\n                // recoverable errors during first hydration attempt. If so, add\n                // them to a queue so we can log them in the commit phase.\n\n                upgradeHydrationErrorsToRecoverable();\n              }\n            }\n          }\n        }\n\n        updateHostContainer(current, workInProgress);\n        bubbleProperties(workInProgress);\n\n        return null;\n      }\n\n    case HostComponent:\n      {\n        popHostContext(workInProgress);\n        var rootContainerInstance = getRootHostContainer();\n        var type = workInProgress.type;\n\n        if (current !== null && workInProgress.stateNode != null) {\n          updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n          if (current.ref !== workInProgress.ref) {\n            markRef$1(workInProgress);\n          }\n        } else {\n          if (!newProps) {\n            if (workInProgress.stateNode === null) {\n              throw new Error('We must have new props for new mounts. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n            } // This can happen when we abort work.\n\n\n            bubbleProperties(workInProgress);\n            return null;\n          }\n\n          var currentHostContext = getHostContext(); // TODO: Move createInstance to beginWork and keep it on a context\n          // \"stack\" as the parent. Then append children as we go in beginWork\n          // or completeWork depending on whether we want to add them top->down or\n          // bottom->up. Top->down is faster in IE11.\n\n          var _wasHydrated = popHydrationState(workInProgress);\n\n          if (_wasHydrated) {\n            // TODO: Move this and createInstance step into the beginPhase\n            // to consolidate.\n            if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n              // If changes to the hydrated node need to be applied at the\n              // commit-phase we mark this as such.\n              markUpdate(workInProgress);\n            }\n          } else {\n            var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n            appendAllChildren(instance, workInProgress, false, false);\n            workInProgress.stateNode = instance; // Certain renderers require commit-time effects for initial mount.\n            // (eg DOM renderer supports auto-focus for certain elements).\n            // Make sure such renderers get scheduled for later work.\n\n            if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n              markUpdate(workInProgress);\n            }\n          }\n\n          if (workInProgress.ref !== null) {\n            // If there is a ref on a host node we need to schedule a callback\n            markRef$1(workInProgress);\n          }\n        }\n\n        bubbleProperties(workInProgress);\n        return null;\n      }\n\n    case HostText:\n      {\n        var newText = newProps;\n\n        if (current && workInProgress.stateNode != null) {\n          var oldText = current.memoizedProps; // If we have an alternate, that means this is an update and we need\n          // to schedule a side-effect to do the updates.\n\n          updateHostText$1(current, workInProgress, oldText, newText);\n        } else {\n          if (typeof newText !== 'string') {\n            if (workInProgress.stateNode === null) {\n              throw new Error('We must have new props for new mounts. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n            } // This can happen when we abort work.\n\n          }\n\n          var _rootContainerInstance = getRootHostContainer();\n\n          var _currentHostContext = getHostContext();\n\n          var _wasHydrated2 = popHydrationState(workInProgress);\n\n          if (_wasHydrated2) {\n            if (prepareToHydrateHostTextInstance(workInProgress)) {\n              markUpdate(workInProgress);\n            }\n          } else {\n            workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n          }\n        }\n\n        bubbleProperties(workInProgress);\n        return null;\n      }\n\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this\n        // to its own fiber type so that we can add other kinds of hydration\n        // boundaries that aren't associated with a Suspense tree. In anticipation\n        // of such a refactor, all the hydration logic is contained in\n        // this branch.\n\n        if (current === null || current.memoizedState !== null && current.memoizedState.dehydrated !== null) {\n          var fallthroughToNormalSuspensePath = completeDehydratedSuspenseBoundary(current, workInProgress, nextState);\n\n          if (!fallthroughToNormalSuspensePath) {\n            if (workInProgress.flags & ShouldCapture) {\n              // Special case. There were remaining unhydrated nodes. We treat\n              // this as a mismatch. Revert to client rendering.\n              return workInProgress;\n            } else {\n              // Did not finish hydrating, either because this is the initial\n              // render or because something suspended.\n              return null;\n            }\n          } // Continue with the normal Suspense path.\n\n        }\n\n        if ((workInProgress.flags & DidCapture) !== NoFlags) {\n          // Something suspended. Re-render with the fallback children.\n          workInProgress.lanes = renderLanes; // Do not reset the effect list.\n\n          if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n            transferActualDuration(workInProgress);\n          } // Don't bubble properties in this case.\n\n\n          return workInProgress;\n        }\n\n        var nextDidTimeout = nextState !== null;\n        var prevDidTimeout = current !== null && current.memoizedState !== null;\n        // a passive effect, which is when we process the transitions\n\n\n        if (nextDidTimeout !== prevDidTimeout) {\n          // an effect to toggle the subtree's visibility. When we switch from\n          // fallback -> primary, the inner Offscreen fiber schedules this effect\n          // as part of its normal complete phase. But when we switch from\n          // primary -> fallback, the inner Offscreen fiber does not have a complete\n          // phase. So we need to schedule its effect here.\n          //\n          // We also use this flag to connect/disconnect the effects, but the same\n          // logic applies: when re-connecting, the Offscreen fiber's complete\n          // phase will handle scheduling the effect. It's only when the fallback\n          // is active that we have to do anything special.\n\n\n          if (nextDidTimeout) {\n            var _offscreenFiber2 = workInProgress.child;\n            _offscreenFiber2.flags |= Visibility; // TODO: This will still suspend a synchronous tree if anything\n            // in the concurrent tree already suspended during this render.\n            // This is a known bug.\n\n            if ((workInProgress.mode & ConcurrentMode) !== NoMode) {\n              // TODO: Move this back to throwException because this is too late\n              // if this is a large tree which is common for initial loads. We\n              // don't know if we should restart a render or not until we get\n              // this marker, and this is too late.\n              // If this render already had a ping or lower pri updates,\n              // and this is the first time we know we're going to suspend we\n              // should be able to immediately restart from within throwException.\n              var hasInvisibleChildContext = current === null && (workInProgress.memoizedProps.unstable_avoidThisFallback !== true || !enableSuspenseAvoidThisFallback);\n\n              if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n                // If this was in an invisible tree or a new render, then showing\n                // this boundary is ok.\n                renderDidSuspend();\n              } else {\n                // Otherwise, we're going to have to hide content so we should\n                // suspend for longer if possible.\n                renderDidSuspendDelayIfPossible();\n              }\n            }\n          }\n        }\n\n        var wakeables = workInProgress.updateQueue;\n\n        if (wakeables !== null) {\n          // Schedule an effect to attach a retry listener to the promise.\n          // TODO: Move to passive phase\n          workInProgress.flags |= Update;\n        }\n\n        bubbleProperties(workInProgress);\n\n        {\n          if ((workInProgress.mode & ProfileMode) !== NoMode) {\n            if (nextDidTimeout) {\n              // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n              var primaryChildFragment = workInProgress.child;\n\n              if (primaryChildFragment !== null) {\n                // $FlowFixMe Flow doesn't support type casting in combination with the -= operator\n                workInProgress.treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n              }\n            }\n          }\n        }\n\n        return null;\n      }\n\n    case HostPortal:\n      popHostContainer(workInProgress);\n      updateHostContainer(current, workInProgress);\n\n      if (current === null) {\n        preparePortalMount(workInProgress.stateNode.containerInfo);\n      }\n\n      bubbleProperties(workInProgress);\n      return null;\n\n    case ContextProvider:\n      // Pop provider fiber\n      var context = workInProgress.type._context;\n      popProvider(context, workInProgress);\n      bubbleProperties(workInProgress);\n      return null;\n\n    case IncompleteClassComponent:\n      {\n        // Same as class component case. I put it down here so that the tags are\n        // sequential to ensure this switch is compiled to a jump table.\n        var _Component = workInProgress.type;\n\n        if (isContextProvider(_Component)) {\n          popContext(workInProgress);\n        }\n\n        bubbleProperties(workInProgress);\n        return null;\n      }\n\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var renderState = workInProgress.memoizedState;\n\n        if (renderState === null) {\n          // We're running in the default, \"independent\" mode.\n          // We don't do anything in this mode.\n          bubbleProperties(workInProgress);\n          return null;\n        }\n\n        var didSuspendAlready = (workInProgress.flags & DidCapture) !== NoFlags;\n        var renderedTail = renderState.rendering;\n\n        if (renderedTail === null) {\n          // We just rendered the head.\n          if (!didSuspendAlready) {\n            // This is the first pass. We need to figure out if anything is still\n            // suspended in the rendered set.\n            // If new content unsuspended, but there's still some content that\n            // didn't. Then we need to do a second pass that forces everything\n            // to keep showing their fallbacks.\n            // We might be suspended if something in this render pass suspended, or\n            // something in the previous committed pass suspended. Otherwise,\n            // there's no chance so we can skip the expensive call to\n            // findFirstSuspended.\n            var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.flags & DidCapture) === NoFlags);\n\n            if (!cannotBeSuspended) {\n              var row = workInProgress.child;\n\n              while (row !== null) {\n                var suspended = findFirstSuspended(row);\n\n                if (suspended !== null) {\n                  didSuspendAlready = true;\n                  workInProgress.flags |= DidCapture;\n                  cutOffTailIfNeeded(renderState, false); // If this is a newly suspended tree, it might not get committed as\n                  // part of the second pass. In that case nothing will subscribe to\n                  // its thenables. Instead, we'll transfer its thenables to the\n                  // SuspenseList so that it can retry if they resolve.\n                  // There might be multiple of these in the list but since we're\n                  // going to wait for all of them anyway, it doesn't really matter\n                  // which ones gets to ping. In theory we could get clever and keep\n                  // track of how many dependencies remain but it gets tricky because\n                  // in the meantime, we can add/remove/change items and dependencies.\n                  // We might bail out of the loop before finding any but that\n                  // doesn't matter since that means that the other boundaries that\n                  // we did find already has their listeners attached.\n\n                  var newThenables = suspended.updateQueue;\n\n                  if (newThenables !== null) {\n                    workInProgress.updateQueue = newThenables;\n                    workInProgress.flags |= Update;\n                  } // Rerender the whole list, but this time, we'll force fallbacks\n                  // to stay in place.\n                  // Reset the effect flags before doing the second pass since that's now invalid.\n                  // Reset the child fibers to their original state.\n\n\n                  workInProgress.subtreeFlags = NoFlags;\n                  resetChildFibers(workInProgress, renderLanes); // Set up the Suspense Context to force suspense and immediately\n                  // rerender the children.\n\n                  pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback)); // Don't bubble properties in this case.\n\n                  return workInProgress.child;\n                }\n\n                row = row.sibling;\n              }\n            }\n\n            if (renderState.tail !== null && now() > getRenderTargetTime()) {\n              // We have already passed our CPU deadline but we still have rows\n              // left in the tail. We'll just give up further attempts to render\n              // the main content and only render fallbacks.\n              workInProgress.flags |= DidCapture;\n              didSuspendAlready = true;\n              cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n              // to get it started back up to attempt the next item. While in terms\n              // of priority this work has the same priority as this current render,\n              // it's not part of the same transition once the transition has\n              // committed. If it's sync, we still want to yield so that it can be\n              // painted. Conceptually, this is really the same as pinging.\n              // We can use any RetryLane even if it's the one currently rendering\n              // since we're leaving it behind on this node.\n\n              workInProgress.lanes = SomeRetryLane;\n            }\n          } else {\n            cutOffTailIfNeeded(renderState, false);\n          } // Next we're going to render the tail.\n\n        } else {\n          // Append the rendered row to the child list.\n          if (!didSuspendAlready) {\n            var _suspended = findFirstSuspended(renderedTail);\n\n            if (_suspended !== null) {\n              workInProgress.flags |= DidCapture;\n              didSuspendAlready = true; // Ensure we transfer the update queue to the parent so that it doesn't\n              // get lost if this row ends up dropped during a second pass.\n\n              var _newThenables = _suspended.updateQueue;\n\n              if (_newThenables !== null) {\n                workInProgress.updateQueue = _newThenables;\n                workInProgress.flags |= Update;\n              }\n\n              cutOffTailIfNeeded(renderState, true); // This might have been modified.\n\n              if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate && !getIsHydrating() // We don't cut it if we're hydrating.\n              ) {\n                  // We're done.\n                  bubbleProperties(workInProgress);\n                  return null;\n                }\n            } else if ( // The time it took to render last row is greater than the remaining\n            // time we have to render. So rendering one more row would likely\n            // exceed it.\n            now() * 2 - renderState.renderingStartTime > getRenderTargetTime() && renderLanes !== OffscreenLane) {\n              // We have now passed our CPU deadline and we'll just give up further\n              // attempts to render the main content and only render fallbacks.\n              // The assumption is that this is usually faster.\n              workInProgress.flags |= DidCapture;\n              didSuspendAlready = true;\n              cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n              // to get it started back up to attempt the next item. While in terms\n              // of priority this work has the same priority as this current render,\n              // it's not part of the same transition once the transition has\n              // committed. If it's sync, we still want to yield so that it can be\n              // painted. Conceptually, this is really the same as pinging.\n              // We can use any RetryLane even if it's the one currently rendering\n              // since we're leaving it behind on this node.\n\n              workInProgress.lanes = SomeRetryLane;\n            }\n          }\n\n          if (renderState.isBackwards) {\n            // The effect list of the backwards tail will have been added\n            // to the end. This breaks the guarantee that life-cycles fire in\n            // sibling order but that isn't a strong guarantee promised by React.\n            // Especially since these might also just pop in during future commits.\n            // Append to the beginning of the list.\n            renderedTail.sibling = workInProgress.child;\n            workInProgress.child = renderedTail;\n          } else {\n            var previousSibling = renderState.last;\n\n            if (previousSibling !== null) {\n              previousSibling.sibling = renderedTail;\n            } else {\n              workInProgress.child = renderedTail;\n            }\n\n            renderState.last = renderedTail;\n          }\n        }\n\n        if (renderState.tail !== null) {\n          // We still have tail rows to render.\n          // Pop a row.\n          var next = renderState.tail;\n          renderState.rendering = next;\n          renderState.tail = next.sibling;\n          renderState.renderingStartTime = now();\n          next.sibling = null; // Restore the context.\n          // TODO: We can probably just avoid popping it instead and only\n          // setting it the first time we go from not suspended to suspended.\n\n          var suspenseContext = suspenseStackCursor.current;\n\n          if (didSuspendAlready) {\n            suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n          } else {\n            suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n          }\n\n          pushSuspenseContext(workInProgress, suspenseContext); // Do a pass over the next row.\n          // Don't bubble properties in this case.\n\n          return next;\n        }\n\n        bubbleProperties(workInProgress);\n        return null;\n      }\n\n    case ScopeComponent:\n      {\n\n        break;\n      }\n\n    case OffscreenComponent:\n    case LegacyHiddenComponent:\n      {\n        popRenderLanes(workInProgress);\n        var _nextState = workInProgress.memoizedState;\n        var nextIsHidden = _nextState !== null;\n\n        if (current !== null) {\n          var _prevState = current.memoizedState;\n          var prevIsHidden = _prevState !== null;\n\n          if (prevIsHidden !== nextIsHidden && ( // LegacyHidden doesn't do any hiding — it only pre-renders.\n          !enableLegacyHidden )) {\n            workInProgress.flags |= Visibility;\n          }\n        }\n\n        if (!nextIsHidden || (workInProgress.mode & ConcurrentMode) === NoMode) {\n          bubbleProperties(workInProgress);\n        } else {\n          // Don't bubble properties for hidden children unless we're rendering\n          // at offscreen priority.\n          if (includesSomeLane(subtreeRenderLanes, OffscreenLane)) {\n            bubbleProperties(workInProgress);\n\n            {\n              // Check if there was an insertion or update in the hidden subtree.\n              // If so, we need to hide those nodes in the commit phase, so\n              // schedule a visibility effect.\n              if ( workInProgress.subtreeFlags & (Placement | Update)) {\n                workInProgress.flags |= Visibility;\n              }\n            }\n          }\n        }\n        return null;\n      }\n\n    case CacheComponent:\n      {\n\n        return null;\n      }\n\n    case TracingMarkerComponent:\n      {\n\n        return null;\n      }\n  }\n\n  throw new Error(\"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in \" + 'React. Please file an issue.');\n}\n\nfunction unwindWork(current, workInProgress, renderLanes) {\n  // Note: This intentionally doesn't check if we're hydrating because comparing\n  // to the current tree provider fiber is just as fast and less error-prone.\n  // Ideally we would have a special version of the work loop only\n  // for hydration.\n  popTreeContext(workInProgress);\n\n  switch (workInProgress.tag) {\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n\n        var flags = workInProgress.flags;\n\n        if (flags & ShouldCapture) {\n          workInProgress.flags = flags & ~ShouldCapture | DidCapture;\n\n          if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n            transferActualDuration(workInProgress);\n          }\n\n          return workInProgress;\n        }\n\n        return null;\n      }\n\n    case HostRoot:\n      {\n        var root = workInProgress.stateNode;\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        resetWorkInProgressVersions();\n        var _flags = workInProgress.flags;\n\n        if ((_flags & ShouldCapture) !== NoFlags && (_flags & DidCapture) === NoFlags) {\n          // There was an error during render that wasn't captured by a suspense\n          // boundary. Do a second pass on the root to unmount the children.\n          workInProgress.flags = _flags & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        } // We unwound to the root without completing it. Exit.\n\n\n        return null;\n      }\n\n    case HostComponent:\n      {\n        // TODO: popHydrationState\n        popHostContext(workInProgress);\n        return null;\n      }\n\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var suspenseState = workInProgress.memoizedState;\n\n        if (suspenseState !== null && suspenseState.dehydrated !== null) {\n          if (workInProgress.alternate === null) {\n            throw new Error('Threw in newly mounted dehydrated component. This is likely a bug in ' + 'React. Please file an issue.');\n          }\n\n          resetHydrationState();\n        }\n\n        var _flags2 = workInProgress.flags;\n\n        if (_flags2 & ShouldCapture) {\n          workInProgress.flags = _flags2 & ~ShouldCapture | DidCapture; // Captured a suspense effect. Re-render the boundary.\n\n          if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n            transferActualDuration(workInProgress);\n          }\n\n          return workInProgress;\n        }\n\n        return null;\n      }\n\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress); // SuspenseList doesn't actually catch anything. It should've been\n        // caught by a nested boundary. If not, it should bubble through.\n\n        return null;\n      }\n\n    case HostPortal:\n      popHostContainer(workInProgress);\n      return null;\n\n    case ContextProvider:\n      var context = workInProgress.type._context;\n      popProvider(context, workInProgress);\n      return null;\n\n    case OffscreenComponent:\n    case LegacyHiddenComponent:\n      popRenderLanes(workInProgress);\n      return null;\n\n    case CacheComponent:\n\n      return null;\n\n    default:\n      return null;\n  }\n}\n\nfunction unwindInterruptedWork(current, interruptedWork, renderLanes) {\n  // Note: This intentionally doesn't check if we're hydrating because comparing\n  // to the current tree provider fiber is just as fast and less error-prone.\n  // Ideally we would have a special version of the work loop only\n  // for hydration.\n  popTreeContext(interruptedWork);\n\n  switch (interruptedWork.tag) {\n    case ClassComponent:\n      {\n        var childContextTypes = interruptedWork.type.childContextTypes;\n\n        if (childContextTypes !== null && childContextTypes !== undefined) {\n          popContext(interruptedWork);\n        }\n\n        break;\n      }\n\n    case HostRoot:\n      {\n        var root = interruptedWork.stateNode;\n        popHostContainer(interruptedWork);\n        popTopLevelContextObject(interruptedWork);\n        resetWorkInProgressVersions();\n        break;\n      }\n\n    case HostComponent:\n      {\n        popHostContext(interruptedWork);\n        break;\n      }\n\n    case HostPortal:\n      popHostContainer(interruptedWork);\n      break;\n\n    case SuspenseComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n\n    case SuspenseListComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n\n    case ContextProvider:\n      var context = interruptedWork.type._context;\n      popProvider(context, interruptedWork);\n      break;\n\n    case OffscreenComponent:\n    case LegacyHiddenComponent:\n      popRenderLanes(interruptedWork);\n      break;\n  }\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n  didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n} // Used during the commit phase to track the state of the Offscreen component stack.\n// Allows us to avoid traversing the return path to find the nearest Offscreen ancestor.\n// Only used when enableSuspenseLayoutEffectSemantics is enabled.\n\n\nvar offscreenSubtreeIsHidden = false;\nvar offscreenSubtreeWasHidden = false;\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\nvar nextEffect = null; // Used for Profiling builds to track updaters.\n\nvar inProgressLanes = null;\nvar inProgressRoot = null;\nfunction reportUncaughtErrorInDEV(error) {\n  // Wrapping each small part of the commit phase into a guarded\n  // callback is a bit too slow (https://github.com/facebook/react/pull/21666).\n  // But we rely on it to surface errors to DEV tools like overlays\n  // (https://github.com/facebook/react/issues/21712).\n  // As a compromise, rethrow only caught errors in a guard.\n  {\n    invokeGuardedCallback(null, function () {\n      throw error;\n    });\n    clearCaughtError();\n  }\n}\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n  instance.props = current.memoizedProps;\n  instance.state = current.memoizedState;\n\n  if ( current.mode & ProfileMode) {\n    try {\n      startLayoutEffectTimer();\n      instance.componentWillUnmount();\n    } finally {\n      recordLayoutEffectDuration(current);\n    }\n  } else {\n    instance.componentWillUnmount();\n  }\n}; // Capture errors so they don't interrupt mounting.\n\n\nfunction safelyCallCommitHookLayoutEffectListMount(current, nearestMountedAncestor) {\n  try {\n    commitHookEffectListMount(Layout, current);\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n} // Capture errors so they don't interrupt unmounting.\n\n\nfunction safelyCallComponentWillUnmount(current, nearestMountedAncestor, instance) {\n  try {\n    callComponentWillUnmountWithTimer(current, instance);\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n} // Capture errors so they don't interrupt mounting.\n\n\nfunction safelyCallComponentDidMount(current, nearestMountedAncestor, instance) {\n  try {\n    instance.componentDidMount();\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n} // Capture errors so they don't interrupt mounting.\n\n\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n  try {\n    commitAttachRef(current);\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n}\n\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n  var ref = current.ref;\n\n  if (ref !== null) {\n    if (typeof ref === 'function') {\n      var retVal;\n\n      try {\n        if (enableProfilerTimer && enableProfilerCommitHooks && current.mode & ProfileMode) {\n          try {\n            startLayoutEffectTimer();\n            retVal = ref(null);\n          } finally {\n            recordLayoutEffectDuration(current);\n          }\n        } else {\n          retVal = ref(null);\n        }\n      } catch (error) {\n        captureCommitPhaseError(current, nearestMountedAncestor, error);\n      }\n\n      {\n        if (typeof retVal === 'function') {\n          error('Unexpected return value from a callback ref in %s. ' + 'A callback ref should not return a function.', getComponentNameFromFiber(current));\n        }\n      }\n    } else {\n      ref.current = null;\n    }\n  }\n}\n\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n  try {\n    destroy();\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n}\n\nvar focusedInstanceHandle = null;\nvar shouldFireAfterActiveInstanceBlur = false;\nfunction commitBeforeMutationEffects(root, firstChild) {\n  focusedInstanceHandle = prepareForCommit(root.containerInfo);\n  nextEffect = firstChild;\n  commitBeforeMutationEffects_begin(); // We no longer need to track the active instance fiber\n\n  var shouldFire = shouldFireAfterActiveInstanceBlur;\n  shouldFireAfterActiveInstanceBlur = false;\n  focusedInstanceHandle = null;\n  return shouldFire;\n}\n\nfunction commitBeforeMutationEffects_begin() {\n  while (nextEffect !== null) {\n    var fiber = nextEffect; // This phase is only used for beforeActiveInstanceBlur.\n\n    var child = fiber.child;\n\n    if ((fiber.subtreeFlags & BeforeMutationMask) !== NoFlags && child !== null) {\n      child.return = fiber;\n      nextEffect = child;\n    } else {\n      commitBeforeMutationEffects_complete();\n    }\n  }\n}\n\nfunction commitBeforeMutationEffects_complete() {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    setCurrentFiber(fiber);\n\n    try {\n      commitBeforeMutationEffectsOnFiber(fiber);\n    } catch (error) {\n      captureCommitPhaseError(fiber, fiber.return, error);\n    }\n\n    resetCurrentFiber();\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction commitBeforeMutationEffectsOnFiber(finishedWork) {\n  var current = finishedWork.alternate;\n  var flags = finishedWork.flags;\n\n  if ((flags & Snapshot) !== NoFlags) {\n    setCurrentFiber(finishedWork);\n\n    switch (finishedWork.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          break;\n        }\n\n      case ClassComponent:\n        {\n          if (current !== null) {\n            var prevProps = current.memoizedProps;\n            var prevState = current.memoizedState;\n            var instance = finishedWork.stateNode; // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                if (instance.props !== finishedWork.memoizedProps) {\n                  error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                }\n\n                if (instance.state !== finishedWork.memoizedState) {\n                  error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                }\n              }\n            }\n\n            var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n            {\n              var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n              if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n                didWarnSet.add(finishedWork.type);\n\n                error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentNameFromFiber(finishedWork));\n              }\n            }\n\n            instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n          }\n\n          break;\n        }\n\n      case HostRoot:\n        {\n          {\n            var root = finishedWork.stateNode;\n            clearContainer(root.containerInfo);\n          }\n\n          break;\n        }\n\n      case HostComponent:\n      case HostText:\n      case HostPortal:\n      case IncompleteClassComponent:\n        // Nothing to do for these component types\n        break;\n\n      default:\n        {\n          throw new Error('This unit of work tag should not have side-effects. This error is ' + 'likely caused by a bug in React. Please file an issue.');\n        }\n    }\n\n    resetCurrentFiber();\n  }\n}\n\nfunction commitHookEffectListUnmount(flags, finishedWork, nearestMountedAncestor) {\n  var updateQueue = finishedWork.updateQueue;\n  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n  if (lastEffect !== null) {\n    var firstEffect = lastEffect.next;\n    var effect = firstEffect;\n\n    do {\n      if ((effect.tag & flags) === flags) {\n        // Unmount\n        var destroy = effect.destroy;\n        effect.destroy = undefined;\n\n        if (destroy !== undefined) {\n          {\n            if ((flags & Passive$1) !== NoFlags$1) {\n              markComponentPassiveEffectUnmountStarted(finishedWork);\n            } else if ((flags & Layout) !== NoFlags$1) {\n              markComponentLayoutEffectUnmountStarted(finishedWork);\n            }\n          }\n\n          {\n            if ((flags & Insertion) !== NoFlags$1) {\n              setIsRunningInsertionEffect(true);\n            }\n          }\n\n          safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n\n          {\n            if ((flags & Insertion) !== NoFlags$1) {\n              setIsRunningInsertionEffect(false);\n            }\n          }\n\n          {\n            if ((flags & Passive$1) !== NoFlags$1) {\n              markComponentPassiveEffectUnmountStopped();\n            } else if ((flags & Layout) !== NoFlags$1) {\n              markComponentLayoutEffectUnmountStopped();\n            }\n          }\n        }\n      }\n\n      effect = effect.next;\n    } while (effect !== firstEffect);\n  }\n}\n\nfunction commitHookEffectListMount(flags, finishedWork) {\n  var updateQueue = finishedWork.updateQueue;\n  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n  if (lastEffect !== null) {\n    var firstEffect = lastEffect.next;\n    var effect = firstEffect;\n\n    do {\n      if ((effect.tag & flags) === flags) {\n        {\n          if ((flags & Passive$1) !== NoFlags$1) {\n            markComponentPassiveEffectMountStarted(finishedWork);\n          } else if ((flags & Layout) !== NoFlags$1) {\n            markComponentLayoutEffectMountStarted(finishedWork);\n          }\n        } // Mount\n\n\n        var create = effect.create;\n\n        {\n          if ((flags & Insertion) !== NoFlags$1) {\n            setIsRunningInsertionEffect(true);\n          }\n        }\n\n        effect.destroy = create();\n\n        {\n          if ((flags & Insertion) !== NoFlags$1) {\n            setIsRunningInsertionEffect(false);\n          }\n        }\n\n        {\n          if ((flags & Passive$1) !== NoFlags$1) {\n            markComponentPassiveEffectMountStopped();\n          } else if ((flags & Layout) !== NoFlags$1) {\n            markComponentLayoutEffectMountStopped();\n          }\n        }\n\n        {\n          var destroy = effect.destroy;\n\n          if (destroy !== undefined && typeof destroy !== 'function') {\n            var hookName = void 0;\n\n            if ((effect.tag & Layout) !== NoFlags) {\n              hookName = 'useLayoutEffect';\n            } else if ((effect.tag & Insertion) !== NoFlags) {\n              hookName = 'useInsertionEffect';\n            } else {\n              hookName = 'useEffect';\n            }\n\n            var addendum = void 0;\n\n            if (destroy === null) {\n              addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n            } else if (typeof destroy.then === 'function') {\n              addendum = '\\n\\nIt looks like you wrote ' + hookName + '(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + hookName + '(() => {\\n' + '  async function fetchData() {\\n' + '    // You can await here\\n' + '    const response = await MyAPI.getData(someId);\\n' + '    // ...\\n' + '  }\\n' + '  fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';\n            } else {\n              addendum = ' You returned: ' + destroy;\n            }\n\n            error('%s must not return anything besides a function, ' + 'which is used for clean-up.%s', hookName, addendum);\n          }\n        }\n      }\n\n      effect = effect.next;\n    } while (effect !== firstEffect);\n  }\n}\n\nfunction commitPassiveEffectDurations(finishedRoot, finishedWork) {\n  {\n    // Only Profilers with work in their subtree will have an Update effect scheduled.\n    if ((finishedWork.flags & Update) !== NoFlags) {\n      switch (finishedWork.tag) {\n        case Profiler:\n          {\n            var passiveEffectDuration = finishedWork.stateNode.passiveEffectDuration;\n            var _finishedWork$memoize = finishedWork.memoizedProps,\n                id = _finishedWork$memoize.id,\n                onPostCommit = _finishedWork$memoize.onPostCommit; // This value will still reflect the previous commit phase.\n            // It does not get reset until the start of the next commit phase.\n\n            var commitTime = getCommitTime();\n            var phase = finishedWork.alternate === null ? 'mount' : 'update';\n\n            {\n              if (isCurrentUpdateNested()) {\n                phase = 'nested-update';\n              }\n            }\n\n            if (typeof onPostCommit === 'function') {\n              onPostCommit(id, phase, passiveEffectDuration, commitTime);\n            } // Bubble times to the next nearest ancestor Profiler.\n            // After we process that Profiler, we'll bubble further up.\n\n\n            var parentFiber = finishedWork.return;\n\n            outer: while (parentFiber !== null) {\n              switch (parentFiber.tag) {\n                case HostRoot:\n                  var root = parentFiber.stateNode;\n                  root.passiveEffectDuration += passiveEffectDuration;\n                  break outer;\n\n                case Profiler:\n                  var parentStateNode = parentFiber.stateNode;\n                  parentStateNode.passiveEffectDuration += passiveEffectDuration;\n                  break outer;\n              }\n\n              parentFiber = parentFiber.return;\n            }\n\n            break;\n          }\n      }\n    }\n  }\n}\n\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork, committedLanes) {\n  if ((finishedWork.flags & LayoutMask) !== NoFlags) {\n    switch (finishedWork.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          if ( !offscreenSubtreeWasHidden) {\n            // At this point layout effects have already been destroyed (during mutation phase).\n            // This is done to prevent sibling component effects from interfering with each other,\n            // e.g. a destroy function in one component should never override a ref set\n            // by a create function in another component during the same commit.\n            if ( finishedWork.mode & ProfileMode) {\n              try {\n                startLayoutEffectTimer();\n                commitHookEffectListMount(Layout | HasEffect, finishedWork);\n              } finally {\n                recordLayoutEffectDuration(finishedWork);\n              }\n            } else {\n              commitHookEffectListMount(Layout | HasEffect, finishedWork);\n            }\n          }\n\n          break;\n        }\n\n      case ClassComponent:\n        {\n          var instance = finishedWork.stateNode;\n\n          if (finishedWork.flags & Update) {\n            if (!offscreenSubtreeWasHidden) {\n              if (current === null) {\n                // We could update instance props and state here,\n                // but instead we rely on them being set during last render.\n                // TODO: revisit this when we implement resuming.\n                {\n                  if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                    if (instance.props !== finishedWork.memoizedProps) {\n                      error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                    }\n\n                    if (instance.state !== finishedWork.memoizedState) {\n                      error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                    }\n                  }\n                }\n\n                if ( finishedWork.mode & ProfileMode) {\n                  try {\n                    startLayoutEffectTimer();\n                    instance.componentDidMount();\n                  } finally {\n                    recordLayoutEffectDuration(finishedWork);\n                  }\n                } else {\n                  instance.componentDidMount();\n                }\n              } else {\n                var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n                var prevState = current.memoizedState; // We could update instance props and state here,\n                // but instead we rely on them being set during last render.\n                // TODO: revisit this when we implement resuming.\n\n                {\n                  if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                    if (instance.props !== finishedWork.memoizedProps) {\n                      error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                    }\n\n                    if (instance.state !== finishedWork.memoizedState) {\n                      error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                    }\n                  }\n                }\n\n                if ( finishedWork.mode & ProfileMode) {\n                  try {\n                    startLayoutEffectTimer();\n                    instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n                  } finally {\n                    recordLayoutEffectDuration(finishedWork);\n                  }\n                } else {\n                  instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n                }\n              }\n            }\n          } // TODO: I think this is now always non-null by the time it reaches the\n          // commit phase. Consider removing the type check.\n\n\n          var updateQueue = finishedWork.updateQueue;\n\n          if (updateQueue !== null) {\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                if (instance.props !== finishedWork.memoizedProps) {\n                  error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                }\n\n                if (instance.state !== finishedWork.memoizedState) {\n                  error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n                }\n              }\n            } // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n\n\n            commitUpdateQueue(finishedWork, updateQueue, instance);\n          }\n\n          break;\n        }\n\n      case HostRoot:\n        {\n          // TODO: I think this is now always non-null by the time it reaches the\n          // commit phase. Consider removing the type check.\n          var _updateQueue = finishedWork.updateQueue;\n\n          if (_updateQueue !== null) {\n            var _instance = null;\n\n            if (finishedWork.child !== null) {\n              switch (finishedWork.child.tag) {\n                case HostComponent:\n                  _instance = getPublicInstance(finishedWork.child.stateNode);\n                  break;\n\n                case ClassComponent:\n                  _instance = finishedWork.child.stateNode;\n                  break;\n              }\n            }\n\n            commitUpdateQueue(finishedWork, _updateQueue, _instance);\n          }\n\n          break;\n        }\n\n      case HostComponent:\n        {\n          var _instance2 = finishedWork.stateNode; // Renderers may schedule work to be done after host components are mounted\n          // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n          // These effects should only be committed when components are first mounted,\n          // aka when there is no current/alternate.\n\n          if (current === null && finishedWork.flags & Update) {\n            var type = finishedWork.type;\n            var props = finishedWork.memoizedProps;\n            commitMount(_instance2, type, props);\n          }\n\n          break;\n        }\n\n      case HostText:\n        {\n          // We have no life-cycles associated with text.\n          break;\n        }\n\n      case HostPortal:\n        {\n          // We have no life-cycles associated with portals.\n          break;\n        }\n\n      case Profiler:\n        {\n          {\n            var _finishedWork$memoize2 = finishedWork.memoizedProps,\n                onCommit = _finishedWork$memoize2.onCommit,\n                onRender = _finishedWork$memoize2.onRender;\n            var effectDuration = finishedWork.stateNode.effectDuration;\n            var commitTime = getCommitTime();\n            var phase = current === null ? 'mount' : 'update';\n\n            {\n              if (isCurrentUpdateNested()) {\n                phase = 'nested-update';\n              }\n            }\n\n            if (typeof onRender === 'function') {\n              onRender(finishedWork.memoizedProps.id, phase, finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime);\n            }\n\n            {\n              if (typeof onCommit === 'function') {\n                onCommit(finishedWork.memoizedProps.id, phase, effectDuration, commitTime);\n              } // Schedule a passive effect for this Profiler to call onPostCommit hooks.\n              // This effect should be scheduled even if there is no onPostCommit callback for this Profiler,\n              // because the effect is also where times bubble to parent Profilers.\n\n\n              enqueuePendingPassiveProfilerEffect(finishedWork); // Propagate layout effect durations to the next nearest Profiler ancestor.\n              // Do not reset these values until the next render so DevTools has a chance to read them first.\n\n              var parentFiber = finishedWork.return;\n\n              outer: while (parentFiber !== null) {\n                switch (parentFiber.tag) {\n                  case HostRoot:\n                    var root = parentFiber.stateNode;\n                    root.effectDuration += effectDuration;\n                    break outer;\n\n                  case Profiler:\n                    var parentStateNode = parentFiber.stateNode;\n                    parentStateNode.effectDuration += effectDuration;\n                    break outer;\n                }\n\n                parentFiber = parentFiber.return;\n              }\n            }\n          }\n\n          break;\n        }\n\n      case SuspenseComponent:\n        {\n          commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n          break;\n        }\n\n      case SuspenseListComponent:\n      case IncompleteClassComponent:\n      case ScopeComponent:\n      case OffscreenComponent:\n      case LegacyHiddenComponent:\n      case TracingMarkerComponent:\n        {\n          break;\n        }\n\n      default:\n        throw new Error('This unit of work tag should not have side-effects. This error is ' + 'likely caused by a bug in React. Please file an issue.');\n    }\n  }\n\n  if ( !offscreenSubtreeWasHidden) {\n    {\n      if (finishedWork.flags & Ref) {\n        commitAttachRef(finishedWork);\n      }\n    }\n  }\n}\n\nfunction reappearLayoutEffectsOnFiber(node) {\n  // Turn on layout effects in a tree that previously disappeared.\n  // TODO (Offscreen) Check: flags & LayoutStatic\n  switch (node.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        if ( node.mode & ProfileMode) {\n          try {\n            startLayoutEffectTimer();\n            safelyCallCommitHookLayoutEffectListMount(node, node.return);\n          } finally {\n            recordLayoutEffectDuration(node);\n          }\n        } else {\n          safelyCallCommitHookLayoutEffectListMount(node, node.return);\n        }\n\n        break;\n      }\n\n    case ClassComponent:\n      {\n        var instance = node.stateNode;\n\n        if (typeof instance.componentDidMount === 'function') {\n          safelyCallComponentDidMount(node, node.return, instance);\n        }\n\n        safelyAttachRef(node, node.return);\n        break;\n      }\n\n    case HostComponent:\n      {\n        safelyAttachRef(node, node.return);\n        break;\n      }\n  }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n  // Only hide or unhide the top-most host nodes.\n  var hostSubtreeRoot = null;\n\n  {\n    // We only have the top Fiber that was inserted but we need to recurse down its\n    // children to find all the terminal nodes.\n    var node = finishedWork;\n\n    while (true) {\n      if (node.tag === HostComponent) {\n        if (hostSubtreeRoot === null) {\n          hostSubtreeRoot = node;\n\n          try {\n            var instance = node.stateNode;\n\n            if (isHidden) {\n              hideInstance(instance);\n            } else {\n              unhideInstance(node.stateNode, node.memoizedProps);\n            }\n          } catch (error) {\n            captureCommitPhaseError(finishedWork, finishedWork.return, error);\n          }\n        }\n      } else if (node.tag === HostText) {\n        if (hostSubtreeRoot === null) {\n          try {\n            var _instance3 = node.stateNode;\n\n            if (isHidden) {\n              hideTextInstance(_instance3);\n            } else {\n              unhideTextInstance(_instance3, node.memoizedProps);\n            }\n          } catch (error) {\n            captureCommitPhaseError(finishedWork, finishedWork.return, error);\n          }\n        }\n      } else if ((node.tag === OffscreenComponent || node.tag === LegacyHiddenComponent) && node.memoizedState !== null && node !== finishedWork) ; else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === finishedWork) {\n        return;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === finishedWork) {\n          return;\n        }\n\n        if (hostSubtreeRoot === node) {\n          hostSubtreeRoot = null;\n        }\n\n        node = node.return;\n      }\n\n      if (hostSubtreeRoot === node) {\n        hostSubtreeRoot = null;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n}\n\nfunction commitAttachRef(finishedWork) {\n  var ref = finishedWork.ref;\n\n  if (ref !== null) {\n    var instance = finishedWork.stateNode;\n    var instanceToUse;\n\n    switch (finishedWork.tag) {\n      case HostComponent:\n        instanceToUse = getPublicInstance(instance);\n        break;\n\n      default:\n        instanceToUse = instance;\n    } // Moved outside to ensure DCE works with this flag\n\n    if (typeof ref === 'function') {\n      var retVal;\n\n      if ( finishedWork.mode & ProfileMode) {\n        try {\n          startLayoutEffectTimer();\n          retVal = ref(instanceToUse);\n        } finally {\n          recordLayoutEffectDuration(finishedWork);\n        }\n      } else {\n        retVal = ref(instanceToUse);\n      }\n\n      {\n        if (typeof retVal === 'function') {\n          error('Unexpected return value from a callback ref in %s. ' + 'A callback ref should not return a function.', getComponentNameFromFiber(finishedWork));\n        }\n      }\n    } else {\n      {\n        if (!ref.hasOwnProperty('current')) {\n          error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().', getComponentNameFromFiber(finishedWork));\n        }\n      }\n\n      ref.current = instanceToUse;\n    }\n  }\n}\n\nfunction detachFiberMutation(fiber) {\n  // Cut off the return pointer to disconnect it from the tree.\n  // This enables us to detect and warn against state updates on an unmounted component.\n  // It also prevents events from bubbling from within disconnected components.\n  //\n  // Ideally, we should also clear the child pointer of the parent alternate to let this\n  // get GC:ed but we don't know which for sure which parent is the current\n  // one so we'll settle for GC:ing the subtree of this child.\n  // This child itself will be GC:ed when the parent updates the next time.\n  //\n  // Note that we can't clear child or sibling pointers yet.\n  // They're needed for passive effects and for findDOMNode.\n  // We defer those fields, and all other cleanup, to the passive phase (see detachFiberAfterEffects).\n  //\n  // Don't reset the alternate yet, either. We need that so we can detach the\n  // alternate's fields in the passive phase. Clearing the return pointer is\n  // sufficient for findDOMNode semantics.\n  var alternate = fiber.alternate;\n\n  if (alternate !== null) {\n    alternate.return = null;\n  }\n\n  fiber.return = null;\n}\n\nfunction detachFiberAfterEffects(fiber) {\n  var alternate = fiber.alternate;\n\n  if (alternate !== null) {\n    fiber.alternate = null;\n    detachFiberAfterEffects(alternate);\n  } // Note: Defensively using negation instead of < in case\n  // `deletedTreeCleanUpLevel` is undefined.\n\n\n  {\n    // Clear cyclical Fiber fields. This level alone is designed to roughly\n    // approximate the planned Fiber refactor. In that world, `setState` will be\n    // bound to a special \"instance\" object instead of a Fiber. The Instance\n    // object will not have any of these fields. It will only be connected to\n    // the fiber tree via a single link at the root. So if this level alone is\n    // sufficient to fix memory issues, that bodes well for our plans.\n    fiber.child = null;\n    fiber.deletions = null;\n    fiber.sibling = null; // The `stateNode` is cyclical because on host nodes it points to the host\n    // tree, which has its own pointers to children, parents, and siblings.\n    // The other host nodes also point back to fibers, so we should detach that\n    // one, too.\n\n    if (fiber.tag === HostComponent) {\n      var hostInstance = fiber.stateNode;\n\n      if (hostInstance !== null) {\n        detachDeletedInstance(hostInstance);\n      }\n    }\n\n    fiber.stateNode = null; // I'm intentionally not clearing the `return` field in this level. We\n    // already disconnect the `return` pointer at the root of the deleted\n    // subtree (in `detachFiberMutation`). Besides, `return` by itself is not\n    // cyclical — it's only cyclical when combined with `child`, `sibling`, and\n    // `alternate`. But we'll clear it in the next level anyway, just in case.\n\n    {\n      fiber._debugOwner = null;\n    }\n\n    {\n      // Theoretically, nothing in here should be necessary, because we already\n      // disconnected the fiber from the tree. So even if something leaks this\n      // particular fiber, it won't leak anything else\n      //\n      // The purpose of this branch is to be super aggressive so we can measure\n      // if there's any difference in memory impact. If there is, that could\n      // indicate a React leak we don't know about.\n      fiber.return = null;\n      fiber.dependencies = null;\n      fiber.memoizedProps = null;\n      fiber.memoizedState = null;\n      fiber.pendingProps = null;\n      fiber.stateNode = null; // TODO: Move to `commitPassiveUnmountInsideDeletedTreeOnFiber` instead.\n\n      fiber.updateQueue = null;\n    }\n  }\n}\n\nfunction getHostParentFiber(fiber) {\n  var parent = fiber.return;\n\n  while (parent !== null) {\n    if (isHostParent(parent)) {\n      return parent;\n    }\n\n    parent = parent.return;\n  }\n\n  throw new Error('Expected to find a host parent. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n}\n\nfunction isHostParent(fiber) {\n  return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n  // We're going to search forward into the tree until we find a sibling host\n  // node. Unfortunately, if multiple insertions are done in a row we have to\n  // search past them. This leads to exponential search for the next sibling.\n  // TODO: Find a more efficient way to do this.\n  var node = fiber;\n\n  siblings: while (true) {\n    // If we didn't find anything, let's try the next sibling.\n    while (node.sibling === null) {\n      if (node.return === null || isHostParent(node.return)) {\n        // If we pop out of the root or hit the parent the fiber we are the\n        // last sibling.\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n\n    while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n      // If it is not host node and, we might have a host node inside it.\n      // Try to search down until we find one.\n      if (node.flags & Placement) {\n        // If we don't have a child, try the siblings instead.\n        continue siblings;\n      } // If we don't have a child, try the siblings instead.\n      // We also skip portals because they are not part of this host tree.\n\n\n      if (node.child === null || node.tag === HostPortal) {\n        continue siblings;\n      } else {\n        node.child.return = node;\n        node = node.child;\n      }\n    } // Check if this host node is stable or about to be placed.\n\n\n    if (!(node.flags & Placement)) {\n      // Found it!\n      return node.stateNode;\n    }\n  }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n  var parentFiber = getHostParentFiber(finishedWork); // Note: these two variables *must* always be updated together.\n\n  switch (parentFiber.tag) {\n    case HostComponent:\n      {\n        var parent = parentFiber.stateNode;\n\n        if (parentFiber.flags & ContentReset) {\n          // Reset the text content of the parent before doing any insertions\n          resetTextContent(parent); // Clear ContentReset from the effect tag\n\n          parentFiber.flags &= ~ContentReset;\n        }\n\n        var before = getHostSibling(finishedWork); // We only have the top Fiber that was inserted but we need to recurse down its\n        // children to find all the terminal nodes.\n\n        insertOrAppendPlacementNode(finishedWork, before, parent);\n        break;\n      }\n\n    case HostRoot:\n    case HostPortal:\n      {\n        var _parent = parentFiber.stateNode.containerInfo;\n\n        var _before = getHostSibling(finishedWork);\n\n        insertOrAppendPlacementNodeIntoContainer(finishedWork, _before, _parent);\n        break;\n      }\n    // eslint-disable-next-line-no-fallthrough\n\n    default:\n      throw new Error('Invalid host parent fiber. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n  }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n  var tag = node.tag;\n  var isHost = tag === HostComponent || tag === HostText;\n\n  if (isHost) {\n    var stateNode = node.stateNode;\n\n    if (before) {\n      insertInContainerBefore(parent, stateNode, before);\n    } else {\n      appendChildToContainer(parent, stateNode);\n    }\n  } else if (tag === HostPortal) ; else {\n    var child = node.child;\n\n    if (child !== null) {\n      insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n      var sibling = child.sibling;\n\n      while (sibling !== null) {\n        insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n        sibling = sibling.sibling;\n      }\n    }\n  }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n  var tag = node.tag;\n  var isHost = tag === HostComponent || tag === HostText;\n\n  if (isHost) {\n    var stateNode = node.stateNode;\n\n    if (before) {\n      insertBefore(parent, stateNode, before);\n    } else {\n      appendChild(parent, stateNode);\n    }\n  } else if (tag === HostPortal) ; else {\n    var child = node.child;\n\n    if (child !== null) {\n      insertOrAppendPlacementNode(child, before, parent);\n      var sibling = child.sibling;\n\n      while (sibling !== null) {\n        insertOrAppendPlacementNode(sibling, before, parent);\n        sibling = sibling.sibling;\n      }\n    }\n  }\n} // These are tracked on the stack as we recursively traverse a\n// deleted subtree.\n// TODO: Update these during the whole mutation phase, not just during\n// a deletion.\n\n\nvar hostParent = null;\nvar hostParentIsContainer = false;\n\nfunction commitDeletionEffects(root, returnFiber, deletedFiber) {\n  {\n    // We only have the top Fiber that was deleted but we need to recurse down its\n    // children to find all the terminal nodes.\n    // Recursively delete all host nodes from the parent, detach refs, clean\n    // up mounted layout effects, and call componentWillUnmount.\n    // We only need to remove the topmost host child in each branch. But then we\n    // still need to keep traversing to unmount effects, refs, and cWU. TODO: We\n    // could split this into two separate traversals functions, where the second\n    // one doesn't include any removeChild logic. This is maybe the same\n    // function as \"disappearLayoutEffects\" (or whatever that turns into after\n    // the layout phase is refactored to use recursion).\n    // Before starting, find the nearest host parent on the stack so we know\n    // which instance/container to remove the children from.\n    // TODO: Instead of searching up the fiber return path on every deletion, we\n    // can track the nearest host component on the JS stack as we traverse the\n    // tree during the commit phase. This would make insertions faster, too.\n    var parent = returnFiber;\n\n    findParent: while (parent !== null) {\n      switch (parent.tag) {\n        case HostComponent:\n          {\n            hostParent = parent.stateNode;\n            hostParentIsContainer = false;\n            break findParent;\n          }\n\n        case HostRoot:\n          {\n            hostParent = parent.stateNode.containerInfo;\n            hostParentIsContainer = true;\n            break findParent;\n          }\n\n        case HostPortal:\n          {\n            hostParent = parent.stateNode.containerInfo;\n            hostParentIsContainer = true;\n            break findParent;\n          }\n      }\n\n      parent = parent.return;\n    }\n\n    if (hostParent === null) {\n      throw new Error('Expected to find a host parent. This error is likely caused by ' + 'a bug in React. Please file an issue.');\n    }\n\n    commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);\n    hostParent = null;\n    hostParentIsContainer = false;\n  }\n\n  detachFiberMutation(deletedFiber);\n}\n\nfunction recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, parent) {\n  // TODO: Use a static flag to skip trees that don't have unmount effects\n  var child = parent.child;\n\n  while (child !== null) {\n    commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, child);\n    child = child.sibling;\n  }\n}\n\nfunction commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, deletedFiber) {\n  onCommitUnmount(deletedFiber); // The cases in this outer switch modify the stack before they traverse\n  // into their subtree. There are simpler cases in the inner switch\n  // that don't modify the stack.\n\n  switch (deletedFiber.tag) {\n    case HostComponent:\n      {\n        if (!offscreenSubtreeWasHidden) {\n          safelyDetachRef(deletedFiber, nearestMountedAncestor);\n        } // Intentional fallthrough to next branch\n\n      }\n    // eslint-disable-next-line-no-fallthrough\n\n    case HostText:\n      {\n        // We only need to remove the nearest host child. Set the host parent\n        // to `null` on the stack to indicate that nested children don't\n        // need to be removed.\n        {\n          var prevHostParent = hostParent;\n          var prevHostParentIsContainer = hostParentIsContainer;\n          hostParent = null;\n          recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n          hostParent = prevHostParent;\n          hostParentIsContainer = prevHostParentIsContainer;\n\n          if (hostParent !== null) {\n            // Now that all the child effects have unmounted, we can remove the\n            // node from the tree.\n            if (hostParentIsContainer) {\n              removeChildFromContainer(hostParent, deletedFiber.stateNode);\n            } else {\n              removeChild(hostParent, deletedFiber.stateNode);\n            }\n          }\n        }\n\n        return;\n      }\n\n    case DehydratedFragment:\n      {\n        // Delete the dehydrated suspense boundary and all of its content.\n\n\n        {\n          if (hostParent !== null) {\n            if (hostParentIsContainer) {\n              clearSuspenseBoundaryFromContainer(hostParent, deletedFiber.stateNode);\n            } else {\n              clearSuspenseBoundary(hostParent, deletedFiber.stateNode);\n            }\n          }\n        }\n\n        return;\n      }\n\n    case HostPortal:\n      {\n        {\n          // When we go into a portal, it becomes the parent to remove from.\n          var _prevHostParent = hostParent;\n          var _prevHostParentIsContainer = hostParentIsContainer;\n          hostParent = deletedFiber.stateNode.containerInfo;\n          hostParentIsContainer = true;\n          recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n          hostParent = _prevHostParent;\n          hostParentIsContainer = _prevHostParentIsContainer;\n        }\n\n        return;\n      }\n\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n      {\n        if (!offscreenSubtreeWasHidden) {\n          var updateQueue = deletedFiber.updateQueue;\n\n          if (updateQueue !== null) {\n            var lastEffect = updateQueue.lastEffect;\n\n            if (lastEffect !== null) {\n              var firstEffect = lastEffect.next;\n              var effect = firstEffect;\n\n              do {\n                var _effect = effect,\n                    destroy = _effect.destroy,\n                    tag = _effect.tag;\n\n                if (destroy !== undefined) {\n                  if ((tag & Insertion) !== NoFlags$1) {\n                    safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n                  } else if ((tag & Layout) !== NoFlags$1) {\n                    {\n                      markComponentLayoutEffectUnmountStarted(deletedFiber);\n                    }\n\n                    if ( deletedFiber.mode & ProfileMode) {\n                      startLayoutEffectTimer();\n                      safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n                      recordLayoutEffectDuration(deletedFiber);\n                    } else {\n                      safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n                    }\n\n                    {\n                      markComponentLayoutEffectUnmountStopped();\n                    }\n                  }\n                }\n\n                effect = effect.next;\n              } while (effect !== firstEffect);\n            }\n          }\n        }\n\n        recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n        return;\n      }\n\n    case ClassComponent:\n      {\n        if (!offscreenSubtreeWasHidden) {\n          safelyDetachRef(deletedFiber, nearestMountedAncestor);\n          var instance = deletedFiber.stateNode;\n\n          if (typeof instance.componentWillUnmount === 'function') {\n            safelyCallComponentWillUnmount(deletedFiber, nearestMountedAncestor, instance);\n          }\n        }\n\n        recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n        return;\n      }\n\n    case ScopeComponent:\n      {\n\n        recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n        return;\n      }\n\n    case OffscreenComponent:\n      {\n        if ( // TODO: Remove this dead flag\n         deletedFiber.mode & ConcurrentMode) {\n          // If this offscreen component is hidden, we already unmounted it. Before\n          // deleting the children, track that it's already unmounted so that we\n          // don't attempt to unmount the effects again.\n          // TODO: If the tree is hidden, in most cases we should be able to skip\n          // over the nested children entirely. An exception is we haven't yet found\n          // the topmost host node to delete, which we already track on the stack.\n          // But the other case is portals, which need to be detached no matter how\n          // deeply they are nested. We should use a subtree flag to track whether a\n          // subtree includes a nested portal.\n          var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || deletedFiber.memoizedState !== null;\n          recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n        } else {\n          recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n        }\n\n        break;\n      }\n\n    default:\n      {\n        recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n        return;\n      }\n  }\n}\n\nfunction commitSuspenseCallback(finishedWork) {\n  // TODO: Move this to passive phase\n  var newState = finishedWork.memoizedState;\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n  var newState = finishedWork.memoizedState;\n\n  if (newState === null) {\n    var current = finishedWork.alternate;\n\n    if (current !== null) {\n      var prevState = current.memoizedState;\n\n      if (prevState !== null) {\n        var suspenseInstance = prevState.dehydrated;\n\n        if (suspenseInstance !== null) {\n          commitHydratedSuspenseInstance(suspenseInstance);\n        }\n      }\n    }\n  }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n  // If this boundary just timed out, then it will have a set of wakeables.\n  // For each wakeable, attach a listener so that when it resolves, React\n  // attempts to re-render the boundary in the primary (pre-timeout) state.\n  var wakeables = finishedWork.updateQueue;\n\n  if (wakeables !== null) {\n    finishedWork.updateQueue = null;\n    var retryCache = finishedWork.stateNode;\n\n    if (retryCache === null) {\n      retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n    }\n\n    wakeables.forEach(function (wakeable) {\n      // Memoize using the boundary fiber to prevent redundant listeners.\n      var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n\n      if (!retryCache.has(wakeable)) {\n        retryCache.add(wakeable);\n\n        {\n          if (isDevToolsPresent) {\n            if (inProgressLanes !== null && inProgressRoot !== null) {\n              // If we have pending work still, associate the original updaters with it.\n              restorePendingUpdaters(inProgressRoot, inProgressLanes);\n            } else {\n              throw Error('Expected finished root and lanes to be set. This is a bug in React.');\n            }\n          }\n        }\n\n        wakeable.then(retry, retry);\n      }\n    });\n  }\n} // This function detects when a Suspense boundary goes from visible to hidden.\nfunction commitMutationEffects(root, finishedWork, committedLanes) {\n  inProgressLanes = committedLanes;\n  inProgressRoot = root;\n  setCurrentFiber(finishedWork);\n  commitMutationEffectsOnFiber(finishedWork, root);\n  setCurrentFiber(finishedWork);\n  inProgressLanes = null;\n  inProgressRoot = null;\n}\n\nfunction recursivelyTraverseMutationEffects(root, parentFiber, lanes) {\n  // Deletions effects can be scheduled on any fiber type. They need to happen\n  // before the children effects hae fired.\n  var deletions = parentFiber.deletions;\n\n  if (deletions !== null) {\n    for (var i = 0; i < deletions.length; i++) {\n      var childToDelete = deletions[i];\n\n      try {\n        commitDeletionEffects(root, parentFiber, childToDelete);\n      } catch (error) {\n        captureCommitPhaseError(childToDelete, parentFiber, error);\n      }\n    }\n  }\n\n  var prevDebugFiber = getCurrentFiber();\n\n  if (parentFiber.subtreeFlags & MutationMask) {\n    var child = parentFiber.child;\n\n    while (child !== null) {\n      setCurrentFiber(child);\n      commitMutationEffectsOnFiber(child, root);\n      child = child.sibling;\n    }\n  }\n\n  setCurrentFiber(prevDebugFiber);\n}\n\nfunction commitMutationEffectsOnFiber(finishedWork, root, lanes) {\n  var current = finishedWork.alternate;\n  var flags = finishedWork.flags; // The effect flag should be checked *after* we refine the type of fiber,\n  // because the fiber tag is more specific. An exception is any flag related\n  // to reconcilation, because those can be set on all fiber types.\n\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Update) {\n          try {\n            commitHookEffectListUnmount(Insertion | HasEffect, finishedWork, finishedWork.return);\n            commitHookEffectListMount(Insertion | HasEffect, finishedWork);\n          } catch (error) {\n            captureCommitPhaseError(finishedWork, finishedWork.return, error);\n          } // Layout effects are destroyed during the mutation phase so that all\n          // destroy functions for all fibers are called before any create functions.\n          // This prevents sibling component effects from interfering with each other,\n          // e.g. a destroy function in one component should never override a ref set\n          // by a create function in another component during the same commit.\n\n\n          if ( finishedWork.mode & ProfileMode) {\n            try {\n              startLayoutEffectTimer();\n              commitHookEffectListUnmount(Layout | HasEffect, finishedWork, finishedWork.return);\n            } catch (error) {\n              captureCommitPhaseError(finishedWork, finishedWork.return, error);\n            }\n\n            recordLayoutEffectDuration(finishedWork);\n          } else {\n            try {\n              commitHookEffectListUnmount(Layout | HasEffect, finishedWork, finishedWork.return);\n            } catch (error) {\n              captureCommitPhaseError(finishedWork, finishedWork.return, error);\n            }\n          }\n        }\n\n        return;\n      }\n\n    case ClassComponent:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Ref) {\n          if (current !== null) {\n            safelyDetachRef(current, current.return);\n          }\n        }\n\n        return;\n      }\n\n    case HostComponent:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Ref) {\n          if (current !== null) {\n            safelyDetachRef(current, current.return);\n          }\n        }\n\n        {\n          // TODO: ContentReset gets cleared by the children during the commit\n          // phase. This is a refactor hazard because it means we must read\n          // flags the flags after `commitReconciliationEffects` has already run;\n          // the order matters. We should refactor so that ContentReset does not\n          // rely on mutating the flag during commit. Like by setting a flag\n          // during the render phase instead.\n          if (finishedWork.flags & ContentReset) {\n            var instance = finishedWork.stateNode;\n\n            try {\n              resetTextContent(instance);\n            } catch (error) {\n              captureCommitPhaseError(finishedWork, finishedWork.return, error);\n            }\n          }\n\n          if (flags & Update) {\n            var _instance4 = finishedWork.stateNode;\n\n            if (_instance4 != null) {\n              // Commit the work prepared earlier.\n              var newProps = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n              // as the newProps. The updatePayload will contain the real change in\n              // this case.\n\n              var oldProps = current !== null ? current.memoizedProps : newProps;\n              var type = finishedWork.type; // TODO: Type the updateQueue to be specific to host components.\n\n              var updatePayload = finishedWork.updateQueue;\n              finishedWork.updateQueue = null;\n\n              if (updatePayload !== null) {\n                try {\n                  commitUpdate(_instance4, updatePayload, type, oldProps, newProps, finishedWork);\n                } catch (error) {\n                  captureCommitPhaseError(finishedWork, finishedWork.return, error);\n                }\n              }\n            }\n          }\n        }\n\n        return;\n      }\n\n    case HostText:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Update) {\n          {\n            if (finishedWork.stateNode === null) {\n              throw new Error('This should have a text node initialized. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n            }\n\n            var textInstance = finishedWork.stateNode;\n            var newText = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n            // as the newProps. The updatePayload will contain the real change in\n            // this case.\n\n            var oldText = current !== null ? current.memoizedProps : newText;\n\n            try {\n              commitTextUpdate(textInstance, oldText, newText);\n            } catch (error) {\n              captureCommitPhaseError(finishedWork, finishedWork.return, error);\n            }\n          }\n        }\n\n        return;\n      }\n\n    case HostRoot:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Update) {\n          {\n            if (current !== null) {\n              var prevRootState = current.memoizedState;\n\n              if (prevRootState.isDehydrated) {\n                try {\n                  commitHydratedContainer(root.containerInfo);\n                } catch (error) {\n                  captureCommitPhaseError(finishedWork, finishedWork.return, error);\n                }\n              }\n            }\n          }\n        }\n\n        return;\n      }\n\n    case HostPortal:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        return;\n      }\n\n    case SuspenseComponent:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n        var offscreenFiber = finishedWork.child;\n\n        if (offscreenFiber.flags & Visibility) {\n          var offscreenInstance = offscreenFiber.stateNode;\n          var newState = offscreenFiber.memoizedState;\n          var isHidden = newState !== null; // Track the current state on the Offscreen instance so we can\n          // read it during an event\n\n          offscreenInstance.isHidden = isHidden;\n\n          if (isHidden) {\n            var wasHidden = offscreenFiber.alternate !== null && offscreenFiber.alternate.memoizedState !== null;\n\n            if (!wasHidden) {\n              // TODO: Move to passive phase\n              markCommitTimeOfFallback();\n            }\n          }\n        }\n\n        if (flags & Update) {\n          try {\n            commitSuspenseCallback(finishedWork);\n          } catch (error) {\n            captureCommitPhaseError(finishedWork, finishedWork.return, error);\n          }\n\n          attachSuspenseRetryListeners(finishedWork);\n        }\n\n        return;\n      }\n\n    case OffscreenComponent:\n      {\n        var _wasHidden = current !== null && current.memoizedState !== null;\n\n        if ( // TODO: Remove this dead flag\n         finishedWork.mode & ConcurrentMode) {\n          // Before committing the children, track on the stack whether this\n          // offscreen subtree was already hidden, so that we don't unmount the\n          // effects again.\n          var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || _wasHidden;\n          recursivelyTraverseMutationEffects(root, finishedWork);\n          offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n        } else {\n          recursivelyTraverseMutationEffects(root, finishedWork);\n        }\n\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Visibility) {\n          var _offscreenInstance = finishedWork.stateNode;\n          var _newState = finishedWork.memoizedState;\n\n          var _isHidden = _newState !== null;\n\n          var offscreenBoundary = finishedWork; // Track the current state on the Offscreen instance so we can\n          // read it during an event\n\n          _offscreenInstance.isHidden = _isHidden;\n\n          {\n            if (_isHidden) {\n              if (!_wasHidden) {\n                if ((offscreenBoundary.mode & ConcurrentMode) !== NoMode) {\n                  nextEffect = offscreenBoundary;\n                  var offscreenChild = offscreenBoundary.child;\n\n                  while (offscreenChild !== null) {\n                    nextEffect = offscreenChild;\n                    disappearLayoutEffects_begin(offscreenChild);\n                    offscreenChild = offscreenChild.sibling;\n                  }\n                }\n              }\n            }\n          }\n\n          {\n            // TODO: This needs to run whenever there's an insertion or update\n            // inside a hidden Offscreen tree.\n            hideOrUnhideAllChildren(offscreenBoundary, _isHidden);\n          }\n        }\n\n        return;\n      }\n\n    case SuspenseListComponent:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n\n        if (flags & Update) {\n          attachSuspenseRetryListeners(finishedWork);\n        }\n\n        return;\n      }\n\n    case ScopeComponent:\n      {\n\n        return;\n      }\n\n    default:\n      {\n        recursivelyTraverseMutationEffects(root, finishedWork);\n        commitReconciliationEffects(finishedWork);\n        return;\n      }\n  }\n}\n\nfunction commitReconciliationEffects(finishedWork) {\n  // Placement effects (insertions, reorders) can be scheduled on any fiber\n  // type. They needs to happen after the children effects have fired, but\n  // before the effects on this fiber have fired.\n  var flags = finishedWork.flags;\n\n  if (flags & Placement) {\n    try {\n      commitPlacement(finishedWork);\n    } catch (error) {\n      captureCommitPhaseError(finishedWork, finishedWork.return, error);\n    } // Clear the \"placement\" from effect tag so that we know that this is\n    // inserted, before any life-cycles like componentDidMount gets called.\n    // TODO: findDOMNode doesn't rely on this any more but isMounted does\n    // and isMounted is deprecated anyway so we should be able to kill this.\n\n\n    finishedWork.flags &= ~Placement;\n  }\n\n  if (flags & Hydrating) {\n    finishedWork.flags &= ~Hydrating;\n  }\n}\n\nfunction commitLayoutEffects(finishedWork, root, committedLanes) {\n  inProgressLanes = committedLanes;\n  inProgressRoot = root;\n  nextEffect = finishedWork;\n  commitLayoutEffects_begin(finishedWork, root, committedLanes);\n  inProgressLanes = null;\n  inProgressRoot = null;\n}\n\nfunction commitLayoutEffects_begin(subtreeRoot, root, committedLanes) {\n  // Suspense layout effects semantics don't change for legacy roots.\n  var isModernRoot = (subtreeRoot.mode & ConcurrentMode) !== NoMode;\n\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var firstChild = fiber.child;\n\n    if ( fiber.tag === OffscreenComponent && isModernRoot) {\n      // Keep track of the current Offscreen stack's state.\n      var isHidden = fiber.memoizedState !== null;\n      var newOffscreenSubtreeIsHidden = isHidden || offscreenSubtreeIsHidden;\n\n      if (newOffscreenSubtreeIsHidden) {\n        // The Offscreen tree is hidden. Skip over its layout effects.\n        commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n        continue;\n      } else {\n        // TODO (Offscreen) Also check: subtreeFlags & LayoutMask\n        var current = fiber.alternate;\n        var wasHidden = current !== null && current.memoizedState !== null;\n        var newOffscreenSubtreeWasHidden = wasHidden || offscreenSubtreeWasHidden;\n        var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden;\n        var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; // Traverse the Offscreen subtree with the current Offscreen as the root.\n\n        offscreenSubtreeIsHidden = newOffscreenSubtreeIsHidden;\n        offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden;\n\n        if (offscreenSubtreeWasHidden && !prevOffscreenSubtreeWasHidden) {\n          // This is the root of a reappearing boundary. Turn its layout effects\n          // back on.\n          nextEffect = fiber;\n          reappearLayoutEffects_begin(fiber);\n        }\n\n        var child = firstChild;\n\n        while (child !== null) {\n          nextEffect = child;\n          commitLayoutEffects_begin(child, // New root; bubble back up to here and stop.\n          root, committedLanes);\n          child = child.sibling;\n        } // Restore Offscreen state and resume in our-progress traversal.\n\n\n        nextEffect = fiber;\n        offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n        offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n        commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n        continue;\n      }\n    }\n\n    if ((fiber.subtreeFlags & LayoutMask) !== NoFlags && firstChild !== null) {\n      firstChild.return = fiber;\n      nextEffect = firstChild;\n    } else {\n      commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n    }\n  }\n}\n\nfunction commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n\n    if ((fiber.flags & LayoutMask) !== NoFlags) {\n      var current = fiber.alternate;\n      setCurrentFiber(fiber);\n\n      try {\n        commitLayoutEffectOnFiber(root, current, fiber, committedLanes);\n      } catch (error) {\n        captureCommitPhaseError(fiber, fiber.return, error);\n      }\n\n      resetCurrentFiber();\n    }\n\n    if (fiber === subtreeRoot) {\n      nextEffect = null;\n      return;\n    }\n\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction disappearLayoutEffects_begin(subtreeRoot) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var firstChild = fiber.child; // TODO (Offscreen) Check: flags & (RefStatic | LayoutStatic)\n\n    switch (fiber.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case MemoComponent:\n      case SimpleMemoComponent:\n        {\n          if ( fiber.mode & ProfileMode) {\n            try {\n              startLayoutEffectTimer();\n              commitHookEffectListUnmount(Layout, fiber, fiber.return);\n            } finally {\n              recordLayoutEffectDuration(fiber);\n            }\n          } else {\n            commitHookEffectListUnmount(Layout, fiber, fiber.return);\n          }\n\n          break;\n        }\n\n      case ClassComponent:\n        {\n          // TODO (Offscreen) Check: flags & RefStatic\n          safelyDetachRef(fiber, fiber.return);\n          var instance = fiber.stateNode;\n\n          if (typeof instance.componentWillUnmount === 'function') {\n            safelyCallComponentWillUnmount(fiber, fiber.return, instance);\n          }\n\n          break;\n        }\n\n      case HostComponent:\n        {\n          safelyDetachRef(fiber, fiber.return);\n          break;\n        }\n\n      case OffscreenComponent:\n        {\n          // Check if this is a\n          var isHidden = fiber.memoizedState !== null;\n\n          if (isHidden) {\n            // Nested Offscreen tree is already hidden. Don't disappear\n            // its effects.\n            disappearLayoutEffects_complete(subtreeRoot);\n            continue;\n          }\n\n          break;\n        }\n    } // TODO (Offscreen) Check: subtreeFlags & LayoutStatic\n\n\n    if (firstChild !== null) {\n      firstChild.return = fiber;\n      nextEffect = firstChild;\n    } else {\n      disappearLayoutEffects_complete(subtreeRoot);\n    }\n  }\n}\n\nfunction disappearLayoutEffects_complete(subtreeRoot) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n\n    if (fiber === subtreeRoot) {\n      nextEffect = null;\n      return;\n    }\n\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction reappearLayoutEffects_begin(subtreeRoot) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var firstChild = fiber.child;\n\n    if (fiber.tag === OffscreenComponent) {\n      var isHidden = fiber.memoizedState !== null;\n\n      if (isHidden) {\n        // Nested Offscreen tree is still hidden. Don't re-appear its effects.\n        reappearLayoutEffects_complete(subtreeRoot);\n        continue;\n      }\n    } // TODO (Offscreen) Check: subtreeFlags & LayoutStatic\n\n\n    if (firstChild !== null) {\n      // This node may have been reused from a previous render, so we can't\n      // assume its return pointer is correct.\n      firstChild.return = fiber;\n      nextEffect = firstChild;\n    } else {\n      reappearLayoutEffects_complete(subtreeRoot);\n    }\n  }\n}\n\nfunction reappearLayoutEffects_complete(subtreeRoot) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect; // TODO (Offscreen) Check: flags & LayoutStatic\n\n    setCurrentFiber(fiber);\n\n    try {\n      reappearLayoutEffectsOnFiber(fiber);\n    } catch (error) {\n      captureCommitPhaseError(fiber, fiber.return, error);\n    }\n\n    resetCurrentFiber();\n\n    if (fiber === subtreeRoot) {\n      nextEffect = null;\n      return;\n    }\n\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      // This node may have been reused from a previous render, so we can't\n      // assume its return pointer is correct.\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction commitPassiveMountEffects(root, finishedWork, committedLanes, committedTransitions) {\n  nextEffect = finishedWork;\n  commitPassiveMountEffects_begin(finishedWork, root, committedLanes, committedTransitions);\n}\n\nfunction commitPassiveMountEffects_begin(subtreeRoot, root, committedLanes, committedTransitions) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var firstChild = fiber.child;\n\n    if ((fiber.subtreeFlags & PassiveMask) !== NoFlags && firstChild !== null) {\n      firstChild.return = fiber;\n      nextEffect = firstChild;\n    } else {\n      commitPassiveMountEffects_complete(subtreeRoot, root, committedLanes, committedTransitions);\n    }\n  }\n}\n\nfunction commitPassiveMountEffects_complete(subtreeRoot, root, committedLanes, committedTransitions) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n\n    if ((fiber.flags & Passive) !== NoFlags) {\n      setCurrentFiber(fiber);\n\n      try {\n        commitPassiveMountOnFiber(root, fiber, committedLanes, committedTransitions);\n      } catch (error) {\n        captureCommitPhaseError(fiber, fiber.return, error);\n      }\n\n      resetCurrentFiber();\n    }\n\n    if (fiber === subtreeRoot) {\n      nextEffect = null;\n      return;\n    }\n\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction commitPassiveMountOnFiber(finishedRoot, finishedWork, committedLanes, committedTransitions) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        if ( finishedWork.mode & ProfileMode) {\n          startPassiveEffectTimer();\n\n          try {\n            commitHookEffectListMount(Passive$1 | HasEffect, finishedWork);\n          } finally {\n            recordPassiveEffectDuration(finishedWork);\n          }\n        } else {\n          commitHookEffectListMount(Passive$1 | HasEffect, finishedWork);\n        }\n\n        break;\n      }\n  }\n}\n\nfunction commitPassiveUnmountEffects(firstChild) {\n  nextEffect = firstChild;\n  commitPassiveUnmountEffects_begin();\n}\n\nfunction commitPassiveUnmountEffects_begin() {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var child = fiber.child;\n\n    if ((nextEffect.flags & ChildDeletion) !== NoFlags) {\n      var deletions = fiber.deletions;\n\n      if (deletions !== null) {\n        for (var i = 0; i < deletions.length; i++) {\n          var fiberToDelete = deletions[i];\n          nextEffect = fiberToDelete;\n          commitPassiveUnmountEffectsInsideOfDeletedTree_begin(fiberToDelete, fiber);\n        }\n\n        {\n          // A fiber was deleted from this parent fiber, but it's still part of\n          // the previous (alternate) parent fiber's list of children. Because\n          // children are a linked list, an earlier sibling that's still alive\n          // will be connected to the deleted fiber via its `alternate`:\n          //\n          //   live fiber\n          //   --alternate--> previous live fiber\n          //   --sibling--> deleted fiber\n          //\n          // We can't disconnect `alternate` on nodes that haven't been deleted\n          // yet, but we can disconnect the `sibling` and `child` pointers.\n          var previousFiber = fiber.alternate;\n\n          if (previousFiber !== null) {\n            var detachedChild = previousFiber.child;\n\n            if (detachedChild !== null) {\n              previousFiber.child = null;\n\n              do {\n                var detachedSibling = detachedChild.sibling;\n                detachedChild.sibling = null;\n                detachedChild = detachedSibling;\n              } while (detachedChild !== null);\n            }\n          }\n        }\n\n        nextEffect = fiber;\n      }\n    }\n\n    if ((fiber.subtreeFlags & PassiveMask) !== NoFlags && child !== null) {\n      child.return = fiber;\n      nextEffect = child;\n    } else {\n      commitPassiveUnmountEffects_complete();\n    }\n  }\n}\n\nfunction commitPassiveUnmountEffects_complete() {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n\n    if ((fiber.flags & Passive) !== NoFlags) {\n      setCurrentFiber(fiber);\n      commitPassiveUnmountOnFiber(fiber);\n      resetCurrentFiber();\n    }\n\n    var sibling = fiber.sibling;\n\n    if (sibling !== null) {\n      sibling.return = fiber.return;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = fiber.return;\n  }\n}\n\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        if ( finishedWork.mode & ProfileMode) {\n          startPassiveEffectTimer();\n          commitHookEffectListUnmount(Passive$1 | HasEffect, finishedWork, finishedWork.return);\n          recordPassiveEffectDuration(finishedWork);\n        } else {\n          commitHookEffectListUnmount(Passive$1 | HasEffect, finishedWork, finishedWork.return);\n        }\n\n        break;\n      }\n  }\n}\n\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(deletedSubtreeRoot, nearestMountedAncestor) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect; // Deletion effects fire in parent -> child order\n    // TODO: Check if fiber has a PassiveStatic flag\n\n    setCurrentFiber(fiber);\n    commitPassiveUnmountInsideDeletedTreeOnFiber(fiber, nearestMountedAncestor);\n    resetCurrentFiber();\n    var child = fiber.child; // TODO: Only traverse subtree if it has a PassiveStatic flag. (But, if we\n    // do this, still need to handle `deletedTreeCleanUpLevel` correctly.)\n\n    if (child !== null) {\n      child.return = fiber;\n      nextEffect = child;\n    } else {\n      commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot);\n    }\n  }\n}\n\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot) {\n  while (nextEffect !== null) {\n    var fiber = nextEffect;\n    var sibling = fiber.sibling;\n    var returnFiber = fiber.return;\n\n    {\n      // Recursively traverse the entire deleted tree and clean up fiber fields.\n      // This is more aggressive than ideal, and the long term goal is to only\n      // have to detach the deleted tree at the root.\n      detachFiberAfterEffects(fiber);\n\n      if (fiber === deletedSubtreeRoot) {\n        nextEffect = null;\n        return;\n      }\n    }\n\n    if (sibling !== null) {\n      sibling.return = returnFiber;\n      nextEffect = sibling;\n      return;\n    }\n\n    nextEffect = returnFiber;\n  }\n}\n\nfunction commitPassiveUnmountInsideDeletedTreeOnFiber(current, nearestMountedAncestor) {\n  switch (current.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        if ( current.mode & ProfileMode) {\n          startPassiveEffectTimer();\n          commitHookEffectListUnmount(Passive$1, current, nearestMountedAncestor);\n          recordPassiveEffectDuration(current);\n        } else {\n          commitHookEffectListUnmount(Passive$1, current, nearestMountedAncestor);\n        }\n\n        break;\n      }\n  }\n} // TODO: Reuse reappearLayoutEffects traversal here?\n\n\nfunction invokeLayoutEffectMountInDEV(fiber) {\n  {\n    // We don't need to re-check StrictEffectsMode here.\n    // This function is only called if that check has already passed.\n    switch (fiber.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          try {\n            commitHookEffectListMount(Layout | HasEffect, fiber);\n          } catch (error) {\n            captureCommitPhaseError(fiber, fiber.return, error);\n          }\n\n          break;\n        }\n\n      case ClassComponent:\n        {\n          var instance = fiber.stateNode;\n\n          try {\n            instance.componentDidMount();\n          } catch (error) {\n            captureCommitPhaseError(fiber, fiber.return, error);\n          }\n\n          break;\n        }\n    }\n  }\n}\n\nfunction invokePassiveEffectMountInDEV(fiber) {\n  {\n    // We don't need to re-check StrictEffectsMode here.\n    // This function is only called if that check has already passed.\n    switch (fiber.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          try {\n            commitHookEffectListMount(Passive$1 | HasEffect, fiber);\n          } catch (error) {\n            captureCommitPhaseError(fiber, fiber.return, error);\n          }\n\n          break;\n        }\n    }\n  }\n}\n\nfunction invokeLayoutEffectUnmountInDEV(fiber) {\n  {\n    // We don't need to re-check StrictEffectsMode here.\n    // This function is only called if that check has already passed.\n    switch (fiber.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          try {\n            commitHookEffectListUnmount(Layout | HasEffect, fiber, fiber.return);\n          } catch (error) {\n            captureCommitPhaseError(fiber, fiber.return, error);\n          }\n\n          break;\n        }\n\n      case ClassComponent:\n        {\n          var instance = fiber.stateNode;\n\n          if (typeof instance.componentWillUnmount === 'function') {\n            safelyCallComponentWillUnmount(fiber, fiber.return, instance);\n          }\n\n          break;\n        }\n    }\n  }\n}\n\nfunction invokePassiveEffectUnmountInDEV(fiber) {\n  {\n    // We don't need to re-check StrictEffectsMode here.\n    // This function is only called if that check has already passed.\n    switch (fiber.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          try {\n            commitHookEffectListUnmount(Passive$1 | HasEffect, fiber, fiber.return);\n          } catch (error) {\n            captureCommitPhaseError(fiber, fiber.return, error);\n          }\n        }\n    }\n  }\n}\n\nvar COMPONENT_TYPE = 0;\nvar HAS_PSEUDO_CLASS_TYPE = 1;\nvar ROLE_TYPE = 2;\nvar TEST_NAME_TYPE = 3;\nvar TEXT_TYPE = 4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n  var symbolFor = Symbol.for;\n  COMPONENT_TYPE = symbolFor('selector.component');\n  HAS_PSEUDO_CLASS_TYPE = symbolFor('selector.has_pseudo_class');\n  ROLE_TYPE = symbolFor('selector.role');\n  TEST_NAME_TYPE = symbolFor('selector.test_id');\n  TEXT_TYPE = symbolFor('selector.text');\n}\nvar commitHooks = [];\nfunction onCommitRoot$1() {\n  {\n    commitHooks.forEach(function (commitHook) {\n      return commitHook();\n    });\n  }\n}\n\nvar ReactCurrentActQueue = ReactSharedInternals.ReactCurrentActQueue;\nfunction isLegacyActEnvironment(fiber) {\n  {\n    // Legacy mode. We preserve the behavior of React 17's act. It assumes an\n    // act environment whenever `jest` is defined, but you can still turn off\n    // spurious warnings by setting IS_REACT_ACT_ENVIRONMENT explicitly\n    // to false.\n    var isReactActEnvironmentGlobal = // $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global\n    typeof IS_REACT_ACT_ENVIRONMENT !== 'undefined' ? IS_REACT_ACT_ENVIRONMENT : undefined; // $FlowExpectedError - Flow doesn't know about jest\n\n    var jestIsDefined = typeof jest !== 'undefined';\n    return  jestIsDefined && isReactActEnvironmentGlobal !== false;\n  }\n}\nfunction isConcurrentActEnvironment() {\n  {\n    var isReactActEnvironmentGlobal = // $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global\n    typeof IS_REACT_ACT_ENVIRONMENT !== 'undefined' ? IS_REACT_ACT_ENVIRONMENT : undefined;\n\n    if (!isReactActEnvironmentGlobal && ReactCurrentActQueue.current !== null) {\n      // TODO: Include link to relevant documentation page.\n      error('The current testing environment is not configured to support ' + 'act(...)');\n    }\n\n    return isReactActEnvironmentGlobal;\n  }\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n    ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n    ReactCurrentBatchConfig$3 = ReactSharedInternals.ReactCurrentBatchConfig,\n    ReactCurrentActQueue$1 = ReactSharedInternals.ReactCurrentActQueue;\nvar NoContext =\n/*             */\n0;\nvar BatchedContext =\n/*               */\n1;\nvar RenderContext =\n/*                */\n2;\nvar CommitContext =\n/*                */\n4;\nvar RootInProgress = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5;\nvar RootDidNotComplete = 6; // Describes where we are in the React execution stack\n\nvar executionContext = NoContext; // The root we're working on\n\nvar workInProgressRoot = null; // The fiber we're working on\n\nvar workInProgress = null; // The lanes we're rendering\n\nvar workInProgressRootRenderLanes = NoLanes; // Stack that allows components to change the render lanes for its subtree\n// This is a superset of the lanes we started working on at the root. The only\n// case where it's different from `workInProgressRootRenderLanes` is when we\n// enter a subtree that is hidden and needs to be unhidden: Suspense and\n// Offscreen component.\n//\n// Most things in the work loop should deal with workInProgressRootRenderLanes.\n// Most things in begin/complete phases should deal with subtreeRenderLanes.\n\nvar subtreeRenderLanes = NoLanes;\nvar subtreeRenderLanesCursor = createCursor(NoLanes); // Whether to root completed, errored, suspended, etc.\n\nvar workInProgressRootExitStatus = RootInProgress; // A fatal error, if one is thrown\n\nvar workInProgressRootFatalError = null; // \"Included\" lanes refer to lanes that were worked on during this render. It's\n// slightly different than `renderLanes` because `renderLanes` can change as you\n// enter and exit an Offscreen tree. This value is the combination of all render\n// lanes for the entire render phase.\n\nvar workInProgressRootIncludedLanes = NoLanes; // The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\n\nvar workInProgressRootSkippedLanes = NoLanes; // Lanes that were updated (in an interleaved event) during this render.\n\nvar workInProgressRootInterleavedUpdatedLanes = NoLanes; // Lanes that were updated during the render phase (*not* an interleaved event).\n\nvar workInProgressRootPingedLanes = NoLanes; // Errors that are thrown during the render phase.\n\nvar workInProgressRootConcurrentErrors = null; // These are errors that we recovered from without surfacing them to the UI.\n// We will log them once the tree commits.\n\nvar workInProgressRootRecoverableErrors = null; // The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500; // The absolute time for when we should start giving up on rendering\n// more and prefer CPU suspense heuristics instead.\n\nvar workInProgressRootRenderTargetTime = Infinity; // How long a render is supposed to take before we start following CPU\n// suspense heuristics and opt out of rendering more content.\n\nvar RENDER_TIMEOUT_MS = 500;\nvar workInProgressTransitions = null;\n\nfunction resetRenderTimer() {\n  workInProgressRootRenderTargetTime = now() + RENDER_TIMEOUT_MS;\n}\n\nfunction getRenderTargetTime() {\n  return workInProgressRootRenderTargetTime;\n}\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null; // Only used when enableProfilerNestedUpdateScheduledHook is true;\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsLanes = NoLanes;\nvar pendingPassiveProfilerEffects = [];\nvar pendingPassiveTransitions = null; // Use these to prevent an infinite loop of nested updates\n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar isFlushingPassiveEffects = false;\nvar didScheduleUpdateDuringPassiveEffects = false;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0;\nvar rootWithPassiveNestedUpdates = null; // If two updates are scheduled within the same event, we should treat their\n// event times as simultaneous, even if the actual clock time has advanced\n// between the first and second call.\n\nvar currentEventTime = NoTimestamp;\nvar currentEventTransitionLane = NoLanes;\nvar isRunningInsertionEffect = false;\nfunction getWorkInProgressRoot() {\n  return workInProgressRoot;\n}\nfunction requestEventTime() {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    // We're inside React, so it's fine to read the actual time.\n    return now();\n  } // We're not inside React, so we may be in the middle of a browser event.\n\n\n  if (currentEventTime !== NoTimestamp) {\n    // Use the same start time for all updates until we enter React again.\n    return currentEventTime;\n  } // This is the first update since React yielded. Compute a new start time.\n\n\n  currentEventTime = now();\n  return currentEventTime;\n}\nfunction requestUpdateLane(fiber) {\n  // Special cases\n  var mode = fiber.mode;\n\n  if ((mode & ConcurrentMode) === NoMode) {\n    return SyncLane;\n  } else if ( (executionContext & RenderContext) !== NoContext && workInProgressRootRenderLanes !== NoLanes) {\n    // This is a render phase update. These are not officially supported. The\n    // old behavior is to give this the same \"thread\" (lanes) as\n    // whatever is currently rendering. So if you call `setState` on a component\n    // that happens later in the same render, it will flush. Ideally, we want to\n    // remove the special case and treat them as if they came from an\n    // interleaved event. Regardless, this pattern is not officially supported.\n    // This behavior is only a fallback. The flag only exists until we can roll\n    // out the setState warning, since existing code might accidentally rely on\n    // the current behavior.\n    return pickArbitraryLane(workInProgressRootRenderLanes);\n  }\n\n  var isTransition = requestCurrentTransition() !== NoTransition;\n\n  if (isTransition) {\n    if ( ReactCurrentBatchConfig$3.transition !== null) {\n      var transition = ReactCurrentBatchConfig$3.transition;\n\n      if (!transition._updatedFibers) {\n        transition._updatedFibers = new Set();\n      }\n\n      transition._updatedFibers.add(fiber);\n    } // The algorithm for assigning an update to a lane should be stable for all\n    // updates at the same priority within the same event. To do this, the\n    // inputs to the algorithm must be the same.\n    //\n    // The trick we use is to cache the first of each of these inputs within an\n    // event. Then reset the cached values once we can be sure the event is\n    // over. Our heuristic for that is whenever we enter a concurrent work loop.\n\n\n    if (currentEventTransitionLane === NoLane) {\n      // All transitions within the same event are assigned the same lane.\n      currentEventTransitionLane = claimNextTransitionLane();\n    }\n\n    return currentEventTransitionLane;\n  } // Updates originating inside certain React methods, like flushSync, have\n  // their priority set by tracking it with a context variable.\n  //\n  // The opaque type returned by the host config is internally a lane, so we can\n  // use that directly.\n  // TODO: Move this type conversion to the event priority module.\n\n\n  var updateLane = getCurrentUpdatePriority();\n\n  if (updateLane !== NoLane) {\n    return updateLane;\n  } // This update originated outside React. Ask the host environment for an\n  // appropriate priority, based on the type of event.\n  //\n  // The opaque type returned by the host config is internally a lane, so we can\n  // use that directly.\n  // TODO: Move this type conversion to the event priority module.\n\n\n  var eventLane = getCurrentEventPriority();\n  return eventLane;\n}\n\nfunction requestRetryLane(fiber) {\n  // This is a fork of `requestUpdateLane` designed specifically for Suspense\n  // \"retries\" — a special update that attempts to flip a Suspense boundary\n  // from its placeholder state to its primary/resolved state.\n  // Special cases\n  var mode = fiber.mode;\n\n  if ((mode & ConcurrentMode) === NoMode) {\n    return SyncLane;\n  }\n\n  return claimNextRetryLane();\n}\n\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n  checkForNestedUpdates();\n\n  {\n    if (isRunningInsertionEffect) {\n      error('useInsertionEffect must not schedule updates.');\n    }\n  }\n\n  {\n    if (isFlushingPassiveEffects) {\n      didScheduleUpdateDuringPassiveEffects = true;\n    }\n  } // Mark that the root has a pending update.\n\n\n  markRootUpdated(root, lane, eventTime);\n\n  if ((executionContext & RenderContext) !== NoLanes && root === workInProgressRoot) {\n    // This update was dispatched during the render phase. This is a mistake\n    // if the update originates from user space (with the exception of local\n    // hook updates, which are handled differently and don't reach this\n    // function), but there are some internal React features that use this as\n    // an implementation detail, like selective hydration.\n    warnAboutRenderPhaseUpdatesInDEV(fiber); // Track lanes that were updated during the render phase\n  } else {\n    // This is a normal update, scheduled from outside the render phase. For\n    // example, during an input event.\n    {\n      if (isDevToolsPresent) {\n        addFiberToLanesMap(root, fiber, lane);\n      }\n    }\n\n    warnIfUpdatesNotWrappedWithActDEV(fiber);\n\n    if (root === workInProgressRoot) {\n      // Received an update to a tree that's in the middle of rendering. Mark\n      // that there was an interleaved update work on this root. Unless the\n      // `deferRenderPhaseUpdateToNextBatch` flag is off and this is a render\n      // phase update. In that case, we don't treat render phase updates as if\n      // they were interleaved, for backwards compat reasons.\n      if ( (executionContext & RenderContext) === NoContext) {\n        workInProgressRootInterleavedUpdatedLanes = mergeLanes(workInProgressRootInterleavedUpdatedLanes, lane);\n      }\n\n      if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n        // The root already suspended with a delay, which means this render\n        // definitely won't finish. Since we have a new update, let's mark it as\n        // suspended now, right before marking the incoming update. This has the\n        // effect of interrupting the current render and switching to the update.\n        // TODO: Make sure this doesn't override pings that happen while we've\n        // already started rendering.\n        markRootSuspended$1(root, workInProgressRootRenderLanes);\n      }\n    }\n\n    ensureRootIsScheduled(root, eventTime);\n\n    if (lane === SyncLane && executionContext === NoContext && (fiber.mode & ConcurrentMode) === NoMode && // Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.\n    !( ReactCurrentActQueue$1.isBatchingLegacy)) {\n      // Flush the synchronous work now, unless we're already working or inside\n      // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n      // scheduleCallbackForFiber to preserve the ability to schedule a callback\n      // without immediately flushing it. We only do this for user-initiated\n      // updates, to preserve historical behavior of legacy mode.\n      resetRenderTimer();\n      flushSyncCallbacksOnlyInLegacyMode();\n    }\n  }\n}\nfunction scheduleInitialHydrationOnRoot(root, lane, eventTime) {\n  // This is a special fork of scheduleUpdateOnFiber that is only used to\n  // schedule the initial hydration of a root that has just been created. Most\n  // of the stuff in scheduleUpdateOnFiber can be skipped.\n  //\n  // The main reason for this separate path, though, is to distinguish the\n  // initial children from subsequent updates. In fully client-rendered roots\n  // (createRoot instead of hydrateRoot), all top-level renders are modeled as\n  // updates, but hydration roots are special because the initial render must\n  // match what was rendered on the server.\n  var current = root.current;\n  current.lanes = lane;\n  markRootUpdated(root, lane, eventTime);\n  ensureRootIsScheduled(root, eventTime);\n}\nfunction isUnsafeClassRenderPhaseUpdate(fiber) {\n  // Check if this is a render phase update. Only called by class components,\n  // which special (deprecated) behavior for UNSAFE_componentWillReceive props.\n  return (// TODO: Remove outdated deferRenderPhaseUpdateToNextBatch experiment. We\n    // decided not to enable it.\n     (executionContext & RenderContext) !== NoContext\n  );\n} // Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the priority\n// of the existing task is the same as the priority of the next level that the\n// root has work on. This function is called on every update, and right before\n// exiting a task.\n\nfunction ensureRootIsScheduled(root, currentTime) {\n  var existingCallbackNode = root.callbackNode; // Check if any lanes are being starved by other work. If so, mark them as\n  // expired so we know to work on those next.\n\n  markStarvedLanesAsExpired(root, currentTime); // Determine the next lanes to work on, and their priority.\n\n  var nextLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n  if (nextLanes === NoLanes) {\n    // Special case: There's nothing to work on.\n    if (existingCallbackNode !== null) {\n      cancelCallback$1(existingCallbackNode);\n    }\n\n    root.callbackNode = null;\n    root.callbackPriority = NoLane;\n    return;\n  } // We use the highest priority lane to represent the priority of the callback.\n\n\n  var newCallbackPriority = getHighestPriorityLane(nextLanes); // Check if there's an existing task. We may be able to reuse it.\n\n  var existingCallbackPriority = root.callbackPriority;\n\n  if (existingCallbackPriority === newCallbackPriority && // Special case related to `act`. If the currently scheduled task is a\n  // Scheduler task, rather than an `act` task, cancel it and re-scheduled\n  // on the `act` queue.\n  !( ReactCurrentActQueue$1.current !== null && existingCallbackNode !== fakeActCallbackNode)) {\n    {\n      // If we're going to re-use an existing task, it needs to exist.\n      // Assume that discrete update microtasks are non-cancellable and null.\n      // TODO: Temporary until we confirm this warning is not fired.\n      if (existingCallbackNode == null && existingCallbackPriority !== SyncLane) {\n        error('Expected scheduled callback to exist. This error is likely caused by a bug in React. Please file an issue.');\n      }\n    } // The priority hasn't changed. We can reuse the existing task. Exit.\n\n\n    return;\n  }\n\n  if (existingCallbackNode != null) {\n    // Cancel the existing callback. We'll schedule a new one below.\n    cancelCallback$1(existingCallbackNode);\n  } // Schedule a new callback.\n\n\n  var newCallbackNode;\n\n  if (newCallbackPriority === SyncLane) {\n    // Special case: Sync React callbacks are scheduled on a special\n    // internal queue\n    if (root.tag === LegacyRoot) {\n      if ( ReactCurrentActQueue$1.isBatchingLegacy !== null) {\n        ReactCurrentActQueue$1.didScheduleLegacyUpdate = true;\n      }\n\n      scheduleLegacySyncCallback(performSyncWorkOnRoot.bind(null, root));\n    } else {\n      scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n    }\n\n    {\n      // Flush the queue in a microtask.\n      if ( ReactCurrentActQueue$1.current !== null) {\n        // Inside `act`, use our internal `act` queue so that these get flushed\n        // at the end of the current scope even when using the sync version\n        // of `act`.\n        ReactCurrentActQueue$1.current.push(flushSyncCallbacks);\n      } else {\n        scheduleMicrotask(function () {\n          // In Safari, appending an iframe forces microtasks to run.\n          // https://github.com/facebook/react/issues/22459\n          // We don't support running callbacks in the middle of render\n          // or commit so we need to check against that.\n          if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n            // Note that this would still prematurely flush the callbacks\n            // if this happens outside render or commit phase (e.g. in an event).\n            flushSyncCallbacks();\n          }\n        });\n      }\n    }\n\n    newCallbackNode = null;\n  } else {\n    var schedulerPriorityLevel;\n\n    switch (lanesToEventPriority(nextLanes)) {\n      case DiscreteEventPriority:\n        schedulerPriorityLevel = ImmediatePriority;\n        break;\n\n      case ContinuousEventPriority:\n        schedulerPriorityLevel = UserBlockingPriority;\n        break;\n\n      case DefaultEventPriority:\n        schedulerPriorityLevel = NormalPriority;\n        break;\n\n      case IdleEventPriority:\n        schedulerPriorityLevel = IdlePriority;\n        break;\n\n      default:\n        schedulerPriorityLevel = NormalPriority;\n        break;\n    }\n\n    newCallbackNode = scheduleCallback$1(schedulerPriorityLevel, performConcurrentWorkOnRoot.bind(null, root));\n  }\n\n  root.callbackPriority = newCallbackPriority;\n  root.callbackNode = newCallbackNode;\n} // This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\n\n\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n  {\n    resetNestedUpdateFlag();\n  } // Since we know we're in a React event, we can clear the current\n  // event time. The next update will compute a new event time.\n\n\n  currentEventTime = NoTimestamp;\n  currentEventTransitionLane = NoLanes;\n\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    throw new Error('Should not already be working.');\n  } // Flush any pending passive effects before deciding which lanes to work on,\n  // in case they schedule additional work.\n\n\n  var originalCallbackNode = root.callbackNode;\n  var didFlushPassiveEffects = flushPassiveEffects();\n\n  if (didFlushPassiveEffects) {\n    // Something in the passive effect phase may have canceled the current task.\n    // Check if the task node for this root was changed.\n    if (root.callbackNode !== originalCallbackNode) {\n      // The current task was canceled. Exit. We don't need to call\n      // `ensureRootIsScheduled` because the check above implies either that\n      // there's a new task, or that there's no remaining work on this root.\n      return null;\n    }\n  } // Determine the next lanes to work on, using the fields stored\n  // on the root.\n\n\n  var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n  if (lanes === NoLanes) {\n    // Defensive coding. This is never expected to happen.\n    return null;\n  } // We disable time-slicing in some cases: if the work has been CPU-bound\n  // for too long (\"expired\" work, to prevent starvation), or we're in\n  // sync-updates-by-default mode.\n  // TODO: We only check `didTimeout` defensively, to account for a Scheduler\n  // bug we're still investigating. Once the bug in Scheduler is fixed,\n  // we can remove this, since we track expiration ourselves.\n\n\n  var shouldTimeSlice = !includesBlockingLane(root, lanes) && !includesExpiredLane(root, lanes) && ( !didTimeout);\n  var exitStatus = shouldTimeSlice ? renderRootConcurrent(root, lanes) : renderRootSync(root, lanes);\n\n  if (exitStatus !== RootInProgress) {\n    if (exitStatus === RootErrored) {\n      // If something threw an error, try rendering one more time. We'll\n      // render synchronously to block concurrent data mutations, and we'll\n      // includes all pending updates are included. If it still fails after\n      // the second attempt, we'll give up and commit the resulting tree.\n      var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n      if (errorRetryLanes !== NoLanes) {\n        lanes = errorRetryLanes;\n        exitStatus = recoverFromConcurrentError(root, errorRetryLanes);\n      }\n    }\n\n    if (exitStatus === RootFatalErrored) {\n      var fatalError = workInProgressRootFatalError;\n      prepareFreshStack(root, NoLanes);\n      markRootSuspended$1(root, lanes);\n      ensureRootIsScheduled(root, now());\n      throw fatalError;\n    }\n\n    if (exitStatus === RootDidNotComplete) {\n      // The render unwound without completing the tree. This happens in special\n      // cases where need to exit the current render without producing a\n      // consistent tree or committing.\n      //\n      // This should only happen during a concurrent render, not a discrete or\n      // synchronous update. We should have already checked for this when we\n      // unwound the stack.\n      markRootSuspended$1(root, lanes);\n    } else {\n      // The render completed.\n      // Check if this render may have yielded to a concurrent event, and if so,\n      // confirm that any newly rendered stores are consistent.\n      // TODO: It's possible that even a concurrent render may never have yielded\n      // to the main thread, if it was fast enough, or if it expired. We could\n      // skip the consistency check in that case, too.\n      var renderWasConcurrent = !includesBlockingLane(root, lanes);\n      var finishedWork = root.current.alternate;\n\n      if (renderWasConcurrent && !isRenderConsistentWithExternalStores(finishedWork)) {\n        // A store was mutated in an interleaved event. Render again,\n        // synchronously, to block further mutations.\n        exitStatus = renderRootSync(root, lanes); // We need to check again if something threw\n\n        if (exitStatus === RootErrored) {\n          var _errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n          if (_errorRetryLanes !== NoLanes) {\n            lanes = _errorRetryLanes;\n            exitStatus = recoverFromConcurrentError(root, _errorRetryLanes); // We assume the tree is now consistent because we didn't yield to any\n            // concurrent events.\n          }\n        }\n\n        if (exitStatus === RootFatalErrored) {\n          var _fatalError = workInProgressRootFatalError;\n          prepareFreshStack(root, NoLanes);\n          markRootSuspended$1(root, lanes);\n          ensureRootIsScheduled(root, now());\n          throw _fatalError;\n        }\n      } // We now have a consistent tree. The next step is either to commit it,\n      // or, if something suspended, wait to commit it after a timeout.\n\n\n      root.finishedWork = finishedWork;\n      root.finishedLanes = lanes;\n      finishConcurrentRender(root, exitStatus, lanes);\n    }\n  }\n\n  ensureRootIsScheduled(root, now());\n\n  if (root.callbackNode === originalCallbackNode) {\n    // The task node scheduled for this root is the same one that's\n    // currently executed. Need to return a continuation.\n    return performConcurrentWorkOnRoot.bind(null, root);\n  }\n\n  return null;\n}\n\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n  // If an error occurred during hydration, discard server response and fall\n  // back to client side render.\n  // Before rendering again, save the errors from the previous attempt.\n  var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n\n  if (isRootDehydrated(root)) {\n    // The shell failed to hydrate. Set a flag to force a client rendering\n    // during the next attempt. To do this, we call prepareFreshStack now\n    // to create the root work-in-progress fiber. This is a bit weird in terms\n    // of factoring, because it relies on renderRootSync not calling\n    // prepareFreshStack again in the call below, which happens because the\n    // root and lanes haven't changed.\n    //\n    // TODO: I think what we should do is set ForceClientRender inside\n    // throwException, like we do for nested Suspense boundaries. The reason\n    // it's here instead is so we can switch to the synchronous work loop, too.\n    // Something to consider for a future refactor.\n    var rootWorkInProgress = prepareFreshStack(root, errorRetryLanes);\n    rootWorkInProgress.flags |= ForceClientRender;\n\n    {\n      errorHydratingContainer(root.containerInfo);\n    }\n  }\n\n  var exitStatus = renderRootSync(root, errorRetryLanes);\n\n  if (exitStatus !== RootErrored) {\n    // Successfully finished rendering on retry\n    // The errors from the failed first attempt have been recovered. Add\n    // them to the collection of recoverable errors. We'll log them in the\n    // commit phase.\n    var errorsFromSecondAttempt = workInProgressRootRecoverableErrors;\n    workInProgressRootRecoverableErrors = errorsFromFirstAttempt; // The errors from the second attempt should be queued after the errors\n    // from the first attempt, to preserve the causal sequence.\n\n    if (errorsFromSecondAttempt !== null) {\n      queueRecoverableErrors(errorsFromSecondAttempt);\n    }\n  }\n\n  return exitStatus;\n}\n\nfunction queueRecoverableErrors(errors) {\n  if (workInProgressRootRecoverableErrors === null) {\n    workInProgressRootRecoverableErrors = errors;\n  } else {\n    workInProgressRootRecoverableErrors.push.apply(workInProgressRootRecoverableErrors, errors);\n  }\n}\n\nfunction finishConcurrentRender(root, exitStatus, lanes) {\n  switch (exitStatus) {\n    case RootInProgress:\n    case RootFatalErrored:\n      {\n        throw new Error('Root did not complete. This is a bug in React.');\n      }\n    // Flow knows about invariant, so it complains if I add a break\n    // statement, but eslint doesn't know about invariant, so it complains\n    // if I do. eslint-disable-next-line no-fallthrough\n\n    case RootErrored:\n      {\n        // We should have already attempted to retry this tree. If we reached\n        // this point, it errored again. Commit it.\n        commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n        break;\n      }\n\n    case RootSuspended:\n      {\n        markRootSuspended$1(root, lanes); // We have an acceptable loading state. We need to figure out if we\n        // should immediately commit it or wait a bit.\n\n        if (includesOnlyRetries(lanes) && // do not delay if we're inside an act() scope\n        !shouldForceFlushFallbacksInDEV()) {\n          // This render only included retries, no updates. Throttle committing\n          // retries so that we don't show too many loading states too quickly.\n          var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.\n\n          if (msUntilTimeout > 10) {\n            var nextLanes = getNextLanes(root, NoLanes);\n\n            if (nextLanes !== NoLanes) {\n              // There's additional work on this root.\n              break;\n            }\n\n            var suspendedLanes = root.suspendedLanes;\n\n            if (!isSubsetOfLanes(suspendedLanes, lanes)) {\n              // We should prefer to render the fallback of at the last\n              // suspended level. Ping the last suspended level to try\n              // rendering it again.\n              // FIXME: What if the suspended lanes are Idle? Should not restart.\n              var eventTime = requestEventTime();\n              markRootPinged(root, suspendedLanes);\n              break;\n            } // The render is suspended, it hasn't timed out, and there's no\n            // lower priority work to do. Instead of committing the fallback\n            // immediately, wait for more data to arrive.\n\n\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), msUntilTimeout);\n            break;\n          }\n        } // The work expired. Commit immediately.\n\n\n        commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n        break;\n      }\n\n    case RootSuspendedWithDelay:\n      {\n        markRootSuspended$1(root, lanes);\n\n        if (includesOnlyTransitions(lanes)) {\n          // This is a transition, so we should exit without committing a\n          // placeholder and without scheduling a timeout. Delay indefinitely\n          // until we receive more data.\n          break;\n        }\n\n        if (!shouldForceFlushFallbacksInDEV()) {\n          // This is not a transition, but we did trigger an avoided state.\n          // Schedule a placeholder to display after a short delay, using the Just\n          // Noticeable Difference.\n          // TODO: Is the JND optimization worth the added complexity? If this is\n          // the only reason we track the event time, then probably not.\n          // Consider removing.\n          var mostRecentEventTime = getMostRecentEventTime(root, lanes);\n          var eventTimeMs = mostRecentEventTime;\n          var timeElapsedMs = now() - eventTimeMs;\n\n          var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; // Don't bother with a very short suspense time.\n\n\n          if (_msUntilTimeout > 10) {\n            // Instead of committing the fallback immediately, wait for more data\n            // to arrive.\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), _msUntilTimeout);\n            break;\n          }\n        } // Commit the placeholder.\n\n\n        commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n        break;\n      }\n\n    case RootCompleted:\n      {\n        // The work completed. Ready to commit.\n        commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n        break;\n      }\n\n    default:\n      {\n        throw new Error('Unknown root exit status.');\n      }\n  }\n}\n\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n  // Search the rendered tree for external store reads, and check whether the\n  // stores were mutated in a concurrent event. Intentionally using an iterative\n  // loop instead of recursion so we can exit early.\n  var node = finishedWork;\n\n  while (true) {\n    if (node.flags & StoreConsistency) {\n      var updateQueue = node.updateQueue;\n\n      if (updateQueue !== null) {\n        var checks = updateQueue.stores;\n\n        if (checks !== null) {\n          for (var i = 0; i < checks.length; i++) {\n            var check = checks[i];\n            var getSnapshot = check.getSnapshot;\n            var renderedValue = check.value;\n\n            try {\n              if (!objectIs(getSnapshot(), renderedValue)) {\n                // Found an inconsistent store.\n                return false;\n              }\n            } catch (error) {\n              // If `getSnapshot` throws, return `false`. This will schedule\n              // a re-render, and the error will be rethrown during render.\n              return false;\n            }\n          }\n        }\n      }\n    }\n\n    var child = node.child;\n\n    if (node.subtreeFlags & StoreConsistency && child !== null) {\n      child.return = node;\n      node = child;\n      continue;\n    }\n\n    if (node === finishedWork) {\n      return true;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === finishedWork) {\n        return true;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  } // Flow doesn't know this is unreachable, but eslint does\n  // eslint-disable-next-line no-unreachable\n\n\n  return true;\n}\n\nfunction markRootSuspended$1(root, suspendedLanes) {\n  // When suspending, we should always exclude lanes that were pinged or (more\n  // rarely, since we try to avoid it) updated during the render phase.\n  // TODO: Lol maybe there's a better way to factor this besides this\n  // obnoxiously named function :)\n  suspendedLanes = removeLanes(suspendedLanes, workInProgressRootPingedLanes);\n  suspendedLanes = removeLanes(suspendedLanes, workInProgressRootInterleavedUpdatedLanes);\n  markRootSuspended(root, suspendedLanes);\n} // This is the entry point for synchronous tasks that don't go\n// through Scheduler\n\n\nfunction performSyncWorkOnRoot(root) {\n  {\n    syncNestedUpdateFlag();\n  }\n\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    throw new Error('Should not already be working.');\n  }\n\n  flushPassiveEffects();\n  var lanes = getNextLanes(root, NoLanes);\n\n  if (!includesSomeLane(lanes, SyncLane)) {\n    // There's no remaining sync work left.\n    ensureRootIsScheduled(root, now());\n    return null;\n  }\n\n  var exitStatus = renderRootSync(root, lanes);\n\n  if (root.tag !== LegacyRoot && exitStatus === RootErrored) {\n    // If something threw an error, try rendering one more time. We'll render\n    // synchronously to block concurrent data mutations, and we'll includes\n    // all pending updates are included. If it still fails after the second\n    // attempt, we'll give up and commit the resulting tree.\n    var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n    if (errorRetryLanes !== NoLanes) {\n      lanes = errorRetryLanes;\n      exitStatus = recoverFromConcurrentError(root, errorRetryLanes);\n    }\n  }\n\n  if (exitStatus === RootFatalErrored) {\n    var fatalError = workInProgressRootFatalError;\n    prepareFreshStack(root, NoLanes);\n    markRootSuspended$1(root, lanes);\n    ensureRootIsScheduled(root, now());\n    throw fatalError;\n  }\n\n  if (exitStatus === RootDidNotComplete) {\n    throw new Error('Root did not complete. This is a bug in React.');\n  } // We now have a consistent tree. Because this is a sync render, we\n  // will commit it even if something suspended.\n\n\n  var finishedWork = root.current.alternate;\n  root.finishedWork = finishedWork;\n  root.finishedLanes = lanes;\n  commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); // Before exiting, make sure there's a callback scheduled for the next\n  // pending level.\n\n  ensureRootIsScheduled(root, now());\n  return null;\n}\n\nfunction flushRoot(root, lanes) {\n  if (lanes !== NoLanes) {\n    markRootEntangled(root, mergeLanes(lanes, SyncLane));\n    ensureRootIsScheduled(root, now());\n\n    if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n      resetRenderTimer();\n      flushSyncCallbacks();\n    }\n  }\n}\nfunction batchedUpdates$1(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext; // If there were legacy sync updates, flush them at the end of the outer\n    // most batchedUpdates-like method.\n\n    if (executionContext === NoContext && // Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.\n    !( ReactCurrentActQueue$1.isBatchingLegacy)) {\n      resetRenderTimer();\n      flushSyncCallbacksOnlyInLegacyMode();\n    }\n  }\n}\nfunction discreteUpdates(fn, a, b, c, d) {\n  var previousPriority = getCurrentUpdatePriority();\n  var prevTransition = ReactCurrentBatchConfig$3.transition;\n\n  try {\n    ReactCurrentBatchConfig$3.transition = null;\n    setCurrentUpdatePriority(DiscreteEventPriority);\n    return fn(a, b, c, d);\n  } finally {\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig$3.transition = prevTransition;\n\n    if (executionContext === NoContext) {\n      resetRenderTimer();\n    }\n  }\n} // Overload the definition to the two valid signatures.\n// Warning, this opts-out of checking the function body.\n\n// eslint-disable-next-line no-redeclare\nfunction flushSync(fn) {\n  // In legacy mode, we flush pending passive effects at the beginning of the\n  // next event, not at the end of the previous one.\n  if (rootWithPendingPassiveEffects !== null && rootWithPendingPassiveEffects.tag === LegacyRoot && (executionContext & (RenderContext | CommitContext)) === NoContext) {\n    flushPassiveEffects();\n  }\n\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n  var prevTransition = ReactCurrentBatchConfig$3.transition;\n  var previousPriority = getCurrentUpdatePriority();\n\n  try {\n    ReactCurrentBatchConfig$3.transition = null;\n    setCurrentUpdatePriority(DiscreteEventPriority);\n\n    if (fn) {\n      return fn();\n    } else {\n      return undefined;\n    }\n  } finally {\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig$3.transition = prevTransition;\n    executionContext = prevExecutionContext; // Flush the immediate callbacks that were scheduled during this batch.\n    // Note that this will happen even if batchedUpdates is higher up\n    // the stack.\n\n    if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n      flushSyncCallbacks();\n    }\n  }\n}\nfunction isAlreadyRendering() {\n  // Used by the renderer to print a warning if certain APIs are called from\n  // the wrong context.\n  return  (executionContext & (RenderContext | CommitContext)) !== NoContext;\n}\nfunction pushRenderLanes(fiber, lanes) {\n  push(subtreeRenderLanesCursor, subtreeRenderLanes, fiber);\n  subtreeRenderLanes = mergeLanes(subtreeRenderLanes, lanes);\n  workInProgressRootIncludedLanes = mergeLanes(workInProgressRootIncludedLanes, lanes);\n}\nfunction popRenderLanes(fiber) {\n  subtreeRenderLanes = subtreeRenderLanesCursor.current;\n  pop(subtreeRenderLanesCursor, fiber);\n}\n\nfunction prepareFreshStack(root, lanes) {\n  root.finishedWork = null;\n  root.finishedLanes = NoLanes;\n  var timeoutHandle = root.timeoutHandle;\n\n  if (timeoutHandle !== noTimeout) {\n    // The root previous suspended and scheduled a timeout to commit a fallback\n    // state. Now that we have additional work, cancel the timeout.\n    root.timeoutHandle = noTimeout; // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n\n    cancelTimeout(timeoutHandle);\n  }\n\n  if (workInProgress !== null) {\n    var interruptedWork = workInProgress.return;\n\n    while (interruptedWork !== null) {\n      var current = interruptedWork.alternate;\n      unwindInterruptedWork(current, interruptedWork);\n      interruptedWork = interruptedWork.return;\n    }\n  }\n\n  workInProgressRoot = root;\n  var rootWorkInProgress = createWorkInProgress(root.current, null);\n  workInProgress = rootWorkInProgress;\n  workInProgressRootRenderLanes = subtreeRenderLanes = workInProgressRootIncludedLanes = lanes;\n  workInProgressRootExitStatus = RootInProgress;\n  workInProgressRootFatalError = null;\n  workInProgressRootSkippedLanes = NoLanes;\n  workInProgressRootInterleavedUpdatedLanes = NoLanes;\n  workInProgressRootPingedLanes = NoLanes;\n  workInProgressRootConcurrentErrors = null;\n  workInProgressRootRecoverableErrors = null;\n  finishQueueingConcurrentUpdates();\n\n  {\n    ReactStrictModeWarnings.discardPendingWarnings();\n  }\n\n  return rootWorkInProgress;\n}\n\nfunction handleError(root, thrownValue) {\n  do {\n    var erroredWork = workInProgress;\n\n    try {\n      // Reset module-level state that was set during the render phase.\n      resetContextDependencies();\n      resetHooksAfterThrow();\n      resetCurrentFiber(); // TODO: I found and added this missing line while investigating a\n      // separate issue. Write a regression test using string refs.\n\n      ReactCurrentOwner$2.current = null;\n\n      if (erroredWork === null || erroredWork.return === null) {\n        // Expected to be working on a non-root fiber. This is a fatal error\n        // because there's no ancestor that can handle it; the root is\n        // supposed to capture all errors that weren't caught by an error\n        // boundary.\n        workInProgressRootExitStatus = RootFatalErrored;\n        workInProgressRootFatalError = thrownValue; // Set `workInProgress` to null. This represents advancing to the next\n        // sibling, or the parent if there are no siblings. But since the root\n        // has no siblings nor a parent, we set it to null. Usually this is\n        // handled by `completeUnitOfWork` or `unwindWork`, but since we're\n        // intentionally not calling those, we need set it here.\n        // TODO: Consider calling `unwindWork` to pop the contexts.\n\n        workInProgress = null;\n        return;\n      }\n\n      if (enableProfilerTimer && erroredWork.mode & ProfileMode) {\n        // Record the time spent rendering before an error was thrown. This\n        // avoids inaccurate Profiler durations in the case of a\n        // suspended render.\n        stopProfilerTimerIfRunningAndRecordDelta(erroredWork, true);\n      }\n\n      if (enableSchedulingProfiler) {\n        markComponentRenderStopped();\n\n        if (thrownValue !== null && typeof thrownValue === 'object' && typeof thrownValue.then === 'function') {\n          var wakeable = thrownValue;\n          markComponentSuspended(erroredWork, wakeable, workInProgressRootRenderLanes);\n        } else {\n          markComponentErrored(erroredWork, thrownValue, workInProgressRootRenderLanes);\n        }\n      }\n\n      throwException(root, erroredWork.return, erroredWork, thrownValue, workInProgressRootRenderLanes);\n      completeUnitOfWork(erroredWork);\n    } catch (yetAnotherThrownValue) {\n      // Something in the return path also threw.\n      thrownValue = yetAnotherThrownValue;\n\n      if (workInProgress === erroredWork && erroredWork !== null) {\n        // If this boundary has already errored, then we had trouble processing\n        // the error. Bubble it to the next boundary.\n        erroredWork = erroredWork.return;\n        workInProgress = erroredWork;\n      } else {\n        erroredWork = workInProgress;\n      }\n\n      continue;\n    } // Return to the normal work loop.\n\n\n    return;\n  } while (true);\n}\n\nfunction pushDispatcher() {\n  var prevDispatcher = ReactCurrentDispatcher$2.current;\n  ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n\n  if (prevDispatcher === null) {\n    // The React isomorphic package does not include a default dispatcher.\n    // Instead the first renderer will lazily attach one, in order to give\n    // nicer error messages.\n    return ContextOnlyDispatcher;\n  } else {\n    return prevDispatcher;\n  }\n}\n\nfunction popDispatcher(prevDispatcher) {\n  ReactCurrentDispatcher$2.current = prevDispatcher;\n}\n\nfunction markCommitTimeOfFallback() {\n  globalMostRecentFallbackTime = now();\n}\nfunction markSkippedUpdateLanes(lane) {\n  workInProgressRootSkippedLanes = mergeLanes(lane, workInProgressRootSkippedLanes);\n}\nfunction renderDidSuspend() {\n  if (workInProgressRootExitStatus === RootInProgress) {\n    workInProgressRootExitStatus = RootSuspended;\n  }\n}\nfunction renderDidSuspendDelayIfPossible() {\n  if (workInProgressRootExitStatus === RootInProgress || workInProgressRootExitStatus === RootSuspended || workInProgressRootExitStatus === RootErrored) {\n    workInProgressRootExitStatus = RootSuspendedWithDelay;\n  } // Check if there are updates that we skipped tree that might have unblocked\n  // this render.\n\n\n  if (workInProgressRoot !== null && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootInterleavedUpdatedLanes))) {\n    // Mark the current render as suspended so that we switch to working on\n    // the updates that were skipped. Usually we only suspend at the end of\n    // the render phase.\n    // TODO: We should probably always mark the root as suspended immediately\n    // (inside this function), since by suspending at the end of the render\n    // phase introduces a potential mistake where we suspend lanes that were\n    // pinged or updated while we were rendering.\n    markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n  }\n}\nfunction renderDidError(error) {\n  if (workInProgressRootExitStatus !== RootSuspendedWithDelay) {\n    workInProgressRootExitStatus = RootErrored;\n  }\n\n  if (workInProgressRootConcurrentErrors === null) {\n    workInProgressRootConcurrentErrors = [error];\n  } else {\n    workInProgressRootConcurrentErrors.push(error);\n  }\n} // Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\n\nfunction renderHasNotSuspendedYet() {\n  // If something errored or completed, we can't really be sure,\n  // so those are false.\n  return workInProgressRootExitStatus === RootInProgress;\n}\n\nfunction renderRootSync(root, lanes) {\n  var prevExecutionContext = executionContext;\n  executionContext |= RenderContext;\n  var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n  // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n    {\n      if (isDevToolsPresent) {\n        var memoizedUpdaters = root.memoizedUpdaters;\n\n        if (memoizedUpdaters.size > 0) {\n          restorePendingUpdaters(root, workInProgressRootRenderLanes);\n          memoizedUpdaters.clear();\n        } // At this point, move Fibers that scheduled the upcoming work from the Map to the Set.\n        // If we bailout on this work, we'll move them back (like above).\n        // It's important to move them now in case the work spawns more work at the same priority with different updaters.\n        // That way we can keep the current update and future updates separate.\n\n\n        movePendingFibersToMemoized(root, lanes);\n      }\n    }\n\n    workInProgressTransitions = getTransitionsForLanes();\n    prepareFreshStack(root, lanes);\n  }\n\n  {\n    markRenderStarted(lanes);\n  }\n\n  do {\n    try {\n      workLoopSync();\n      break;\n    } catch (thrownValue) {\n      handleError(root, thrownValue);\n    }\n  } while (true);\n\n  resetContextDependencies();\n  executionContext = prevExecutionContext;\n  popDispatcher(prevDispatcher);\n\n  if (workInProgress !== null) {\n    // This is a sync render, so we should have finished the whole tree.\n    throw new Error('Cannot commit an incomplete root. This error is likely caused by a ' + 'bug in React. Please file an issue.');\n  }\n\n  {\n    markRenderStopped();\n  } // Set this to null to indicate there's no in-progress render.\n\n\n  workInProgressRoot = null;\n  workInProgressRootRenderLanes = NoLanes;\n  return workInProgressRootExitStatus;\n} // The work loop is an extremely hot path. Tell Closure not to inline it.\n\n/** @noinline */\n\n\nfunction workLoopSync() {\n  // Already timed out, so perform work without checking if we need to yield.\n  while (workInProgress !== null) {\n    performUnitOfWork(workInProgress);\n  }\n}\n\nfunction renderRootConcurrent(root, lanes) {\n  var prevExecutionContext = executionContext;\n  executionContext |= RenderContext;\n  var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n  // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n    {\n      if (isDevToolsPresent) {\n        var memoizedUpdaters = root.memoizedUpdaters;\n\n        if (memoizedUpdaters.size > 0) {\n          restorePendingUpdaters(root, workInProgressRootRenderLanes);\n          memoizedUpdaters.clear();\n        } // At this point, move Fibers that scheduled the upcoming work from the Map to the Set.\n        // If we bailout on this work, we'll move them back (like above).\n        // It's important to move them now in case the work spawns more work at the same priority with different updaters.\n        // That way we can keep the current update and future updates separate.\n\n\n        movePendingFibersToMemoized(root, lanes);\n      }\n    }\n\n    workInProgressTransitions = getTransitionsForLanes();\n    resetRenderTimer();\n    prepareFreshStack(root, lanes);\n  }\n\n  {\n    markRenderStarted(lanes);\n  }\n\n  do {\n    try {\n      workLoopConcurrent();\n      break;\n    } catch (thrownValue) {\n      handleError(root, thrownValue);\n    }\n  } while (true);\n\n  resetContextDependencies();\n  popDispatcher(prevDispatcher);\n  executionContext = prevExecutionContext;\n\n\n  if (workInProgress !== null) {\n    // Still work remaining.\n    {\n      markRenderYielded();\n    }\n\n    return RootInProgress;\n  } else {\n    // Completed the tree.\n    {\n      markRenderStopped();\n    } // Set this to null to indicate there's no in-progress render.\n\n\n    workInProgressRoot = null;\n    workInProgressRootRenderLanes = NoLanes; // Return the final exit status.\n\n    return workInProgressRootExitStatus;\n  }\n}\n/** @noinline */\n\n\nfunction workLoopConcurrent() {\n  // Perform work until Scheduler asks us to yield\n  while (workInProgress !== null && !shouldYield()) {\n    performUnitOfWork(workInProgress);\n  }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n  // The current, flushed, state of this fiber is the alternate. Ideally\n  // nothing should rely on this, but relying on it here means that we don't\n  // need an additional field on the work in progress.\n  var current = unitOfWork.alternate;\n  setCurrentFiber(unitOfWork);\n  var next;\n\n  if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n    startProfilerTimer(unitOfWork);\n    next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n    stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n  } else {\n    next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n  }\n\n  resetCurrentFiber();\n  unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n  if (next === null) {\n    // If this doesn't spawn new work, complete the current work.\n    completeUnitOfWork(unitOfWork);\n  } else {\n    workInProgress = next;\n  }\n\n  ReactCurrentOwner$2.current = null;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n  // Attempt to complete the current unit of work, then move to the next\n  // sibling. If there are no more siblings, return to the parent fiber.\n  var completedWork = unitOfWork;\n\n  do {\n    // The current, flushed, state of this fiber is the alternate. Ideally\n    // nothing should rely on this, but relying on it here means that we don't\n    // need an additional field on the work in progress.\n    var current = completedWork.alternate;\n    var returnFiber = completedWork.return; // Check if the work completed or if something threw.\n\n    if ((completedWork.flags & Incomplete) === NoFlags) {\n      setCurrentFiber(completedWork);\n      var next = void 0;\n\n      if ( (completedWork.mode & ProfileMode) === NoMode) {\n        next = completeWork(current, completedWork, subtreeRenderLanes);\n      } else {\n        startProfilerTimer(completedWork);\n        next = completeWork(current, completedWork, subtreeRenderLanes); // Update render duration assuming we didn't error.\n\n        stopProfilerTimerIfRunningAndRecordDelta(completedWork, false);\n      }\n\n      resetCurrentFiber();\n\n      if (next !== null) {\n        // Completing this fiber spawned new work. Work on that next.\n        workInProgress = next;\n        return;\n      }\n    } else {\n      // This fiber did not complete because something threw. Pop values off\n      // the stack without entering the complete phase. If this is a boundary,\n      // capture values if possible.\n      var _next = unwindWork(current, completedWork); // Because this fiber did not complete, don't reset its lanes.\n\n\n      if (_next !== null) {\n        // If completing this work spawned new work, do that next. We'll come\n        // back here again.\n        // Since we're restarting, remove anything that is not a host effect\n        // from the effect tag.\n        _next.flags &= HostEffectMask;\n        workInProgress = _next;\n        return;\n      }\n\n      if ( (completedWork.mode & ProfileMode) !== NoMode) {\n        // Record the render duration for the fiber that errored.\n        stopProfilerTimerIfRunningAndRecordDelta(completedWork, false); // Include the time spent working on failed children before continuing.\n\n        var actualDuration = completedWork.actualDuration;\n        var child = completedWork.child;\n\n        while (child !== null) {\n          actualDuration += child.actualDuration;\n          child = child.sibling;\n        }\n\n        completedWork.actualDuration = actualDuration;\n      }\n\n      if (returnFiber !== null) {\n        // Mark the parent fiber as incomplete and clear its subtree flags.\n        returnFiber.flags |= Incomplete;\n        returnFiber.subtreeFlags = NoFlags;\n        returnFiber.deletions = null;\n      } else {\n        // We've unwound all the way to the root.\n        workInProgressRootExitStatus = RootDidNotComplete;\n        workInProgress = null;\n        return;\n      }\n    }\n\n    var siblingFiber = completedWork.sibling;\n\n    if (siblingFiber !== null) {\n      // If there is more work to do in this returnFiber, do that next.\n      workInProgress = siblingFiber;\n      return;\n    } // Otherwise, return to the parent\n\n\n    completedWork = returnFiber; // Update the next thing we're working on in case something throws.\n\n    workInProgress = completedWork;\n  } while (completedWork !== null); // We've reached the root.\n\n\n  if (workInProgressRootExitStatus === RootInProgress) {\n    workInProgressRootExitStatus = RootCompleted;\n  }\n}\n\nfunction commitRoot(root, recoverableErrors, transitions) {\n  // TODO: This no longer makes any sense. We already wrap the mutation and\n  // layout phases. Should be able to remove.\n  var previousUpdateLanePriority = getCurrentUpdatePriority();\n  var prevTransition = ReactCurrentBatchConfig$3.transition;\n\n  try {\n    ReactCurrentBatchConfig$3.transition = null;\n    setCurrentUpdatePriority(DiscreteEventPriority);\n    commitRootImpl(root, recoverableErrors, transitions, previousUpdateLanePriority);\n  } finally {\n    ReactCurrentBatchConfig$3.transition = prevTransition;\n    setCurrentUpdatePriority(previousUpdateLanePriority);\n  }\n\n  return null;\n}\n\nfunction commitRootImpl(root, recoverableErrors, transitions, renderPriorityLevel) {\n  do {\n    // `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n    // means `flushPassiveEffects` will sometimes result in additional\n    // passive effects. So we need to keep flushing in a loop until there are\n    // no more pending effects.\n    // TODO: Might be better if `flushPassiveEffects` did not automatically\n    // flush synchronous work at the end, to avoid factoring hazards like this.\n    flushPassiveEffects();\n  } while (rootWithPendingPassiveEffects !== null);\n\n  flushRenderPhaseStrictModeWarningsInDEV();\n\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    throw new Error('Should not already be working.');\n  }\n\n  var finishedWork = root.finishedWork;\n  var lanes = root.finishedLanes;\n\n  {\n    markCommitStarted(lanes);\n  }\n\n  if (finishedWork === null) {\n\n    {\n      markCommitStopped();\n    }\n\n    return null;\n  } else {\n    {\n      if (lanes === NoLanes) {\n        error('root.finishedLanes should not be empty during a commit. This is a ' + 'bug in React.');\n      }\n    }\n  }\n\n  root.finishedWork = null;\n  root.finishedLanes = NoLanes;\n\n  if (finishedWork === root.current) {\n    throw new Error('Cannot commit the same tree as before. This error is likely caused by ' + 'a bug in React. Please file an issue.');\n  } // commitRoot never returns a continuation; it always finishes synchronously.\n  // So we can clear these now to allow a new callback to be scheduled.\n\n\n  root.callbackNode = null;\n  root.callbackPriority = NoLane; // Update the first and last pending times on this root. The new first\n  // pending time is whatever is left on the root fiber.\n\n  var remainingLanes = mergeLanes(finishedWork.lanes, finishedWork.childLanes);\n  markRootFinished(root, remainingLanes);\n\n  if (root === workInProgressRoot) {\n    // We can reset these now that they are finished.\n    workInProgressRoot = null;\n    workInProgress = null;\n    workInProgressRootRenderLanes = NoLanes;\n  } // If there are pending passive effects, schedule a callback to process them.\n  // Do this as early as possible, so it is queued before anything else that\n  // might get scheduled in the commit phase. (See #16714.)\n  // TODO: Delete all other places that schedule the passive effect callback\n  // They're redundant.\n\n\n  if ((finishedWork.subtreeFlags & PassiveMask) !== NoFlags || (finishedWork.flags & PassiveMask) !== NoFlags) {\n    if (!rootDoesHavePassiveEffects) {\n      rootDoesHavePassiveEffects = true;\n      // to store it in pendingPassiveTransitions until they get processed\n      // We need to pass this through as an argument to commitRoot\n      // because workInProgressTransitions might have changed between\n      // the previous render and commit if we throttle the commit\n      // with setTimeout\n\n      pendingPassiveTransitions = transitions;\n      scheduleCallback$1(NormalPriority, function () {\n        flushPassiveEffects(); // This render triggered passive effects: release the root cache pool\n        // *after* passive effects fire to avoid freeing a cache pool that may\n        // be referenced by a node in the tree (HostRoot, Cache boundary etc)\n\n        return null;\n      });\n    }\n  } // Check if there are any effects in the whole tree.\n  // TODO: This is left over from the effect list implementation, where we had\n  // to check for the existence of `firstEffect` to satisfy Flow. I think the\n  // only other reason this optimization exists is because it affects profiling.\n  // Reconsider whether this is necessary.\n\n\n  var subtreeHasEffects = (finishedWork.subtreeFlags & (BeforeMutationMask | MutationMask | LayoutMask | PassiveMask)) !== NoFlags;\n  var rootHasEffect = (finishedWork.flags & (BeforeMutationMask | MutationMask | LayoutMask | PassiveMask)) !== NoFlags;\n\n  if (subtreeHasEffects || rootHasEffect) {\n    var prevTransition = ReactCurrentBatchConfig$3.transition;\n    ReactCurrentBatchConfig$3.transition = null;\n    var previousPriority = getCurrentUpdatePriority();\n    setCurrentUpdatePriority(DiscreteEventPriority);\n    var prevExecutionContext = executionContext;\n    executionContext |= CommitContext; // Reset this to null before calling lifecycles\n\n    ReactCurrentOwner$2.current = null; // The commit phase is broken into several sub-phases. We do a separate pass\n    // of the effect list for each phase: all mutation effects come before all\n    // layout effects, and so on.\n    // The first phase a \"before mutation\" phase. We use this phase to read the\n    // state of the host tree right before we mutate it. This is where\n    // getSnapshotBeforeUpdate is called.\n\n    var shouldFireAfterActiveInstanceBlur = commitBeforeMutationEffects(root, finishedWork);\n\n    {\n      // Mark the current commit time to be shared by all Profilers in this\n      // batch. This enables them to be grouped later.\n      recordCommitTime();\n    }\n\n\n    commitMutationEffects(root, finishedWork, lanes);\n\n    resetAfterCommit(root.containerInfo); // The work-in-progress tree is now the current tree. This must come after\n    // the mutation phase, so that the previous tree is still current during\n    // componentWillUnmount, but before the layout phase, so that the finished\n    // work is current during componentDidMount/Update.\n\n    root.current = finishedWork; // The next phase is the layout phase, where we call effects that read\n\n    {\n      markLayoutEffectsStarted(lanes);\n    }\n\n    commitLayoutEffects(finishedWork, root, lanes);\n\n    {\n      markLayoutEffectsStopped();\n    }\n    // opportunity to paint.\n\n\n    requestPaint();\n    executionContext = prevExecutionContext; // Reset the priority to the previous non-sync value.\n\n    setCurrentUpdatePriority(previousPriority);\n    ReactCurrentBatchConfig$3.transition = prevTransition;\n  } else {\n    // No effects.\n    root.current = finishedWork; // Measure these anyway so the flamegraph explicitly shows that there were\n    // no effects.\n    // TODO: Maybe there's a better way to report this.\n\n    {\n      recordCommitTime();\n    }\n  }\n\n  var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n  if (rootDoesHavePassiveEffects) {\n    // This commit has passive effects. Stash a reference to them. But don't\n    // schedule a callback until after flushing layout work.\n    rootDoesHavePassiveEffects = false;\n    rootWithPendingPassiveEffects = root;\n    pendingPassiveEffectsLanes = lanes;\n  } else {\n\n    {\n      nestedPassiveUpdateCount = 0;\n      rootWithPassiveNestedUpdates = null;\n    }\n  } // Read this again, since an effect might have updated it\n\n\n  remainingLanes = root.pendingLanes; // Check if there's remaining work on this root\n  // TODO: This is part of the `componentDidCatch` implementation. Its purpose\n  // is to detect whether something might have called setState inside\n  // `componentDidCatch`. The mechanism is known to be flawed because `setState`\n  // inside `componentDidCatch` is itself flawed — that's why we recommend\n  // `getDerivedStateFromError` instead. However, it could be improved by\n  // checking if remainingLanes includes Sync work, instead of whether there's\n  // any work remaining at all (which would also include stuff like Suspense\n  // retries or transitions). It's been like this for a while, though, so fixing\n  // it probably isn't that urgent.\n\n  if (remainingLanes === NoLanes) {\n    // If there's no remaining work, we can clear the set of already failed\n    // error boundaries.\n    legacyErrorBoundariesThatAlreadyFailed = null;\n  }\n\n  {\n    if (!rootDidHavePassiveEffects) {\n      commitDoubleInvokeEffectsInDEV(root.current, false);\n    }\n  }\n\n  onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n\n  {\n    if (isDevToolsPresent) {\n      root.memoizedUpdaters.clear();\n    }\n  }\n\n  {\n    onCommitRoot$1();\n  } // Always call this before exiting `commitRoot`, to ensure that any\n  // additional work on this root is scheduled.\n\n\n  ensureRootIsScheduled(root, now());\n\n  if (recoverableErrors !== null) {\n    // There were errors during this render, but recovered from them without\n    // needing to surface it to the UI. We log them here.\n    var onRecoverableError = root.onRecoverableError;\n\n    for (var i = 0; i < recoverableErrors.length; i++) {\n      var recoverableError = recoverableErrors[i];\n      var componentStack = recoverableError.stack;\n      var digest = recoverableError.digest;\n      onRecoverableError(recoverableError.value, {\n        componentStack: componentStack,\n        digest: digest\n      });\n    }\n  }\n\n  if (hasUncaughtError) {\n    hasUncaughtError = false;\n    var error$1 = firstUncaughtError;\n    firstUncaughtError = null;\n    throw error$1;\n  } // If the passive effects are the result of a discrete render, flush them\n  // synchronously at the end of the current task so that the result is\n  // immediately observable. Otherwise, we assume that they are not\n  // order-dependent and do not need to be observed by external systems, so we\n  // can wait until after paint.\n  // TODO: We can optimize this by not scheduling the callback earlier. Since we\n  // currently schedule the callback in multiple places, will wait until those\n  // are consolidated.\n\n\n  if (includesSomeLane(pendingPassiveEffectsLanes, SyncLane) && root.tag !== LegacyRoot) {\n    flushPassiveEffects();\n  } // Read this again, since a passive effect might have updated it\n\n\n  remainingLanes = root.pendingLanes;\n\n  if (includesSomeLane(remainingLanes, SyncLane)) {\n    {\n      markNestedUpdateScheduled();\n    } // Count the number of times the root synchronously re-renders without\n    // finishing. If there are too many, it indicates an infinite update loop.\n\n\n    if (root === rootWithNestedUpdates) {\n      nestedUpdateCount++;\n    } else {\n      nestedUpdateCount = 0;\n      rootWithNestedUpdates = root;\n    }\n  } else {\n    nestedUpdateCount = 0;\n  } // If layout work was scheduled, flush it now.\n\n\n  flushSyncCallbacks();\n\n  {\n    markCommitStopped();\n  }\n\n  return null;\n}\n\nfunction flushPassiveEffects() {\n  // Returns whether passive effects were flushed.\n  // TODO: Combine this check with the one in flushPassiveEFfectsImpl. We should\n  // probably just combine the two functions. I believe they were only separate\n  // in the first place because we used to wrap it with\n  // `Scheduler.runWithPriority`, which accepts a function. But now we track the\n  // priority within React itself, so we can mutate the variable directly.\n  if (rootWithPendingPassiveEffects !== null) {\n    var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes);\n    var priority = lowerEventPriority(DefaultEventPriority, renderPriority);\n    var prevTransition = ReactCurrentBatchConfig$3.transition;\n    var previousPriority = getCurrentUpdatePriority();\n\n    try {\n      ReactCurrentBatchConfig$3.transition = null;\n      setCurrentUpdatePriority(priority);\n      return flushPassiveEffectsImpl();\n    } finally {\n      setCurrentUpdatePriority(previousPriority);\n      ReactCurrentBatchConfig$3.transition = prevTransition; // Once passive effects have run for the tree - giving components a\n    }\n  }\n\n  return false;\n}\nfunction enqueuePendingPassiveProfilerEffect(fiber) {\n  {\n    pendingPassiveProfilerEffects.push(fiber);\n\n    if (!rootDoesHavePassiveEffects) {\n      rootDoesHavePassiveEffects = true;\n      scheduleCallback$1(NormalPriority, function () {\n        flushPassiveEffects();\n        return null;\n      });\n    }\n  }\n}\n\nfunction flushPassiveEffectsImpl() {\n  if (rootWithPendingPassiveEffects === null) {\n    return false;\n  } // Cache and clear the transitions flag\n\n\n  var transitions = pendingPassiveTransitions;\n  pendingPassiveTransitions = null;\n  var root = rootWithPendingPassiveEffects;\n  var lanes = pendingPassiveEffectsLanes;\n  rootWithPendingPassiveEffects = null; // TODO: This is sometimes out of sync with rootWithPendingPassiveEffects.\n  // Figure out why and fix it. It's not causing any known issues (probably\n  // because it's only used for profiling), but it's a refactor hazard.\n\n  pendingPassiveEffectsLanes = NoLanes;\n\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    throw new Error('Cannot flush passive effects while already rendering.');\n  }\n\n  {\n    isFlushingPassiveEffects = true;\n    didScheduleUpdateDuringPassiveEffects = false;\n  }\n\n  {\n    markPassiveEffectsStarted(lanes);\n  }\n\n  var prevExecutionContext = executionContext;\n  executionContext |= CommitContext;\n  commitPassiveUnmountEffects(root.current);\n  commitPassiveMountEffects(root, root.current, lanes, transitions); // TODO: Move to commitPassiveMountEffects\n\n  {\n    var profilerEffects = pendingPassiveProfilerEffects;\n    pendingPassiveProfilerEffects = [];\n\n    for (var i = 0; i < profilerEffects.length; i++) {\n      var _fiber = profilerEffects[i];\n      commitPassiveEffectDurations(root, _fiber);\n    }\n  }\n\n  {\n    markPassiveEffectsStopped();\n  }\n\n  {\n    commitDoubleInvokeEffectsInDEV(root.current, true);\n  }\n\n  executionContext = prevExecutionContext;\n  flushSyncCallbacks();\n\n  {\n    // If additional passive effects were scheduled, increment a counter. If this\n    // exceeds the limit, we'll fire a warning.\n    if (didScheduleUpdateDuringPassiveEffects) {\n      if (root === rootWithPassiveNestedUpdates) {\n        nestedPassiveUpdateCount++;\n      } else {\n        nestedPassiveUpdateCount = 0;\n        rootWithPassiveNestedUpdates = root;\n      }\n    } else {\n      nestedPassiveUpdateCount = 0;\n    }\n\n    isFlushingPassiveEffects = false;\n    didScheduleUpdateDuringPassiveEffects = false;\n  } // TODO: Move to commitPassiveMountEffects\n\n\n  onPostCommitRoot(root);\n\n  {\n    var stateNode = root.current.stateNode;\n    stateNode.effectDuration = 0;\n    stateNode.passiveEffectDuration = 0;\n  }\n\n  return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n  return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n  if (legacyErrorBoundariesThatAlreadyFailed === null) {\n    legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n  } else {\n    legacyErrorBoundariesThatAlreadyFailed.add(instance);\n  }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n  if (!hasUncaughtError) {\n    hasUncaughtError = true;\n    firstUncaughtError = error;\n  }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n  var errorInfo = createCapturedValueAtFiber(error, sourceFiber);\n  var update = createRootErrorUpdate(rootFiber, errorInfo, SyncLane);\n  var root = enqueueUpdate(rootFiber, update, SyncLane);\n  var eventTime = requestEventTime();\n\n  if (root !== null) {\n    markRootUpdated(root, SyncLane, eventTime);\n    ensureRootIsScheduled(root, eventTime);\n  }\n}\n\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error$1) {\n  {\n    reportUncaughtErrorInDEV(error$1);\n    setIsRunningInsertionEffect(false);\n  }\n\n  if (sourceFiber.tag === HostRoot) {\n    // Error was thrown at the root. There is no parent, so the root\n    // itself should capture it.\n    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error$1);\n    return;\n  }\n\n  var fiber = null;\n\n  {\n    fiber = nearestMountedAncestor;\n  }\n\n  while (fiber !== null) {\n    if (fiber.tag === HostRoot) {\n      captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error$1);\n      return;\n    } else if (fiber.tag === ClassComponent) {\n      var ctor = fiber.type;\n      var instance = fiber.stateNode;\n\n      if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n        var errorInfo = createCapturedValueAtFiber(error$1, sourceFiber);\n        var update = createClassErrorUpdate(fiber, errorInfo, SyncLane);\n        var root = enqueueUpdate(fiber, update, SyncLane);\n        var eventTime = requestEventTime();\n\n        if (root !== null) {\n          markRootUpdated(root, SyncLane, eventTime);\n          ensureRootIsScheduled(root, eventTime);\n        }\n\n        return;\n      }\n    }\n\n    fiber = fiber.return;\n  }\n\n  {\n    // TODO: Until we re-land skipUnmountedBoundaries (see #20147), this warning\n    // will fire for errors that are thrown by destroy functions inside deleted\n    // trees. What it should instead do is propagate the error to the parent of\n    // the deleted tree. In the meantime, do not add this warning to the\n    // allowlist; this is only for our internal use.\n    error('Internal React error: Attempted to capture a commit phase error ' + 'inside a detached tree. This indicates a bug in React. Likely ' + 'causes include deleting the same fiber more than once, committing an ' + 'already-finished tree, or an inconsistent return pointer.\\n\\n' + 'Error message:\\n\\n%s', error$1);\n  }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n  var pingCache = root.pingCache;\n\n  if (pingCache !== null) {\n    // The wakeable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    pingCache.delete(wakeable);\n  }\n\n  var eventTime = requestEventTime();\n  markRootPinged(root, pingedLanes);\n  warnIfSuspenseResolutionNotWrappedWithActDEV(root);\n\n  if (workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes)) {\n    // Received a ping at the same priority level at which we're currently\n    // rendering. We might want to restart this render. This should mirror\n    // the logic of whether or not a root suspends once it completes.\n    // TODO: If we're rendering sync either due to Sync, Batched or expired,\n    // we should probably never restart.\n    // If we're suspended with delay, or if it's a retry, we'll always suspend\n    // so we can always restart.\n    if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n      // Restart from the root.\n      prepareFreshStack(root, NoLanes);\n    } else {\n      // Even though we can't restart right now, we might get an\n      // opportunity later. So we mark this render as having a ping.\n      workInProgressRootPingedLanes = mergeLanes(workInProgressRootPingedLanes, pingedLanes);\n    }\n  }\n\n  ensureRootIsScheduled(root, eventTime);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n  // The boundary fiber (a Suspense component or SuspenseList component)\n  // previously was rendered in its fallback state. One of the promises that\n  // suspended it has resolved, which means at least part of the tree was\n  // likely unblocked. Try rendering again, at a new lanes.\n  if (retryLane === NoLane) {\n    // TODO: Assign this to `suspenseState.retryLane`? to avoid\n    // unnecessary entanglement?\n    retryLane = requestRetryLane(boundaryFiber);\n  } // TODO: Special case idle priority?\n\n\n  var eventTime = requestEventTime();\n  var root = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n\n  if (root !== null) {\n    markRootUpdated(root, retryLane, eventTime);\n    ensureRootIsScheduled(root, eventTime);\n  }\n}\n\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n  var suspenseState = boundaryFiber.memoizedState;\n  var retryLane = NoLane;\n\n  if (suspenseState !== null) {\n    retryLane = suspenseState.retryLane;\n  }\n\n  retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n  var retryLane = NoLane; // Default\n\n  var retryCache;\n\n  switch (boundaryFiber.tag) {\n    case SuspenseComponent:\n      retryCache = boundaryFiber.stateNode;\n      var suspenseState = boundaryFiber.memoizedState;\n\n      if (suspenseState !== null) {\n        retryLane = suspenseState.retryLane;\n      }\n\n      break;\n\n    case SuspenseListComponent:\n      retryCache = boundaryFiber.stateNode;\n      break;\n\n    default:\n      throw new Error('Pinged unknown suspense boundary type. ' + 'This is probably a bug in React.');\n  }\n\n  if (retryCache !== null) {\n    // The wakeable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    retryCache.delete(wakeable);\n  }\n\n  retryTimedOutBoundary(boundaryFiber, retryLane);\n} // Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\n\nfunction jnd(timeElapsed) {\n  return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction checkForNestedUpdates() {\n  if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n    nestedUpdateCount = 0;\n    rootWithNestedUpdates = null;\n    throw new Error('Maximum update depth exceeded. This can happen when a component ' + 'repeatedly calls setState inside componentWillUpdate or ' + 'componentDidUpdate. React limits the number of nested updates to ' + 'prevent infinite loops.');\n  }\n\n  {\n    if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n      nestedPassiveUpdateCount = 0;\n      rootWithPassiveNestedUpdates = null;\n\n      error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n    }\n  }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n  {\n    ReactStrictModeWarnings.flushLegacyContextWarning();\n\n    {\n      ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n    }\n  }\n}\n\nfunction commitDoubleInvokeEffectsInDEV(fiber, hasPassiveEffects) {\n  {\n    // TODO (StrictEffects) Should we set a marker on the root if it contains strict effects\n    // so we don't traverse unnecessarily? similar to subtreeFlags but just at the root level.\n    // Maybe not a big deal since this is DEV only behavior.\n    setCurrentFiber(fiber);\n    invokeEffectsInDev(fiber, MountLayoutDev, invokeLayoutEffectUnmountInDEV);\n\n    if (hasPassiveEffects) {\n      invokeEffectsInDev(fiber, MountPassiveDev, invokePassiveEffectUnmountInDEV);\n    }\n\n    invokeEffectsInDev(fiber, MountLayoutDev, invokeLayoutEffectMountInDEV);\n\n    if (hasPassiveEffects) {\n      invokeEffectsInDev(fiber, MountPassiveDev, invokePassiveEffectMountInDEV);\n    }\n\n    resetCurrentFiber();\n  }\n}\n\nfunction invokeEffectsInDev(firstChild, fiberFlags, invokeEffectFn) {\n  {\n    // We don't need to re-check StrictEffectsMode here.\n    // This function is only called if that check has already passed.\n    var current = firstChild;\n    var subtreeRoot = null;\n\n    while (current !== null) {\n      var primarySubtreeFlag = current.subtreeFlags & fiberFlags;\n\n      if (current !== subtreeRoot && current.child !== null && primarySubtreeFlag !== NoFlags) {\n        current = current.child;\n      } else {\n        if ((current.flags & fiberFlags) !== NoFlags) {\n          invokeEffectFn(current);\n        }\n\n        if (current.sibling !== null) {\n          current = current.sibling;\n        } else {\n          current = subtreeRoot = current.return;\n        }\n      }\n    }\n  }\n}\n\nvar didWarnStateUpdateForNotYetMountedComponent = null;\nfunction warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n  {\n    if ((executionContext & RenderContext) !== NoContext) {\n      // We let the other warning about render phase updates deal with this one.\n      return;\n    }\n\n    if (!(fiber.mode & ConcurrentMode)) {\n      return;\n    }\n\n    var tag = fiber.tag;\n\n    if (tag !== IndeterminateComponent && tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent) {\n      // Only warn for user-defined components, not internal ones like Suspense.\n      return;\n    } // We show the whole stack but dedupe on the top component's name because\n    // the problematic code almost always lies inside that component.\n\n\n    var componentName = getComponentNameFromFiber(fiber) || 'ReactComponent';\n\n    if (didWarnStateUpdateForNotYetMountedComponent !== null) {\n      if (didWarnStateUpdateForNotYetMountedComponent.has(componentName)) {\n        return;\n      }\n\n      didWarnStateUpdateForNotYetMountedComponent.add(componentName);\n    } else {\n      didWarnStateUpdateForNotYetMountedComponent = new Set([componentName]);\n    }\n\n    var previousFiber = current;\n\n    try {\n      setCurrentFiber(fiber);\n\n      error(\"Can't perform a React state update on a component that hasn't mounted yet. \" + 'This indicates that you have a side-effect in your render function that ' + 'asynchronously later calls tries to update the component. Move this work to ' + 'useEffect instead.');\n    } finally {\n      if (previousFiber) {\n        setCurrentFiber(fiber);\n      } else {\n        resetCurrentFiber();\n      }\n    }\n  }\n}\nvar beginWork$1;\n\n{\n  var dummyFiber = null;\n\n  beginWork$1 = function (current, unitOfWork, lanes) {\n    // If a component throws an error, we replay it again in a synchronously\n    // dispatched event, so that the debugger will treat it as an uncaught\n    // error See ReactErrorUtils for more information.\n    // Before entering the begin phase, copy the work-in-progress onto a dummy\n    // fiber. If beginWork throws, we'll use this to reset the state.\n    var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n    try {\n      return beginWork(current, unitOfWork, lanes);\n    } catch (originalError) {\n      if (didSuspendOrErrorWhileHydratingDEV() || originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n        // Don't replay promises.\n        // Don't replay errors if we are hydrating and have already suspended or handled an error\n        throw originalError;\n      } // Keep this code in sync with handleError; any changes here must have\n      // corresponding changes there.\n\n\n      resetContextDependencies();\n      resetHooksAfterThrow(); // Don't reset current debug fiber, since we're about to work on the\n      // same fiber again.\n      // Unwind the failed stack frame\n\n      unwindInterruptedWork(current, unitOfWork); // Restore the original properties of the fiber.\n\n      assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n      if ( unitOfWork.mode & ProfileMode) {\n        // Reset the profiler timer.\n        startProfilerTimer(unitOfWork);\n      } // Run beginWork again.\n\n\n      invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);\n\n      if (hasCaughtError()) {\n        var replayError = clearCaughtError();\n\n        if (typeof replayError === 'object' && replayError !== null && replayError._suppressLogging && typeof originalError === 'object' && originalError !== null && !originalError._suppressLogging) {\n          // If suppressed, let the flag carry over to the original error which is the one we'll rethrow.\n          originalError._suppressLogging = true;\n        }\n      } // We always throw the original error in case the second render pass is not idempotent.\n      // This can happen if a memoized function or CommonJS module doesn't throw after first invocation.\n\n\n      throw originalError;\n    }\n  };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n  didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n  {\n    if (isRendering && !getIsUpdatingOpaqueValueInRenderPhaseInDEV()) {\n      switch (fiber.tag) {\n        case FunctionComponent:\n        case ForwardRef:\n        case SimpleMemoComponent:\n          {\n            var renderingComponentName = workInProgress && getComponentNameFromFiber(workInProgress) || 'Unknown'; // Dedupe by the rendering component because it's the one that needs to be fixed.\n\n            var dedupeKey = renderingComponentName;\n\n            if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n              didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n              var setStateComponentName = getComponentNameFromFiber(fiber) || 'Unknown';\n\n              error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://reactjs.org/link/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n            }\n\n            break;\n          }\n\n        case ClassComponent:\n          {\n            if (!didWarnAboutUpdateInRender) {\n              error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n              didWarnAboutUpdateInRender = true;\n            }\n\n            break;\n          }\n      }\n    }\n  }\n}\n\nfunction restorePendingUpdaters(root, lanes) {\n  {\n    if (isDevToolsPresent) {\n      var memoizedUpdaters = root.memoizedUpdaters;\n      memoizedUpdaters.forEach(function (schedulingFiber) {\n        addFiberToLanesMap(root, schedulingFiber, lanes);\n      }); // This function intentionally does not clear memoized updaters.\n      // Those may still be relevant to the current commit\n      // and a future one (e.g. Suspense).\n    }\n  }\n}\nvar fakeActCallbackNode = {};\n\nfunction scheduleCallback$1(priorityLevel, callback) {\n  {\n    // If we're currently inside an `act` scope, bypass Scheduler and push to\n    // the `act` queue instead.\n    var actQueue = ReactCurrentActQueue$1.current;\n\n    if (actQueue !== null) {\n      actQueue.push(callback);\n      return fakeActCallbackNode;\n    } else {\n      return scheduleCallback(priorityLevel, callback);\n    }\n  }\n}\n\nfunction cancelCallback$1(callbackNode) {\n  if ( callbackNode === fakeActCallbackNode) {\n    return;\n  } // In production, always call Scheduler. This function will be stripped out.\n\n\n  return cancelCallback(callbackNode);\n}\n\nfunction shouldForceFlushFallbacksInDEV() {\n  // Never force flush in production. This function should get stripped out.\n  return  ReactCurrentActQueue$1.current !== null;\n}\n\nfunction warnIfUpdatesNotWrappedWithActDEV(fiber) {\n  {\n    if (fiber.mode & ConcurrentMode) {\n      if (!isConcurrentActEnvironment()) {\n        // Not in an act environment. No need to warn.\n        return;\n      }\n    } else {\n      // Legacy mode has additional cases where we suppress a warning.\n      if (!isLegacyActEnvironment()) {\n        // Not in an act environment. No need to warn.\n        return;\n      }\n\n      if (executionContext !== NoContext) {\n        // Legacy mode doesn't warn if the update is batched, i.e.\n        // batchedUpdates or flushSync.\n        return;\n      }\n\n      if (fiber.tag !== FunctionComponent && fiber.tag !== ForwardRef && fiber.tag !== SimpleMemoComponent) {\n        // For backwards compatibility with pre-hooks code, legacy mode only\n        // warns for updates that originate from a hook.\n        return;\n      }\n    }\n\n    if (ReactCurrentActQueue$1.current === null) {\n      var previousFiber = current;\n\n      try {\n        setCurrentFiber(fiber);\n\n        error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + '  /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentNameFromFiber(fiber));\n      } finally {\n        if (previousFiber) {\n          setCurrentFiber(fiber);\n        } else {\n          resetCurrentFiber();\n        }\n      }\n    }\n  }\n}\n\nfunction warnIfSuspenseResolutionNotWrappedWithActDEV(root) {\n  {\n    if (root.tag !== LegacyRoot && isConcurrentActEnvironment() && ReactCurrentActQueue$1.current === null) {\n      error('A suspended resource finished loading inside a test, but the event ' + 'was not wrapped in act(...).\\n\\n' + 'When testing, code that resolves suspended data should be wrapped ' + 'into act(...):\\n\\n' + 'act(() => {\\n' + '  /* finish loading suspended data */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act');\n    }\n  }\n}\n\nfunction setIsRunningInsertionEffect(isRunning) {\n  {\n    isRunningInsertionEffect = isRunning;\n  }\n}\n\n/* eslint-disable react-internal/prod-error-codes */\nvar resolveFamily = null; // $FlowFixMe Flow gets confused by a WeakSet feature check below.\n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n  {\n    resolveFamily = handler;\n  }\n};\nfunction resolveFunctionForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n\n    var family = resolveFamily(type);\n\n    if (family === undefined) {\n      return type;\n    } // Use the latest known implementation.\n\n\n    return family.current;\n  }\n}\nfunction resolveClassForHotReloading(type) {\n  // No implementation differences.\n  return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n\n    var family = resolveFamily(type);\n\n    if (family === undefined) {\n      // Check if we're dealing with a real forwardRef. Don't want to crash early.\n      if (type !== null && type !== undefined && typeof type.render === 'function') {\n        // ForwardRef is special because its resolved .type is an object,\n        // but it's possible that we only have its inner render function in the map.\n        // If that inner render function is different, we'll build a new forwardRef type.\n        var currentRender = resolveFunctionForHotReloading(type.render);\n\n        if (type.render !== currentRender) {\n          var syntheticType = {\n            $$typeof: REACT_FORWARD_REF_TYPE,\n            render: currentRender\n          };\n\n          if (type.displayName !== undefined) {\n            syntheticType.displayName = type.displayName;\n          }\n\n          return syntheticType;\n        }\n      }\n\n      return type;\n    } // Use the latest known implementation.\n\n\n    return family.current;\n  }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return false;\n    }\n\n    var prevType = fiber.elementType;\n    var nextType = element.type; // If we got here, we know types aren't === equal.\n\n    var needsCompareFamilies = false;\n    var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n    switch (fiber.tag) {\n      case ClassComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case FunctionComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            // We don't know the inner type yet.\n            // We're going to assume that the lazy inner type is stable,\n            // and so it is sufficient to avoid reconciling it away.\n            // We're not going to unwrap or actually use the new lazy type.\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case ForwardRef:\n        {\n          if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case MemoComponent:\n      case SimpleMemoComponent:\n        {\n          if ($$typeofNextType === REACT_MEMO_TYPE) {\n            // TODO: if it was but can no longer be simple,\n            // we shouldn't set this.\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      default:\n        return false;\n    } // Check if both types have a family and it's the same one.\n\n\n    if (needsCompareFamilies) {\n      // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n      // This means both of them need to be registered to preserve state.\n      // If we unwrapped and compared the inner types for wrappers instead,\n      // then we would risk falsely saying two separate memo(Foo)\n      // calls are equivalent because they wrap the same Foo function.\n      var prevFamily = resolveFamily(prevType);\n\n      if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n\n    if (typeof WeakSet !== 'function') {\n      return;\n    }\n\n    if (failedBoundaries === null) {\n      failedBoundaries = new WeakSet();\n    }\n\n    failedBoundaries.add(fiber);\n  }\n}\nvar scheduleRefresh = function (root, update) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n\n    var staleFamilies = update.staleFamilies,\n        updatedFamilies = update.updatedFamilies;\n    flushPassiveEffects();\n    flushSync(function () {\n      scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n    });\n  }\n};\nvar scheduleRoot = function (root, element) {\n  {\n    if (root.context !== emptyContextObject) {\n      // Super edge case: root has a legacy _renderSubtree context\n      // but we don't know the parentComponent so we can't pass it.\n      // Just ignore. We'll delete this with _renderSubtree code path later.\n      return;\n    }\n\n    flushPassiveEffects();\n    flushSync(function () {\n      updateContainer(element, root, null, null);\n    });\n  }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n  {\n    var alternate = fiber.alternate,\n        child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n    var candidateType = null;\n\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n    }\n\n    if (resolveFamily === null) {\n      throw new Error('Expected resolveFamily to be set during hot reload.');\n    }\n\n    var needsRender = false;\n    var needsRemount = false;\n\n    if (candidateType !== null) {\n      var family = resolveFamily(candidateType);\n\n      if (family !== undefined) {\n        if (staleFamilies.has(family)) {\n          needsRemount = true;\n        } else if (updatedFamilies.has(family)) {\n          if (tag === ClassComponent) {\n            needsRemount = true;\n          } else {\n            needsRender = true;\n          }\n        }\n      }\n    }\n\n    if (failedBoundaries !== null) {\n      if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n        needsRemount = true;\n      }\n    }\n\n    if (needsRemount) {\n      fiber._debugNeedsRemount = true;\n    }\n\n    if (needsRemount || needsRender) {\n      var _root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n      if (_root !== null) {\n        scheduleUpdateOnFiber(_root, fiber, SyncLane, NoTimestamp);\n      }\n    }\n\n    if (child !== null && !needsRemount) {\n      scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n    }\n\n    if (sibling !== null) {\n      scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n    }\n  }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n  {\n    var hostInstances = new Set();\n    var types = new Set(families.map(function (family) {\n      return family.current;\n    }));\n    findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n    return hostInstances;\n  }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n  {\n    var child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n    var candidateType = null;\n\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n    }\n\n    var didMatch = false;\n\n    if (candidateType !== null) {\n      if (types.has(candidateType)) {\n        didMatch = true;\n      }\n    }\n\n    if (didMatch) {\n      // We have a match. This only drills down to the closest host components.\n      // There's no need to search deeper because for the purpose of giving\n      // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n      findHostInstancesForFiberShallowly(fiber, hostInstances);\n    } else {\n      // If there's no match, maybe there will be one further down in the child tree.\n      if (child !== null) {\n        findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n      }\n    }\n\n    if (sibling !== null) {\n      findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n    }\n  }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n    if (foundHostInstances) {\n      return;\n    } // If we didn't find any host children, fallback to closest host parent.\n\n\n    var node = fiber;\n\n    while (true) {\n      switch (node.tag) {\n        case HostComponent:\n          hostInstances.add(node.stateNode);\n          return;\n\n        case HostPortal:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n\n        case HostRoot:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n      }\n\n      if (node.return === null) {\n        throw new Error('Expected to reach root first.');\n      }\n\n      node = node.return;\n    }\n  }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var node = fiber;\n    var foundHostInstances = false;\n\n    while (true) {\n      if (node.tag === HostComponent) {\n        // We got a match.\n        foundHostInstances = true;\n        hostInstances.add(node.stateNode); // There may still be more, so keep searching.\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === fiber) {\n        return foundHostInstances;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === fiber) {\n          return foundHostInstances;\n        }\n\n        node = node.return;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n\n  return false;\n}\n\nvar hasBadMapPolyfill;\n\n{\n  hasBadMapPolyfill = false;\n\n  try {\n    var nonExtensibleObject = Object.preventExtensions({});\n    /* eslint-disable no-new */\n\n    new Map([[nonExtensibleObject, null]]);\n    new Set([nonExtensibleObject]);\n    /* eslint-enable no-new */\n  } catch (e) {\n    // TODO: Consider warning about bad polyfills\n    hasBadMapPolyfill = true;\n  }\n}\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n  // Instance\n  this.tag = tag;\n  this.key = key;\n  this.elementType = null;\n  this.type = null;\n  this.stateNode = null; // Fiber\n\n  this.return = null;\n  this.child = null;\n  this.sibling = null;\n  this.index = 0;\n  this.ref = null;\n  this.pendingProps = pendingProps;\n  this.memoizedProps = null;\n  this.updateQueue = null;\n  this.memoizedState = null;\n  this.dependencies = null;\n  this.mode = mode; // Effects\n\n  this.flags = NoFlags;\n  this.subtreeFlags = NoFlags;\n  this.deletions = null;\n  this.lanes = NoLanes;\n  this.childLanes = NoLanes;\n  this.alternate = null;\n\n  {\n    // Note: The following is done to avoid a v8 performance cliff.\n    //\n    // Initializing the fields below to smis and later updating them with\n    // double values will cause Fibers to end up having separate shapes.\n    // This behavior/bug has something to do with Object.preventExtension().\n    // Fortunately this only impacts DEV builds.\n    // Unfortunately it makes React unusably slow for some applications.\n    // To work around this, initialize the fields below with doubles.\n    //\n    // Learn more about this here:\n    // https://github.com/facebook/react/issues/14365\n    // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n    this.actualDuration = Number.NaN;\n    this.actualStartTime = Number.NaN;\n    this.selfBaseDuration = Number.NaN;\n    this.treeBaseDuration = Number.NaN; // It's okay to replace the initial doubles with smis after initialization.\n    // This won't trigger the performance cliff mentioned above,\n    // and it simplifies other profiler code (including DevTools).\n\n    this.actualDuration = 0;\n    this.actualStartTime = -1;\n    this.selfBaseDuration = 0;\n    this.treeBaseDuration = 0;\n  }\n\n  {\n    // This isn't directly used but is handy for debugging internals:\n    this._debugSource = null;\n    this._debugOwner = null;\n    this._debugNeedsRemount = false;\n    this._debugHookTypes = null;\n\n    if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n      Object.preventExtensions(this);\n    }\n  }\n} // This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n//    more difficult to predict when they get optimized and they are almost\n//    never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n//    always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n//    to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n//    is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n//    compatible.\n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n  // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n  return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct$1(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n  return typeof type === 'function' && !shouldConstruct$1(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n  if (typeof Component === 'function') {\n    return shouldConstruct$1(Component) ? ClassComponent : FunctionComponent;\n  } else if (Component !== undefined && Component !== null) {\n    var $$typeof = Component.$$typeof;\n\n    if ($$typeof === REACT_FORWARD_REF_TYPE) {\n      return ForwardRef;\n    }\n\n    if ($$typeof === REACT_MEMO_TYPE) {\n      return MemoComponent;\n    }\n  }\n\n  return IndeterminateComponent;\n} // This is used to create an alternate fiber to do work on.\n\nfunction createWorkInProgress(current, pendingProps) {\n  var workInProgress = current.alternate;\n\n  if (workInProgress === null) {\n    // We use a double buffering pooling technique because we know that we'll\n    // only ever need at most two versions of a tree. We pool the \"other\" unused\n    // node that we're free to reuse. This is lazily created to avoid allocating\n    // extra objects for things that are never updated. It also allow us to\n    // reclaim the extra memory if needed.\n    workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n    workInProgress.elementType = current.elementType;\n    workInProgress.type = current.type;\n    workInProgress.stateNode = current.stateNode;\n\n    {\n      // DEV-only fields\n      workInProgress._debugSource = current._debugSource;\n      workInProgress._debugOwner = current._debugOwner;\n      workInProgress._debugHookTypes = current._debugHookTypes;\n    }\n\n    workInProgress.alternate = current;\n    current.alternate = workInProgress;\n  } else {\n    workInProgress.pendingProps = pendingProps; // Needed because Blocks store data on type.\n\n    workInProgress.type = current.type; // We already have an alternate.\n    // Reset the effect tag.\n\n    workInProgress.flags = NoFlags; // The effects are no longer valid.\n\n    workInProgress.subtreeFlags = NoFlags;\n    workInProgress.deletions = null;\n\n    {\n      // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n      // This prevents time from endlessly accumulating in new commits.\n      // This has the downside of resetting values for different priority renders,\n      // But works for yielding (the common case) and should support resuming.\n      workInProgress.actualDuration = 0;\n      workInProgress.actualStartTime = -1;\n    }\n  } // Reset all effects except static ones.\n  // Static effects are not specific to a render.\n\n\n  workInProgress.flags = current.flags & StaticMask;\n  workInProgress.childLanes = current.childLanes;\n  workInProgress.lanes = current.lanes;\n  workInProgress.child = current.child;\n  workInProgress.memoizedProps = current.memoizedProps;\n  workInProgress.memoizedState = current.memoizedState;\n  workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n  // it cannot be shared with the current fiber.\n\n  var currentDependencies = current.dependencies;\n  workInProgress.dependencies = currentDependencies === null ? null : {\n    lanes: currentDependencies.lanes,\n    firstContext: currentDependencies.firstContext\n  }; // These will be overridden during the parent's reconciliation\n\n  workInProgress.sibling = current.sibling;\n  workInProgress.index = current.index;\n  workInProgress.ref = current.ref;\n\n  {\n    workInProgress.selfBaseDuration = current.selfBaseDuration;\n    workInProgress.treeBaseDuration = current.treeBaseDuration;\n  }\n\n  {\n    workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n    switch (workInProgress.tag) {\n      case IndeterminateComponent:\n      case FunctionComponent:\n      case SimpleMemoComponent:\n        workInProgress.type = resolveFunctionForHotReloading(current.type);\n        break;\n\n      case ClassComponent:\n        workInProgress.type = resolveClassForHotReloading(current.type);\n        break;\n\n      case ForwardRef:\n        workInProgress.type = resolveForwardRefForHotReloading(current.type);\n        break;\n    }\n  }\n\n  return workInProgress;\n} // Used to reuse a Fiber for a second pass.\n\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n  // This resets the Fiber to what createFiber or createWorkInProgress would\n  // have set the values to before during the first pass. Ideally this wouldn't\n  // be necessary but unfortunately many code paths reads from the workInProgress\n  // when they should be reading from current and writing to workInProgress.\n  // We assume pendingProps, index, key, ref, return are still untouched to\n  // avoid doing another reconciliation.\n  // Reset the effect flags but keep any Placement tags, since that's something\n  // that child fiber is setting, not the reconciliation.\n  workInProgress.flags &= StaticMask | Placement; // The effects are no longer valid.\n\n  var current = workInProgress.alternate;\n\n  if (current === null) {\n    // Reset to createFiber's initial values.\n    workInProgress.childLanes = NoLanes;\n    workInProgress.lanes = renderLanes;\n    workInProgress.child = null;\n    workInProgress.subtreeFlags = NoFlags;\n    workInProgress.memoizedProps = null;\n    workInProgress.memoizedState = null;\n    workInProgress.updateQueue = null;\n    workInProgress.dependencies = null;\n    workInProgress.stateNode = null;\n\n    {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = 0;\n      workInProgress.treeBaseDuration = 0;\n    }\n  } else {\n    // Reset to the cloned values that createWorkInProgress would've.\n    workInProgress.childLanes = current.childLanes;\n    workInProgress.lanes = current.lanes;\n    workInProgress.child = current.child;\n    workInProgress.subtreeFlags = NoFlags;\n    workInProgress.deletions = null;\n    workInProgress.memoizedProps = current.memoizedProps;\n    workInProgress.memoizedState = current.memoizedState;\n    workInProgress.updateQueue = current.updateQueue; // Needed because Blocks store data on type.\n\n    workInProgress.type = current.type; // Clone the dependencies object. This is mutated during the render phase, so\n    // it cannot be shared with the current fiber.\n\n    var currentDependencies = current.dependencies;\n    workInProgress.dependencies = currentDependencies === null ? null : {\n      lanes: currentDependencies.lanes,\n      firstContext: currentDependencies.firstContext\n    };\n\n    {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = current.selfBaseDuration;\n      workInProgress.treeBaseDuration = current.treeBaseDuration;\n    }\n  }\n\n  return workInProgress;\n}\nfunction createHostRootFiber(tag, isStrictMode, concurrentUpdatesByDefaultOverride) {\n  var mode;\n\n  if (tag === ConcurrentRoot) {\n    mode = ConcurrentMode;\n\n    if (isStrictMode === true) {\n      mode |= StrictLegacyMode;\n\n      {\n        mode |= StrictEffectsMode;\n      }\n    }\n  } else {\n    mode = NoMode;\n  }\n\n  if ( isDevToolsPresent) {\n    // Always collect profile timings when DevTools are present.\n    // This enables DevTools to start capturing timing at any point–\n    // Without some nodes in the tree having empty base times.\n    mode |= ProfileMode;\n  }\n\n  return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, lanes) {\n  var fiberTag = IndeterminateComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n\n  var resolvedType = type;\n\n  if (typeof type === 'function') {\n    if (shouldConstruct$1(type)) {\n      fiberTag = ClassComponent;\n\n      {\n        resolvedType = resolveClassForHotReloading(resolvedType);\n      }\n    } else {\n      {\n        resolvedType = resolveFunctionForHotReloading(resolvedType);\n      }\n    }\n  } else if (typeof type === 'string') {\n    fiberTag = HostComponent;\n  } else {\n    getTag: switch (type) {\n      case REACT_FRAGMENT_TYPE:\n        return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n\n      case REACT_STRICT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= StrictLegacyMode;\n\n        if ( (mode & ConcurrentMode) !== NoMode) {\n          // Strict effects should never run on legacy roots\n          mode |= StrictEffectsMode;\n        }\n\n        break;\n\n      case REACT_PROFILER_TYPE:\n        return createFiberFromProfiler(pendingProps, mode, lanes, key);\n\n      case REACT_SUSPENSE_TYPE:\n        return createFiberFromSuspense(pendingProps, mode, lanes, key);\n\n      case REACT_SUSPENSE_LIST_TYPE:\n        return createFiberFromSuspenseList(pendingProps, mode, lanes, key);\n\n      case REACT_OFFSCREEN_TYPE:\n        return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n\n      case REACT_LEGACY_HIDDEN_TYPE:\n\n      // eslint-disable-next-line no-fallthrough\n\n      case REACT_SCOPE_TYPE:\n\n      // eslint-disable-next-line no-fallthrough\n\n      case REACT_CACHE_TYPE:\n\n      // eslint-disable-next-line no-fallthrough\n\n      case REACT_TRACING_MARKER_TYPE:\n\n      // eslint-disable-next-line no-fallthrough\n\n      case REACT_DEBUG_TRACING_MODE_TYPE:\n\n      // eslint-disable-next-line no-fallthrough\n\n      default:\n        {\n          if (typeof type === 'object' && type !== null) {\n            switch (type.$$typeof) {\n              case REACT_PROVIDER_TYPE:\n                fiberTag = ContextProvider;\n                break getTag;\n\n              case REACT_CONTEXT_TYPE:\n                // This is a consumer\n                fiberTag = ContextConsumer;\n                break getTag;\n\n              case REACT_FORWARD_REF_TYPE:\n                fiberTag = ForwardRef;\n\n                {\n                  resolvedType = resolveForwardRefForHotReloading(resolvedType);\n                }\n\n                break getTag;\n\n              case REACT_MEMO_TYPE:\n                fiberTag = MemoComponent;\n                break getTag;\n\n              case REACT_LAZY_TYPE:\n                fiberTag = LazyComponent;\n                resolvedType = null;\n                break getTag;\n            }\n          }\n\n          var info = '';\n\n          {\n            if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n              info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n            }\n\n            var ownerName = owner ? getComponentNameFromFiber(owner) : null;\n\n            if (ownerName) {\n              info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n            }\n          }\n\n          throw new Error('Element type is invalid: expected a string (for built-in ' + 'components) or a class/function (for composite components) ' + (\"but got: \" + (type == null ? type : typeof type) + \".\" + info));\n        }\n    }\n  }\n\n  var fiber = createFiber(fiberTag, pendingProps, key, mode);\n  fiber.elementType = type;\n  fiber.type = resolvedType;\n  fiber.lanes = lanes;\n\n  {\n    fiber._debugOwner = owner;\n  }\n\n  return fiber;\n}\nfunction createFiberFromElement(element, mode, lanes) {\n  var owner = null;\n\n  {\n    owner = element._owner;\n  }\n\n  var type = element.type;\n  var key = element.key;\n  var pendingProps = element.props;\n  var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes);\n\n  {\n    fiber._debugSource = element._source;\n    fiber._debugOwner = element._owner;\n  }\n\n  return fiber;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n  var fiber = createFiber(Fragment, elements, key, mode);\n  fiber.lanes = lanes;\n  return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, lanes, key) {\n  {\n    if (typeof pendingProps.id !== 'string') {\n      error('Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.', typeof pendingProps.id);\n    }\n  }\n\n  var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode);\n  fiber.elementType = REACT_PROFILER_TYPE;\n  fiber.lanes = lanes;\n\n  {\n    fiber.stateNode = {\n      effectDuration: 0,\n      passiveEffectDuration: 0\n    };\n  }\n\n  return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, lanes, key) {\n  var fiber = createFiber(SuspenseComponent, pendingProps, key, mode);\n  fiber.elementType = REACT_SUSPENSE_TYPE;\n  fiber.lanes = lanes;\n  return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, lanes, key) {\n  var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n  fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n  fiber.lanes = lanes;\n  return fiber;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n  var fiber = createFiber(OffscreenComponent, pendingProps, key, mode);\n  fiber.elementType = REACT_OFFSCREEN_TYPE;\n  fiber.lanes = lanes;\n  var primaryChildInstance = {\n    isHidden: false\n  };\n  fiber.stateNode = primaryChildInstance;\n  return fiber;\n}\nfunction createFiberFromText(content, mode, lanes) {\n  var fiber = createFiber(HostText, content, null, mode);\n  fiber.lanes = lanes;\n  return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n  var fiber = createFiber(HostComponent, null, null, NoMode);\n  fiber.elementType = 'DELETED';\n  return fiber;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n  var fiber = createFiber(DehydratedFragment, null, null, NoMode);\n  fiber.stateNode = dehydratedNode;\n  return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n  var pendingProps = portal.children !== null ? portal.children : [];\n  var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n  fiber.lanes = lanes;\n  fiber.stateNode = {\n    containerInfo: portal.containerInfo,\n    pendingChildren: null,\n    // Used by persistent updates\n    implementation: portal.implementation\n  };\n  return fiber;\n} // Used for stashing WIP properties to replay failed work in DEV.\n\nfunction assignFiberPropertiesInDEV(target, source) {\n  if (target === null) {\n    // This Fiber's initial properties will always be overwritten.\n    // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n    target = createFiber(IndeterminateComponent, null, null, NoMode);\n  } // This is intentionally written as a list of all properties.\n  // We tried to use Object.assign() instead but this is called in\n  // the hottest path, and Object.assign() was too slow:\n  // https://github.com/facebook/react/issues/12502\n  // This code is DEV-only so size is not a concern.\n\n\n  target.tag = source.tag;\n  target.key = source.key;\n  target.elementType = source.elementType;\n  target.type = source.type;\n  target.stateNode = source.stateNode;\n  target.return = source.return;\n  target.child = source.child;\n  target.sibling = source.sibling;\n  target.index = source.index;\n  target.ref = source.ref;\n  target.pendingProps = source.pendingProps;\n  target.memoizedProps = source.memoizedProps;\n  target.updateQueue = source.updateQueue;\n  target.memoizedState = source.memoizedState;\n  target.dependencies = source.dependencies;\n  target.mode = source.mode;\n  target.flags = source.flags;\n  target.subtreeFlags = source.subtreeFlags;\n  target.deletions = source.deletions;\n  target.lanes = source.lanes;\n  target.childLanes = source.childLanes;\n  target.alternate = source.alternate;\n\n  {\n    target.actualDuration = source.actualDuration;\n    target.actualStartTime = source.actualStartTime;\n    target.selfBaseDuration = source.selfBaseDuration;\n    target.treeBaseDuration = source.treeBaseDuration;\n  }\n\n  target._debugSource = source._debugSource;\n  target._debugOwner = source._debugOwner;\n  target._debugNeedsRemount = source._debugNeedsRemount;\n  target._debugHookTypes = source._debugHookTypes;\n  return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError) {\n  this.tag = tag;\n  this.containerInfo = containerInfo;\n  this.pendingChildren = null;\n  this.current = null;\n  this.pingCache = null;\n  this.finishedWork = null;\n  this.timeoutHandle = noTimeout;\n  this.context = null;\n  this.pendingContext = null;\n  this.callbackNode = null;\n  this.callbackPriority = NoLane;\n  this.eventTimes = createLaneMap(NoLanes);\n  this.expirationTimes = createLaneMap(NoTimestamp);\n  this.pendingLanes = NoLanes;\n  this.suspendedLanes = NoLanes;\n  this.pingedLanes = NoLanes;\n  this.expiredLanes = NoLanes;\n  this.mutableReadLanes = NoLanes;\n  this.finishedLanes = NoLanes;\n  this.entangledLanes = NoLanes;\n  this.entanglements = createLaneMap(NoLanes);\n  this.identifierPrefix = identifierPrefix;\n  this.onRecoverableError = onRecoverableError;\n\n  {\n    this.mutableSourceEagerHydrationData = null;\n  }\n\n  {\n    this.effectDuration = 0;\n    this.passiveEffectDuration = 0;\n  }\n\n  {\n    this.memoizedUpdaters = new Set();\n    var pendingUpdatersLaneMap = this.pendingUpdatersLaneMap = [];\n\n    for (var _i = 0; _i < TotalLanes; _i++) {\n      pendingUpdatersLaneMap.push(new Set());\n    }\n  }\n\n  {\n    switch (tag) {\n      case ConcurrentRoot:\n        this._debugRootType = hydrate ? 'hydrateRoot()' : 'createRoot()';\n        break;\n\n      case LegacyRoot:\n        this._debugRootType = hydrate ? 'hydrate()' : 'render()';\n        break;\n    }\n  }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, // TODO: We have several of these arguments that are conceptually part of the\n// host config, but because they are passed in at runtime, we have to thread\n// them through the root constructor. Perhaps we should put them all into a\n// single type, like a DynamicHostConfig that is defined by the renderer.\nidentifierPrefix, onRecoverableError, transitionCallbacks) {\n  var root = new FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError);\n  // stateNode is any.\n\n\n  var uninitializedFiber = createHostRootFiber(tag, isStrictMode);\n  root.current = uninitializedFiber;\n  uninitializedFiber.stateNode = root;\n\n  {\n    var _initialState = {\n      element: initialChildren,\n      isDehydrated: hydrate,\n      cache: null,\n      // not enabled yet\n      transitions: null,\n      pendingSuspenseBoundaries: null\n    };\n    uninitializedFiber.memoizedState = _initialState;\n  }\n\n  initializeUpdateQueue(uninitializedFiber);\n  return root;\n}\n\nvar ReactVersion = '18.2.0';\n\nfunction createPortal(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  {\n    checkKeyStringCoercion(key);\n  }\n\n  return {\n    // This tag allow us to uniquely identify this as a React Portal\n    $$typeof: REACT_PORTAL_TYPE,\n    key: key == null ? null : '' + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n  didWarnAboutNestedUpdates = false;\n  didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n  if (!parentComponent) {\n    return emptyContextObject;\n  }\n\n  var fiber = get(parentComponent);\n  var parentContext = findCurrentUnmaskedContext(fiber);\n\n  if (fiber.tag === ClassComponent) {\n    var Component = fiber.type;\n\n    if (isContextProvider(Component)) {\n      return processChildContext(fiber, Component, parentContext);\n    }\n  }\n\n  return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n  {\n    var fiber = get(component);\n\n    if (fiber === undefined) {\n      if (typeof component.render === 'function') {\n        throw new Error('Unable to find node on an unmounted component.');\n      } else {\n        var keys = Object.keys(component).join(',');\n        throw new Error(\"Argument appears to not be a ReactComponent. Keys: \" + keys);\n      }\n    }\n\n    var hostFiber = findCurrentHostFiber(fiber);\n\n    if (hostFiber === null) {\n      return null;\n    }\n\n    if (hostFiber.mode & StrictLegacyMode) {\n      var componentName = getComponentNameFromFiber(fiber) || 'Component';\n\n      if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n        didWarnAboutFindNodeInStrictMode[componentName] = true;\n        var previousFiber = current;\n\n        try {\n          setCurrentFiber(hostFiber);\n\n          if (fiber.mode & StrictLegacyMode) {\n            error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n          } else {\n            error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n          }\n        } finally {\n          // Ideally this should reset to previous but this shouldn't be called in\n          // render and there's another warning for that anyway.\n          if (previousFiber) {\n            setCurrentFiber(previousFiber);\n          } else {\n            resetCurrentFiber();\n          }\n        }\n      }\n    }\n\n    return hostFiber.stateNode;\n  }\n}\n\nfunction createContainer(containerInfo, tag, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks) {\n  var hydrate = false;\n  var initialChildren = null;\n  return createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n}\nfunction createHydrationContainer(initialChildren, // TODO: Remove `callback` when we delete legacy mode.\ncallback, containerInfo, tag, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks) {\n  var hydrate = true;\n  var root = createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError); // TODO: Move this to FiberRoot constructor\n\n  root.context = getContextForSubtree(null); // Schedule the initial render. In a hydration root, this is different from\n  // a regular update because the initial render must match was was rendered\n  // on the server.\n  // NOTE: This update intentionally doesn't have a payload. We're only using\n  // the update to schedule work on the root fiber (and, for legacy roots, to\n  // enqueue the callback if one is provided).\n\n  var current = root.current;\n  var eventTime = requestEventTime();\n  var lane = requestUpdateLane(current);\n  var update = createUpdate(eventTime, lane);\n  update.callback = callback !== undefined && callback !== null ? callback : null;\n  enqueueUpdate(current, update, lane);\n  scheduleInitialHydrationOnRoot(root, lane, eventTime);\n  return root;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n  {\n    onScheduleRoot(container, element);\n  }\n\n  var current$1 = container.current;\n  var eventTime = requestEventTime();\n  var lane = requestUpdateLane(current$1);\n\n  {\n    markRenderScheduled(lane);\n  }\n\n  var context = getContextForSubtree(parentComponent);\n\n  if (container.context === null) {\n    container.context = context;\n  } else {\n    container.pendingContext = context;\n  }\n\n  {\n    if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n      didWarnAboutNestedUpdates = true;\n\n      error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentNameFromFiber(current) || 'Unknown');\n    }\n  }\n\n  var update = createUpdate(eventTime, lane); // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n\n  update.payload = {\n    element: element\n  };\n  callback = callback === undefined ? null : callback;\n\n  if (callback !== null) {\n    {\n      if (typeof callback !== 'function') {\n        error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n      }\n    }\n\n    update.callback = callback;\n  }\n\n  var root = enqueueUpdate(current$1, update, lane);\n\n  if (root !== null) {\n    scheduleUpdateOnFiber(root, current$1, lane, eventTime);\n    entangleTransitions(root, current$1, lane);\n  }\n\n  return lane;\n}\nfunction getPublicRootInstance(container) {\n  var containerFiber = container.current;\n\n  if (!containerFiber.child) {\n    return null;\n  }\n\n  switch (containerFiber.child.tag) {\n    case HostComponent:\n      return getPublicInstance(containerFiber.child.stateNode);\n\n    default:\n      return containerFiber.child.stateNode;\n  }\n}\nfunction attemptSynchronousHydration$1(fiber) {\n  switch (fiber.tag) {\n    case HostRoot:\n      {\n        var root = fiber.stateNode;\n\n        if (isRootDehydrated(root)) {\n          // Flush the first scheduled \"update\".\n          var lanes = getHighestPriorityPendingLanes(root);\n          flushRoot(root, lanes);\n        }\n\n        break;\n      }\n\n    case SuspenseComponent:\n      {\n        flushSync(function () {\n          var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n          if (root !== null) {\n            var eventTime = requestEventTime();\n            scheduleUpdateOnFiber(root, fiber, SyncLane, eventTime);\n          }\n        }); // If we're still blocked after this, we need to increase\n        // the priority of any promises resolving within this\n        // boundary so that they next attempt also has higher pri.\n\n        var retryLane = SyncLane;\n        markRetryLaneIfNotHydrated(fiber, retryLane);\n        break;\n      }\n  }\n}\n\nfunction markRetryLaneImpl(fiber, retryLane) {\n  var suspenseState = fiber.memoizedState;\n\n  if (suspenseState !== null && suspenseState.dehydrated !== null) {\n    suspenseState.retryLane = higherPriorityLane(suspenseState.retryLane, retryLane);\n  }\n} // Increases the priority of thenables when they resolve within this boundary.\n\n\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n  markRetryLaneImpl(fiber, retryLane);\n  var alternate = fiber.alternate;\n\n  if (alternate) {\n    markRetryLaneImpl(alternate, retryLane);\n  }\n}\nfunction attemptContinuousHydration$1(fiber) {\n  if (fiber.tag !== SuspenseComponent) {\n    // We ignore HostRoots here because we can't increase\n    // their priority and they should not suspend on I/O,\n    // since you have to wrap anything that might suspend in\n    // Suspense.\n    return;\n  }\n\n  var lane = SelectiveHydrationLane;\n  var root = enqueueConcurrentRenderForLane(fiber, lane);\n\n  if (root !== null) {\n    var eventTime = requestEventTime();\n    scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n  }\n\n  markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n  if (fiber.tag !== SuspenseComponent) {\n    // We ignore HostRoots here because we can't increase\n    // their priority other than synchronously flush it.\n    return;\n  }\n\n  var lane = requestUpdateLane(fiber);\n  var root = enqueueConcurrentRenderForLane(fiber, lane);\n\n  if (root !== null) {\n    var eventTime = requestEventTime();\n    scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n  }\n\n  markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n  var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n  if (hostFiber === null) {\n    return null;\n  }\n\n  return hostFiber.stateNode;\n}\n\nvar shouldErrorImpl = function (fiber) {\n  return null;\n};\n\nfunction shouldError(fiber) {\n  return shouldErrorImpl(fiber);\n}\n\nvar shouldSuspendImpl = function (fiber) {\n  return false;\n};\n\nfunction shouldSuspend(fiber) {\n  return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideHookStateDeletePath = null;\nvar overrideHookStateRenamePath = null;\nvar overrideProps = null;\nvar overridePropsDeletePath = null;\nvar overridePropsRenamePath = null;\nvar scheduleUpdate = null;\nvar setErrorHandler = null;\nvar setSuspenseHandler = null;\n\n{\n  var copyWithDeleteImpl = function (obj, path, index) {\n    var key = path[index];\n    var updated = isArray(obj) ? obj.slice() : assign({}, obj);\n\n    if (index + 1 === path.length) {\n      if (isArray(updated)) {\n        updated.splice(key, 1);\n      } else {\n        delete updated[key];\n      }\n\n      return updated;\n    } // $FlowFixMe number or string is fine here\n\n\n    updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n    return updated;\n  };\n\n  var copyWithDelete = function (obj, path) {\n    return copyWithDeleteImpl(obj, path, 0);\n  };\n\n  var copyWithRenameImpl = function (obj, oldPath, newPath, index) {\n    var oldKey = oldPath[index];\n    var updated = isArray(obj) ? obj.slice() : assign({}, obj);\n\n    if (index + 1 === oldPath.length) {\n      var newKey = newPath[index]; // $FlowFixMe number or string is fine here\n\n      updated[newKey] = updated[oldKey];\n\n      if (isArray(updated)) {\n        updated.splice(oldKey, 1);\n      } else {\n        delete updated[oldKey];\n      }\n    } else {\n      // $FlowFixMe number or string is fine here\n      updated[oldKey] = copyWithRenameImpl( // $FlowFixMe number or string is fine here\n      obj[oldKey], oldPath, newPath, index + 1);\n    }\n\n    return updated;\n  };\n\n  var copyWithRename = function (obj, oldPath, newPath) {\n    if (oldPath.length !== newPath.length) {\n      warn('copyWithRename() expects paths of the same length');\n\n      return;\n    } else {\n      for (var i = 0; i < newPath.length - 1; i++) {\n        if (oldPath[i] !== newPath[i]) {\n          warn('copyWithRename() expects paths to be the same except for the deepest key');\n\n          return;\n        }\n      }\n    }\n\n    return copyWithRenameImpl(obj, oldPath, newPath, 0);\n  };\n\n  var copyWithSetImpl = function (obj, path, index, value) {\n    if (index >= path.length) {\n      return value;\n    }\n\n    var key = path[index];\n    var updated = isArray(obj) ? obj.slice() : assign({}, obj); // $FlowFixMe number or string is fine here\n\n    updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n    return updated;\n  };\n\n  var copyWithSet = function (obj, path, value) {\n    return copyWithSetImpl(obj, path, 0, value);\n  };\n\n  var findHook = function (fiber, id) {\n    // For now, the \"id\" of stateful hooks is just the stateful hook index.\n    // This may change in the future with e.g. nested hooks.\n    var currentHook = fiber.memoizedState;\n\n    while (currentHook !== null && id > 0) {\n      currentHook = currentHook.next;\n      id--;\n    }\n\n    return currentHook;\n  }; // Support DevTools editable values for useState and useReducer.\n\n\n  overrideHookState = function (fiber, id, path, value) {\n    var hook = findHook(fiber, id);\n\n    if (hook !== null) {\n      var newState = copyWithSet(hook.memoizedState, path, value);\n      hook.memoizedState = newState;\n      hook.baseState = newState; // We aren't actually adding an update to the queue,\n      // because there is no update we can add for useReducer hooks that won't trigger an error.\n      // (There's no appropriate action type for DevTools overrides.)\n      // As a result though, React will see the scheduled update as a noop and bailout.\n      // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n      fiber.memoizedProps = assign({}, fiber.memoizedProps);\n      var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n      if (root !== null) {\n        scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n      }\n    }\n  };\n\n  overrideHookStateDeletePath = function (fiber, id, path) {\n    var hook = findHook(fiber, id);\n\n    if (hook !== null) {\n      var newState = copyWithDelete(hook.memoizedState, path);\n      hook.memoizedState = newState;\n      hook.baseState = newState; // We aren't actually adding an update to the queue,\n      // because there is no update we can add for useReducer hooks that won't trigger an error.\n      // (There's no appropriate action type for DevTools overrides.)\n      // As a result though, React will see the scheduled update as a noop and bailout.\n      // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n      fiber.memoizedProps = assign({}, fiber.memoizedProps);\n      var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n      if (root !== null) {\n        scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n      }\n    }\n  };\n\n  overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n    var hook = findHook(fiber, id);\n\n    if (hook !== null) {\n      var newState = copyWithRename(hook.memoizedState, oldPath, newPath);\n      hook.memoizedState = newState;\n      hook.baseState = newState; // We aren't actually adding an update to the queue,\n      // because there is no update we can add for useReducer hooks that won't trigger an error.\n      // (There's no appropriate action type for DevTools overrides.)\n      // As a result though, React will see the scheduled update as a noop and bailout.\n      // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n      fiber.memoizedProps = assign({}, fiber.memoizedProps);\n      var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n      if (root !== null) {\n        scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n      }\n    }\n  }; // Support DevTools props for function components, forwardRef, memo, host components, etc.\n\n\n  overrideProps = function (fiber, path, value) {\n    fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n    if (fiber.alternate) {\n      fiber.alternate.pendingProps = fiber.pendingProps;\n    }\n\n    var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n    }\n  };\n\n  overridePropsDeletePath = function (fiber, path) {\n    fiber.pendingProps = copyWithDelete(fiber.memoizedProps, path);\n\n    if (fiber.alternate) {\n      fiber.alternate.pendingProps = fiber.pendingProps;\n    }\n\n    var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n    }\n  };\n\n  overridePropsRenamePath = function (fiber, oldPath, newPath) {\n    fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);\n\n    if (fiber.alternate) {\n      fiber.alternate.pendingProps = fiber.pendingProps;\n    }\n\n    var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n    }\n  };\n\n  scheduleUpdate = function (fiber) {\n    var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n    if (root !== null) {\n      scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n    }\n  };\n\n  setErrorHandler = function (newShouldErrorImpl) {\n    shouldErrorImpl = newShouldErrorImpl;\n  };\n\n  setSuspenseHandler = function (newShouldSuspendImpl) {\n    shouldSuspendImpl = newShouldSuspendImpl;\n  };\n}\n\nfunction findHostInstanceByFiber(fiber) {\n  var hostFiber = findCurrentHostFiber(fiber);\n\n  if (hostFiber === null) {\n    return null;\n  }\n\n  return hostFiber.stateNode;\n}\n\nfunction emptyFindFiberByHostInstance(instance) {\n  return null;\n}\n\nfunction getCurrentFiberForDevTools() {\n  return current;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n  var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n  return injectInternals({\n    bundleType: devToolsConfig.bundleType,\n    version: devToolsConfig.version,\n    rendererPackageName: devToolsConfig.rendererPackageName,\n    rendererConfig: devToolsConfig.rendererConfig,\n    overrideHookState: overrideHookState,\n    overrideHookStateDeletePath: overrideHookStateDeletePath,\n    overrideHookStateRenamePath: overrideHookStateRenamePath,\n    overrideProps: overrideProps,\n    overridePropsDeletePath: overridePropsDeletePath,\n    overridePropsRenamePath: overridePropsRenamePath,\n    setErrorHandler: setErrorHandler,\n    setSuspenseHandler: setSuspenseHandler,\n    scheduleUpdate: scheduleUpdate,\n    currentDispatcherRef: ReactCurrentDispatcher,\n    findHostInstanceByFiber: findHostInstanceByFiber,\n    findFiberByHostInstance: findFiberByHostInstance || emptyFindFiberByHostInstance,\n    // React Refresh\n    findHostInstancesForRefresh:  findHostInstancesForRefresh ,\n    scheduleRefresh:  scheduleRefresh ,\n    scheduleRoot:  scheduleRoot ,\n    setRefreshHandler:  setRefreshHandler ,\n    // Enables DevTools to append owner stacks to error messages in DEV mode.\n    getCurrentFiber:  getCurrentFiberForDevTools ,\n    // Enables DevTools to detect reconciler version rather than renderer version\n    // which may not match for third party renderers.\n    reconcilerVersion: ReactVersion\n  });\n}\n\n/* global reportError */\n\nvar defaultOnRecoverableError = typeof reportError === 'function' ? // In modern browsers, reportError will dispatch an error event,\n// emulating an uncaught JavaScript error.\nreportError : function (error) {\n  // In older browsers and test environments, fallback to console.error.\n  // eslint-disable-next-line react-internal/no-production-logging\n  console['error'](error);\n};\n\nfunction ReactDOMRoot(internalRoot) {\n  this._internalRoot = internalRoot;\n}\n\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render = function (children) {\n  var root = this._internalRoot;\n\n  if (root === null) {\n    throw new Error('Cannot update an unmounted root.');\n  }\n\n  {\n    if (typeof arguments[1] === 'function') {\n      error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n    } else if (isValidContainer(arguments[1])) {\n      error('You passed a container to the second argument of root.render(...). ' + \"You don't need to pass it again since you already passed it to create the root.\");\n    } else if (typeof arguments[1] !== 'undefined') {\n      error('You passed a second argument to root.render(...) but it only accepts ' + 'one argument.');\n    }\n\n    var container = root.containerInfo;\n\n    if (container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n      if (hostInstance) {\n        if (hostInstance.parentNode !== container) {\n          error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n        }\n      }\n    }\n  }\n\n  updateContainer(children, root, null, null);\n};\n\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount = function () {\n  {\n    if (typeof arguments[0] === 'function') {\n      error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n    }\n  }\n\n  var root = this._internalRoot;\n\n  if (root !== null) {\n    this._internalRoot = null;\n    var container = root.containerInfo;\n\n    {\n      if (isAlreadyRendering()) {\n        error('Attempted to synchronously unmount a root while React was already ' + 'rendering. React cannot finish unmounting the root until the ' + 'current render has completed, which may lead to a race condition.');\n      }\n    }\n\n    flushSync(function () {\n      updateContainer(null, root, null, null);\n    });\n    unmarkContainerAsRoot(container);\n  }\n};\n\nfunction createRoot(container, options) {\n  if (!isValidContainer(container)) {\n    throw new Error('createRoot(...): Target container is not a DOM element.');\n  }\n\n  warnIfReactDOMContainerInDEV(container);\n  var isStrictMode = false;\n  var concurrentUpdatesByDefaultOverride = false;\n  var identifierPrefix = '';\n  var onRecoverableError = defaultOnRecoverableError;\n  var transitionCallbacks = null;\n\n  if (options !== null && options !== undefined) {\n    {\n      if (options.hydrate) {\n        warn('hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.');\n      } else {\n        if (typeof options === 'object' && options !== null && options.$$typeof === REACT_ELEMENT_TYPE) {\n          error('You passed a JSX element to createRoot. You probably meant to ' + 'call root.render instead. ' + 'Example usage:\\n\\n' + '  let root = createRoot(domContainer);\\n' + '  root.render(<App />);');\n        }\n      }\n    }\n\n    if (options.unstable_strictMode === true) {\n      isStrictMode = true;\n    }\n\n    if (options.identifierPrefix !== undefined) {\n      identifierPrefix = options.identifierPrefix;\n    }\n\n    if (options.onRecoverableError !== undefined) {\n      onRecoverableError = options.onRecoverableError;\n    }\n\n    if (options.transitionCallbacks !== undefined) {\n      transitionCallbacks = options.transitionCallbacks;\n    }\n  }\n\n  var root = createContainer(container, ConcurrentRoot, null, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n  markContainerAsRoot(root.current, container);\n  var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n  listenToAllSupportedEvents(rootContainerElement);\n  return new ReactDOMRoot(root);\n}\n\nfunction ReactDOMHydrationRoot(internalRoot) {\n  this._internalRoot = internalRoot;\n}\n\nfunction scheduleHydration(target) {\n  if (target) {\n    queueExplicitHydrationTarget(target);\n  }\n}\n\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = scheduleHydration;\nfunction hydrateRoot(container, initialChildren, options) {\n  if (!isValidContainer(container)) {\n    throw new Error('hydrateRoot(...): Target container is not a DOM element.');\n  }\n\n  warnIfReactDOMContainerInDEV(container);\n\n  {\n    if (initialChildren === undefined) {\n      error('Must provide initial children as second argument to hydrateRoot. ' + 'Example usage: hydrateRoot(domContainer, <App />)');\n    }\n  } // For now we reuse the whole bag of options since they contain\n  // the hydration callbacks.\n\n\n  var hydrationCallbacks = options != null ? options : null; // TODO: Delete this option\n\n  var mutableSources = options != null && options.hydratedSources || null;\n  var isStrictMode = false;\n  var concurrentUpdatesByDefaultOverride = false;\n  var identifierPrefix = '';\n  var onRecoverableError = defaultOnRecoverableError;\n\n  if (options !== null && options !== undefined) {\n    if (options.unstable_strictMode === true) {\n      isStrictMode = true;\n    }\n\n    if (options.identifierPrefix !== undefined) {\n      identifierPrefix = options.identifierPrefix;\n    }\n\n    if (options.onRecoverableError !== undefined) {\n      onRecoverableError = options.onRecoverableError;\n    }\n  }\n\n  var root = createHydrationContainer(initialChildren, null, container, ConcurrentRoot, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n  markContainerAsRoot(root.current, container); // This can't be a comment node since hydration doesn't work on comment nodes anyway.\n\n  listenToAllSupportedEvents(container);\n\n  if (mutableSources) {\n    for (var i = 0; i < mutableSources.length; i++) {\n      var mutableSource = mutableSources[i];\n      registerMutableSourceForHydration(root, mutableSource);\n    }\n  }\n\n  return new ReactDOMHydrationRoot(root);\n}\nfunction isValidContainer(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || !disableCommentsAsDOMContainers  ));\n} // TODO: Remove this function which also includes comment nodes.\n// We only use it in places that are currently more relaxed.\n\nfunction isValidContainerLegacy(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nfunction warnIfReactDOMContainerInDEV(container) {\n  {\n    if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n      error('createRoot(): Creating roots directly with document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try using a container element created ' + 'for your app.');\n    }\n\n    if (isContainerMarkedAsRoot(container)) {\n      if (container._reactRootContainer) {\n        error('You are calling ReactDOMClient.createRoot() on a container that was previously ' + 'passed to ReactDOM.render(). This is not supported.');\n      } else {\n        error('You are calling ReactDOMClient.createRoot() on a container that ' + 'has already been passed to createRoot() before. Instead, call ' + 'root.render() on the existing root instead if you want to update it.');\n      }\n    }\n  }\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\n\n{\n  topLevelUpdateWarnings = function (container) {\n    if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer.current);\n\n      if (hostInstance) {\n        if (hostInstance.parentNode !== container) {\n          error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n        }\n      }\n    }\n\n    var isRootRenderedBySomeReact = !!container._reactRootContainer;\n    var rootEl = getReactRootElementInContainer(container);\n    var hasNonRootReactChild = !!(rootEl && getInstanceFromNode(rootEl));\n\n    if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n      error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n    }\n\n    if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n      error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n    }\n  };\n}\n\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOCUMENT_NODE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\nfunction noopOnRecoverableError() {// This isn't reachable because onRecoverableError isn't called in the\n  // legacy API.\n}\n\nfunction legacyCreateRootFromDOMContainer(container, initialChildren, parentComponent, callback, isHydrationContainer) {\n  if (isHydrationContainer) {\n    if (typeof callback === 'function') {\n      var originalCallback = callback;\n\n      callback = function () {\n        var instance = getPublicRootInstance(root);\n        originalCallback.call(instance);\n      };\n    }\n\n    var root = createHydrationContainer(initialChildren, callback, container, LegacyRoot, null, // hydrationCallbacks\n    false, // isStrictMode\n    false, // concurrentUpdatesByDefaultOverride,\n    '', // identifierPrefix\n    noopOnRecoverableError);\n    container._reactRootContainer = root;\n    markContainerAsRoot(root.current, container);\n    var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n    listenToAllSupportedEvents(rootContainerElement);\n    flushSync();\n    return root;\n  } else {\n    // First clear any existing content.\n    var rootSibling;\n\n    while (rootSibling = container.lastChild) {\n      container.removeChild(rootSibling);\n    }\n\n    if (typeof callback === 'function') {\n      var _originalCallback = callback;\n\n      callback = function () {\n        var instance = getPublicRootInstance(_root);\n\n        _originalCallback.call(instance);\n      };\n    }\n\n    var _root = createContainer(container, LegacyRoot, null, // hydrationCallbacks\n    false, // isStrictMode\n    false, // concurrentUpdatesByDefaultOverride,\n    '', // identifierPrefix\n    noopOnRecoverableError);\n\n    container._reactRootContainer = _root;\n    markContainerAsRoot(_root.current, container);\n\n    var _rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n\n    listenToAllSupportedEvents(_rootContainerElement); // Initial mount should not be batched.\n\n    flushSync(function () {\n      updateContainer(initialChildren, _root, parentComponent, callback);\n    });\n    return _root;\n  }\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n  {\n    if (callback !== null && typeof callback !== 'function') {\n      error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n  {\n    topLevelUpdateWarnings(container);\n    warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n  }\n\n  var maybeRoot = container._reactRootContainer;\n  var root;\n\n  if (!maybeRoot) {\n    // Initial mount\n    root = legacyCreateRootFromDOMContainer(container, children, parentComponent, callback, forceHydrate);\n  } else {\n    root = maybeRoot;\n\n    if (typeof callback === 'function') {\n      var originalCallback = callback;\n\n      callback = function () {\n        var instance = getPublicRootInstance(root);\n        originalCallback.call(instance);\n      };\n    } // Update\n\n\n    updateContainer(children, root, parentComponent, callback);\n  }\n\n  return getPublicRootInstance(root);\n}\n\nfunction findDOMNode(componentOrElement) {\n  {\n    var owner = ReactCurrentOwner$3.current;\n\n    if (owner !== null && owner.stateNode !== null) {\n      var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n      if (!warnedAboutRefsInRender) {\n        error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentNameFromType(owner.type) || 'A component');\n      }\n\n      owner.stateNode._warnedAboutRefsInRender = true;\n    }\n  }\n\n  if (componentOrElement == null) {\n    return null;\n  }\n\n  if (componentOrElement.nodeType === ELEMENT_NODE) {\n    return componentOrElement;\n  }\n\n  {\n    return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n  }\n}\nfunction hydrate(element, container, callback) {\n  {\n    error('ReactDOM.hydrate is no longer supported in React 18. Use hydrateRoot ' + 'instead. Until you switch to the new API, your app will behave as ' + \"if it's running React 17. Learn \" + 'more: https://reactjs.org/link/switch-to-createroot');\n  }\n\n  if (!isValidContainerLegacy(container)) {\n    throw new Error('Target container is not a DOM element.');\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. ' + 'Did you mean to call hydrateRoot(container, element)?');\n    }\n  } // TODO: throw or warn if we couldn't hydrate?\n\n\n  return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n  {\n    error('ReactDOM.render is no longer supported in React 18. Use createRoot ' + 'instead. Until you switch to the new API, your app will behave as ' + \"if it's running React 17. Learn \" + 'more: https://reactjs.org/link/switch-to-createroot');\n  }\n\n  if (!isValidContainerLegacy(container)) {\n    throw new Error('Target container is not a DOM element.');\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n    }\n  }\n\n  return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n  {\n    error('ReactDOM.unstable_renderSubtreeIntoContainer() is no longer supported ' + 'in React 18. Consider using a portal instead. Until you switch to ' + \"the createRoot API, your app will behave as if it's running React \" + '17. Learn more: https://reactjs.org/link/switch-to-createroot');\n  }\n\n  if (!isValidContainerLegacy(containerNode)) {\n    throw new Error('Target container is not a DOM element.');\n  }\n\n  if (parentComponent == null || !has(parentComponent)) {\n    throw new Error('parentComponent must be a valid React Component');\n  }\n\n  return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nfunction unmountComponentAtNode(container) {\n  if (!isValidContainerLegacy(container)) {\n    throw new Error('unmountComponentAtNode(...): Target container is not a DOM element.');\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n    }\n  }\n\n  if (container._reactRootContainer) {\n    {\n      var rootEl = getReactRootElementInContainer(container);\n      var renderedByDifferentReact = rootEl && !getInstanceFromNode(rootEl);\n\n      if (renderedByDifferentReact) {\n        error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n      }\n    } // Unmount should not be batched.\n\n\n    flushSync(function () {\n      legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n        // $FlowFixMe This should probably use `delete container._reactRootContainer`\n        container._reactRootContainer = null;\n        unmarkContainerAsRoot(container);\n      });\n    }); // If you call unmountComponentAtNode twice in quick succession, you'll\n    // get `true` twice. That's probably fine?\n\n    return true;\n  } else {\n    {\n      var _rootEl = getReactRootElementInContainer(container);\n\n      var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode(_rootEl)); // Check if the container itself is a React root node.\n\n      var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainerLegacy(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n      if (hasNonRootReactChild) {\n        error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n      }\n    }\n\n    return false;\n  }\n}\n\nsetAttemptSynchronousHydration(attemptSynchronousHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nsetGetCurrentUpdatePriority(getCurrentUpdatePriority);\nsetAttemptHydrationAtPriority(runWithPriority);\n\n{\n  if (typeof Map !== 'function' || // $FlowIssue Flow incorrectly thinks Map has no prototype\n  Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || // $FlowIssue Flow incorrectly thinks Set has no prototype\n  Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n    error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n  }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates, flushSync);\n\nfunction createPortal$1(children, container) {\n  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!isValidContainer(container)) {\n    throw new Error('Target container is not a DOM element.');\n  } // TODO: pass ReactDOM portal implementation as third argument\n  // $FlowFixMe The Flow type is opaque but there's no way to actually create it.\n\n\n  return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n  return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nvar Internals = {\n  usingClientEntryPoint: false,\n  // Keep in sync with ReactTestUtils.js.\n  // This is an array for better minification.\n  Events: [getInstanceFromNode, getNodeFromInstance, getFiberCurrentPropsFromNode, enqueueStateRestore, restoreStateIfNeeded, batchedUpdates$1]\n};\n\nfunction createRoot$1(container, options) {\n  {\n    if (!Internals.usingClientEntryPoint && !false) {\n      error('You are importing createRoot from \"react-dom\" which is not supported. ' + 'You should instead import it from \"react-dom/client\".');\n    }\n  }\n\n  return createRoot(container, options);\n}\n\nfunction hydrateRoot$1(container, initialChildren, options) {\n  {\n    if (!Internals.usingClientEntryPoint && !false) {\n      error('You are importing hydrateRoot from \"react-dom\" which is not supported. ' + 'You should instead import it from \"react-dom/client\".');\n    }\n  }\n\n  return hydrateRoot(container, initialChildren, options);\n} // Overload the definition to the two valid signatures.\n// Warning, this opts-out of checking the function body.\n\n\n// eslint-disable-next-line no-redeclare\nfunction flushSync$1(fn) {\n  {\n    if (isAlreadyRendering()) {\n      error('flushSync was called from inside a lifecycle method. React cannot ' + 'flush when React is already rendering. Consider moving this call to ' + 'a scheduler task or micro task.');\n    }\n  }\n\n  return flushSync(fn);\n}\nvar foundDevTools = injectIntoDevTools({\n  findFiberByHostInstance: getClosestInstanceFromNode,\n  bundleType:  1 ,\n  version: ReactVersion,\n  rendererPackageName: 'react-dom'\n});\n\n{\n  if (!foundDevTools && canUseDOM && window.top === window.self) {\n    // If we're in Chrome or Firefox, provide a download link if not installed.\n    if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n      var protocol = window.location.protocol; // Don't warn in exotic cases like chrome-extension://.\n\n      if (/^(https?|file):$/.test(protocol)) {\n        // eslint-disable-next-line react-internal/no-production-logging\n        console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://reactjs.org/link/react-devtools-faq' : ''), 'font-weight:bold');\n      }\n    }\n  }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.createRoot = createRoot$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync$1;\nexports.hydrate = hydrate;\nexports.hydrateRoot = hydrateRoot$1;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\n          /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n        \n  })();\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/react-dom/cjs/react-dom.development.js?");

/***/ }),

/***/ "./node_modules/react-dom/client.js":
/*!******************************************!*\
  !*** ./node_modules/react-dom/client.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar m = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nif (false) {} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/react-dom/client.js?");

/***/ }),

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

"use strict";
eval("\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (true) {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/react-dom/index.js?");

/***/ }),

/***/ "./node_modules/react/cjs/react.development.js":
/*!*****************************************************!*\
  !*** ./node_modules/react/cjs/react.development.js ***!
  \*****************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function() {\n\n          'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n          var ReactVersion = '18.2.0';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n  transition: null\n};\n\nvar ReactCurrentActQueue = {\n  current: null,\n  // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n  isBatchingLegacy: false,\n  didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n  {\n    currentExtraStackFrame = stack;\n  }\n}\n\n{\n  ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n    {\n      currentExtraStackFrame = stack;\n    }\n  }; // Stack implementation injected by the current renderer.\n\n\n  ReactDebugCurrentFrame.getCurrentStack = null;\n\n  ReactDebugCurrentFrame.getStackAddendum = function () {\n    var stack = ''; // Add an extra top frame while an element is being validated\n\n    if (currentExtraStackFrame) {\n      stack += currentExtraStackFrame;\n    } // Delegate to the injected renderer-specific implementation\n\n\n    var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n    if (impl) {\n      stack += impl() || '';\n    }\n\n    return stack;\n  };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n  ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n  ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n  ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n  {\n    {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      printWarning('warn', format, args);\n    }\n  }\n}\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n    var warningKey = componentName + \".\" + callerName;\n\n    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n      return;\n    }\n\n    error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n    didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n  }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance, callback, callerName) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n  Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n  // renderer.\n\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n  if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n    throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n  }\n\n  this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n\n  var defineDeprecationWarning = function (methodName, info) {\n    Object.defineProperty(Component.prototype, methodName, {\n      get: function () {\n        warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n        return undefined;\n      }\n    });\n  };\n\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n  var refObject = {\n    current: null\n  };\n\n  {\n    Object.seal(refObject);\n  }\n\n  return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n  var propName; // Reserved names are extracted\n\n  var props = {};\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      ref = config.ref;\n\n      {\n        warnIfStringRefCannotBeAutoConverted(config);\n      }\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    {\n      if (Object.freeze) {\n        Object.freeze(childArray);\n      }\n    }\n\n    props.children = childArray;\n  } // Resolve default props\n\n\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  {\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n  return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n  if (element === null || element === undefined) {\n    throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n  }\n\n  var propName; // Original props are copied\n\n  var props = assign({}, element.props); // Reserved names are extracted\n\n  var key = element.key;\n  var ref = element.ref; // Self is preserved since the owner is preserved.\n\n  var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n\n  var source = element._source; // Owner will be preserved, unless ref is overridden\n\n  var owner = element._owner;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    } // Remaining properties override existing props\n\n\n    var defaultProps;\n\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = key.replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n  return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n  return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (typeof element === 'object' && element !== null && element.key != null) {\n    // Explicit key\n    {\n      checkKeyStringCoercion(element.key);\n    }\n\n    return escape('' + element.key);\n  } // Implicit key determined by the index in the set\n\n\n  return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  var invokeCallback = false;\n\n  if (children === null) {\n    invokeCallback = true;\n  } else {\n    switch (type) {\n      case 'string':\n      case 'number':\n        invokeCallback = true;\n        break;\n\n      case 'object':\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = true;\n        }\n\n    }\n  }\n\n  if (invokeCallback) {\n    var _child = children;\n    var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows:\n\n    var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n    if (isArray(mappedChild)) {\n      var escapedChildKey = '';\n\n      if (childKey != null) {\n        escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n      }\n\n      mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n        return c;\n      });\n    } else if (mappedChild != null) {\n      if (isValidElement(mappedChild)) {\n        {\n          // The `if` statement here prevents auto-disabling of the safe\n          // coercion ESLint rule, so we must manually disable it below.\n          // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n          if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n            checkKeyStringCoercion(mappedChild.key);\n          }\n        }\n\n        mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n        // traverseAllChildren used to do for objects as children\n        escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n        mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n        // eslint-disable-next-line react-internal/safe-string-coercion\n        escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n      }\n\n      array.push(mappedChild);\n    }\n\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getElementKey(child, i);\n      subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n\n    if (typeof iteratorFn === 'function') {\n      var iterableChildren = children;\n\n      {\n        // Warn about using Maps as children\n        if (iteratorFn === iterableChildren.entries) {\n          if (!didWarnAboutMaps) {\n            warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n          }\n\n          didWarnAboutMaps = true;\n        }\n      }\n\n      var iterator = iteratorFn.call(iterableChildren);\n      var step;\n      var ii = 0;\n\n      while (!(step = iterator.next()).done) {\n        child = step.value;\n        nextName = nextNamePrefix + getElementKey(child, ii++);\n        subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n      }\n    } else if (type === 'object') {\n      // eslint-disable-next-line react-internal/safe-string-coercion\n      var childrenString = String(children);\n      throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n\n  var result = [];\n  var count = 0;\n  mapIntoArray(children, result, '', '', function (child) {\n    return func.call(context, child, count++);\n  });\n  return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n  var n = 0;\n  mapChildren(children, function () {\n    n++; // Don't return anything\n  });\n  return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  mapChildren(children, function () {\n    forEachFunc.apply(this, arguments); // Don't return anything.\n  }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n  return mapChildren(children, function (child) {\n    return child;\n  }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n  if (!isValidElement(children)) {\n    throw new Error('React.Children.only expected to receive a single React element child.');\n  }\n\n  return children;\n}\n\nfunction createContext(defaultValue) {\n  // TODO: Second argument used to be an optional `calculateChangedBits`\n  // function. Warn to reserve for future use?\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    // As a workaround to support multiple concurrent renderers, we categorize\n    // some renderers as primary and others as secondary. We only expect\n    // there to be two concurrent renderers at most: React Native (primary) and\n    // Fabric (secondary); React DOM (primary) and React ART (secondary).\n    // Secondary renderers store their context values on separate fields.\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    // Used to track how many concurrent renderers this context currently\n    // supports within in a single renderer. Such as parallel server rendering.\n    _threadCount: 0,\n    // These are circular\n    Provider: null,\n    Consumer: null,\n    // Add these to use same hidden class in VM as ServerContext\n    _defaultValue: null,\n    _globalName: null\n  };\n  context.Provider = {\n    $$typeof: REACT_PROVIDER_TYPE,\n    _context: context\n  };\n  var hasWarnedAboutUsingNestedContextConsumers = false;\n  var hasWarnedAboutUsingConsumerProvider = false;\n  var hasWarnedAboutDisplayNameOnConsumer = false;\n\n  {\n    // A separate object, but proxies back to the original context object for\n    // backwards compatibility. It has a different $$typeof, so we can properly\n    // warn for the incorrect usage of Context as a Consumer.\n    var Consumer = {\n      $$typeof: REACT_CONTEXT_TYPE,\n      _context: context\n    }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n    Object.defineProperties(Consumer, {\n      Provider: {\n        get: function () {\n          if (!hasWarnedAboutUsingConsumerProvider) {\n            hasWarnedAboutUsingConsumerProvider = true;\n\n            error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n          }\n\n          return context.Provider;\n        },\n        set: function (_Provider) {\n          context.Provider = _Provider;\n        }\n      },\n      _currentValue: {\n        get: function () {\n          return context._currentValue;\n        },\n        set: function (_currentValue) {\n          context._currentValue = _currentValue;\n        }\n      },\n      _currentValue2: {\n        get: function () {\n          return context._currentValue2;\n        },\n        set: function (_currentValue2) {\n          context._currentValue2 = _currentValue2;\n        }\n      },\n      _threadCount: {\n        get: function () {\n          return context._threadCount;\n        },\n        set: function (_threadCount) {\n          context._threadCount = _threadCount;\n        }\n      },\n      Consumer: {\n        get: function () {\n          if (!hasWarnedAboutUsingNestedContextConsumers) {\n            hasWarnedAboutUsingNestedContextConsumers = true;\n\n            error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n          }\n\n          return context.Consumer;\n        }\n      },\n      displayName: {\n        get: function () {\n          return context.displayName;\n        },\n        set: function (displayName) {\n          if (!hasWarnedAboutDisplayNameOnConsumer) {\n            warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n            hasWarnedAboutDisplayNameOnConsumer = true;\n          }\n        }\n      }\n    }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n    context.Consumer = Consumer;\n  }\n\n  {\n    context._currentRenderer = null;\n    context._currentRenderer2 = null;\n  }\n\n  return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n  if (payload._status === Uninitialized) {\n    var ctor = payload._result;\n    var thenable = ctor(); // Transition to the next state.\n    // This might throw either because it's missing or throws. If so, we treat it\n    // as still uninitialized and try again next time. Which is the same as what\n    // happens if the ctor or any wrappers processing the ctor throws. This might\n    // end up fixing it if the resolution was a concurrency bug.\n\n    thenable.then(function (moduleObject) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var resolved = payload;\n        resolved._status = Resolved;\n        resolved._result = moduleObject;\n      }\n    }, function (error) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var rejected = payload;\n        rejected._status = Rejected;\n        rejected._result = error;\n      }\n    });\n\n    if (payload._status === Uninitialized) {\n      // In case, we're still uninitialized, then we're waiting for the thenable\n      // to resolve. Set it as pending in the meantime.\n      var pending = payload;\n      pending._status = Pending;\n      pending._result = thenable;\n    }\n  }\n\n  if (payload._status === Resolved) {\n    var moduleObject = payload._result;\n\n    {\n      if (moduleObject === undefined) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + // Break up imports to avoid accidentally parsing them as dependencies.\n        'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n      }\n    }\n\n    {\n      if (!('default' in moduleObject)) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + // Break up imports to avoid accidentally parsing them as dependencies.\n        'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n      }\n    }\n\n    return moduleObject.default;\n  } else {\n    throw payload._result;\n  }\n}\n\nfunction lazy(ctor) {\n  var payload = {\n    // We use these fields to store the result.\n    _status: Uninitialized,\n    _result: ctor\n  };\n  var lazyType = {\n    $$typeof: REACT_LAZY_TYPE,\n    _payload: payload,\n    _init: lazyInitializer\n  };\n\n  {\n    // In production, this would just set it on the object.\n    var defaultProps;\n    var propTypes; // $FlowFixMe\n\n    Object.defineProperties(lazyType, {\n      defaultProps: {\n        configurable: true,\n        get: function () {\n          return defaultProps;\n        },\n        set: function (newDefaultProps) {\n          error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          defaultProps = newDefaultProps; // Match production behavior more closely:\n          // $FlowFixMe\n\n          Object.defineProperty(lazyType, 'defaultProps', {\n            enumerable: true\n          });\n        }\n      },\n      propTypes: {\n        configurable: true,\n        get: function () {\n          return propTypes;\n        },\n        set: function (newPropTypes) {\n          error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          propTypes = newPropTypes; // Match production behavior more closely:\n          // $FlowFixMe\n\n          Object.defineProperty(lazyType, 'propTypes', {\n            enumerable: true\n          });\n        }\n      }\n    });\n  }\n\n  return lazyType;\n}\n\nfunction forwardRef(render) {\n  {\n    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n      error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n    } else if (typeof render !== 'function') {\n      error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n    } else {\n      if (render.length !== 0 && render.length !== 2) {\n        error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n      }\n    }\n\n    if (render != null) {\n      if (render.defaultProps != null || render.propTypes != null) {\n        error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n      }\n    }\n  }\n\n  var elementType = {\n    $$typeof: REACT_FORWARD_REF_TYPE,\n    render: render\n  };\n\n  {\n    var ownName;\n    Object.defineProperty(elementType, 'displayName', {\n      enumerable: false,\n      configurable: true,\n      get: function () {\n        return ownName;\n      },\n      set: function (name) {\n        ownName = name; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.forwardRef((props, ref) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!render.name && !render.displayName) {\n          render.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction memo(type, compare) {\n  {\n    if (!isValidElementType(type)) {\n      error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n    }\n  }\n\n  var elementType = {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: compare === undefined ? null : compare\n  };\n\n  {\n    var ownName;\n    Object.defineProperty(elementType, 'displayName', {\n      enumerable: false,\n      configurable: true,\n      get: function () {\n        return ownName;\n      },\n      set: function (name) {\n        ownName = name; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.memo((props) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!type.name && !type.displayName) {\n          type.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\n\nfunction resolveDispatcher() {\n  var dispatcher = ReactCurrentDispatcher.current;\n\n  {\n    if (dispatcher === null) {\n      error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n    }\n  } // Will result in a null access error if accessed outside render phase. We\n  // intentionally don't throw our own error because this is in a hot path.\n  // Also helps ensure this is inlined.\n\n\n  return dispatcher;\n}\nfunction useContext(Context) {\n  var dispatcher = resolveDispatcher();\n\n  {\n    // TODO: add a more generic warning for invalid values.\n    if (Context._context !== undefined) {\n      var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n      // and nobody should be using this in existing code.\n\n      if (realContext.Consumer === Context) {\n        error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n      } else if (realContext.Provider === Context) {\n        error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n      }\n    }\n  }\n\n  return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n  {\n    var dispatcher = resolveDispatcher();\n    return dispatcher.useDebugValue(value, formatterFn);\n  }\n}\nfunction useTransition() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher$1.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher$1.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      setExtraStackFrame(stack);\n    } else {\n      setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n    if (name) {\n      return '\\n\\nCheck the render method of `' + name + '`.';\n    }\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  if (source !== undefined) {\n    var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n    var lineNumber = source.lineNumber;\n    return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n  if (elementProps !== null && elementProps !== undefined) {\n    return getSourceInfoErrorAddendum(elementProps.__source);\n  }\n\n  return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n    if (parentName) {\n      info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n    }\n  }\n\n  return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n\n  element._store.validated = true;\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n\n  var childOwner = '';\n\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n  }\n\n  {\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n\n  if (isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n\n    if (typeof iteratorFn === 'function') {\n      // Entry iterators used to provide implicit keys,\n      // but now we print a separate warning for them later.\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n\n        while (!(step = iterator.next()).done) {\n          if (isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\nfunction createElementWithValidation(type, props, children) {\n  var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n\n  if (!validType) {\n    var info = '';\n\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString;\n\n    if (type === null) {\n      typeString = 'null';\n    } else if (isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    {\n      error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n  }\n\n  var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n\n  if (element == null) {\n    return element;\n  } // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n\n\n  if (validType) {\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n  var validatedFactory = createElementWithValidation.bind(null, type);\n  validatedFactory.type = type;\n\n  {\n    if (!didWarnAboutDeprecatedCreateFactory) {\n      didWarnAboutDeprecatedCreateFactory = true;\n\n      warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n    } // Legacy hook: remove it\n\n\n    Object.defineProperty(validatedFactory, 'type', {\n      enumerable: false,\n      get: function () {\n        warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n        Object.defineProperty(this, 'type', {\n          value: type\n        });\n        return type;\n      }\n    });\n  }\n\n  return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n  var newElement = cloneElement.apply(this, arguments);\n\n  for (var i = 2; i < arguments.length; i++) {\n    validateChildKeys(arguments[i], newElement.type);\n  }\n\n  validatePropTypes(newElement);\n  return newElement;\n}\n\nfunction startTransition(scope, options) {\n  var prevTransition = ReactCurrentBatchConfig.transition;\n  ReactCurrentBatchConfig.transition = {};\n  var currentTransition = ReactCurrentBatchConfig.transition;\n\n  {\n    ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n  }\n\n  try {\n    scope();\n  } finally {\n    ReactCurrentBatchConfig.transition = prevTransition;\n\n    {\n      if (prevTransition === null && currentTransition._updatedFibers) {\n        var updatedFibersCount = currentTransition._updatedFibers.size;\n\n        if (updatedFibersCount > 10) {\n          warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n        }\n\n        currentTransition._updatedFibers.clear();\n      }\n    }\n  }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n  if (enqueueTaskImpl === null) {\n    try {\n      // read require off the module object to get around the bundlers.\n      // we don't want them to detect a require and bundle a Node polyfill.\n      var requireString = ('require' + Math.random()).slice(0, 7);\n      var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n      // version of setImmediate, bypassing fake timers if any.\n\n      enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n    } catch (_err) {\n      // we're in a browser\n      // we can't use regular timers because they may still be faked\n      // so we try MessageChannel+postMessage instead\n      enqueueTaskImpl = function (callback) {\n        {\n          if (didWarnAboutMessageChannel === false) {\n            didWarnAboutMessageChannel = true;\n\n            if (typeof MessageChannel === 'undefined') {\n              error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n            }\n          }\n        }\n\n        var channel = new MessageChannel();\n        channel.port1.onmessage = callback;\n        channel.port2.postMessage(undefined);\n      };\n    }\n  }\n\n  return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n  {\n    // `act` calls can be nested, so we track the depth. This represents the\n    // number of `act` scopes on the stack.\n    var prevActScopeDepth = actScopeDepth;\n    actScopeDepth++;\n\n    if (ReactCurrentActQueue.current === null) {\n      // This is the outermost `act` scope. Initialize the queue. The reconciler\n      // will detect the queue and use it instead of Scheduler.\n      ReactCurrentActQueue.current = [];\n    }\n\n    var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n    var result;\n\n    try {\n      // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n      // set to `true` while the given callback is executed, not for updates\n      // triggered during an async event, because this is how the legacy\n      // implementation of `act` behaved.\n      ReactCurrentActQueue.isBatchingLegacy = true;\n      result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n      // which flushed updates immediately after the scope function exits, even\n      // if it's an async function.\n\n      if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n        var queue = ReactCurrentActQueue.current;\n\n        if (queue !== null) {\n          ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n          flushActQueue(queue);\n        }\n      }\n    } catch (error) {\n      popActScope(prevActScopeDepth);\n      throw error;\n    } finally {\n      ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n    }\n\n    if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n      var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n      // for it to resolve before exiting the current scope.\n\n      var wasAwaited = false;\n      var thenable = {\n        then: function (resolve, reject) {\n          wasAwaited = true;\n          thenableResult.then(function (returnValue) {\n            popActScope(prevActScopeDepth);\n\n            if (actScopeDepth === 0) {\n              // We've exited the outermost act scope. Recursively flush the\n              // queue until there's no remaining work.\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }, function (error) {\n            // The callback threw an error.\n            popActScope(prevActScopeDepth);\n            reject(error);\n          });\n        }\n      };\n\n      {\n        if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n          // eslint-disable-next-line no-undef\n          Promise.resolve().then(function () {}).then(function () {\n            if (!wasAwaited) {\n              didWarnNoAwaitAct = true;\n\n              error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n            }\n          });\n        }\n      }\n\n      return thenable;\n    } else {\n      var returnValue = result; // The callback is not an async function. Exit the current scope\n      // immediately, without awaiting.\n\n      popActScope(prevActScopeDepth);\n\n      if (actScopeDepth === 0) {\n        // Exiting the outermost act scope. Flush the queue.\n        var _queue = ReactCurrentActQueue.current;\n\n        if (_queue !== null) {\n          flushActQueue(_queue);\n          ReactCurrentActQueue.current = null;\n        } // Return a thenable. If the user awaits it, we'll flush again in\n        // case additional work was scheduled by a microtask.\n\n\n        var _thenable = {\n          then: function (resolve, reject) {\n            // Confirm we haven't re-entered another `act` scope, in case\n            // the user does something weird like await the thenable\n            // multiple times.\n            if (ReactCurrentActQueue.current === null) {\n              // Recursively flush the queue until there's no remaining work.\n              ReactCurrentActQueue.current = [];\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }\n        };\n        return _thenable;\n      } else {\n        // Since we're inside a nested `act` scope, the returned thenable\n        // immediately resolves. The outer scope will flush the queue.\n        var _thenable2 = {\n          then: function (resolve, reject) {\n            resolve(returnValue);\n          }\n        };\n        return _thenable2;\n      }\n    }\n  }\n}\n\nfunction popActScope(prevActScopeDepth) {\n  {\n    if (prevActScopeDepth !== actScopeDepth - 1) {\n      error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n    }\n\n    actScopeDepth = prevActScopeDepth;\n  }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n  {\n    var queue = ReactCurrentActQueue.current;\n\n    if (queue !== null) {\n      try {\n        flushActQueue(queue);\n        enqueueTask(function () {\n          if (queue.length === 0) {\n            // No additional work was scheduled. Finish.\n            ReactCurrentActQueue.current = null;\n            resolve(returnValue);\n          } else {\n            // Keep flushing work until there's none left.\n            recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n          }\n        });\n      } catch (error) {\n        reject(error);\n      }\n    } else {\n      resolve(returnValue);\n    }\n  }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n  {\n    if (!isFlushing) {\n      // Prevent re-entrance.\n      isFlushing = true;\n      var i = 0;\n\n      try {\n        for (; i < queue.length; i++) {\n          var callback = queue[i];\n\n          do {\n            callback = callback(true);\n          } while (callback !== null);\n        }\n\n        queue.length = 0;\n      } catch (error) {\n        // If something throws, leave the remaining callbacks on the queue.\n        queue = queue.slice(i + 1);\n        throw error;\n      } finally {\n        isFlushing = false;\n      }\n    }\n  }\n}\n\nvar createElement$1 =  createElementWithValidation ;\nvar cloneElement$1 =  cloneElementWithValidation ;\nvar createFactory =  createFactoryWithValidation ;\nvar Children = {\n  map: mapChildren,\n  forEach: forEachChildren,\n  count: countChildren,\n  toArray: toArray,\n  only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n          /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n        \n  })();\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/react/cjs/react.development.js?");

/***/ }),

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

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/react/index.js?");

/***/ }),

/***/ "./node_modules/scheduler/cjs/scheduler.development.js":
/*!*************************************************************!*\
  !*** ./node_modules/scheduler/cjs/scheduler.development.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function() {\n\n          'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n          var enableSchedulerDebugging = false;\nvar enableProfiling = false;\nvar frameYieldMs = 5;\n\nfunction push(heap, node) {\n  var index = heap.length;\n  heap.push(node);\n  siftUp(heap, node, index);\n}\nfunction peek(heap) {\n  return heap.length === 0 ? null : heap[0];\n}\nfunction pop(heap) {\n  if (heap.length === 0) {\n    return null;\n  }\n\n  var first = heap[0];\n  var last = heap.pop();\n\n  if (last !== first) {\n    heap[0] = last;\n    siftDown(heap, last, 0);\n  }\n\n  return first;\n}\n\nfunction siftUp(heap, node, i) {\n  var index = i;\n\n  while (index > 0) {\n    var parentIndex = index - 1 >>> 1;\n    var parent = heap[parentIndex];\n\n    if (compare(parent, node) > 0) {\n      // The parent is larger. Swap positions.\n      heap[parentIndex] = node;\n      heap[index] = parent;\n      index = parentIndex;\n    } else {\n      // The parent is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction siftDown(heap, node, i) {\n  var index = i;\n  var length = heap.length;\n  var halfLength = length >>> 1;\n\n  while (index < halfLength) {\n    var leftIndex = (index + 1) * 2 - 1;\n    var left = heap[leftIndex];\n    var rightIndex = leftIndex + 1;\n    var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n    if (compare(left, node) < 0) {\n      if (rightIndex < length && compare(right, left) < 0) {\n        heap[index] = right;\n        heap[rightIndex] = node;\n        index = rightIndex;\n      } else {\n        heap[index] = left;\n        heap[leftIndex] = node;\n        index = leftIndex;\n      }\n    } else if (rightIndex < length && compare(right, node) < 0) {\n      heap[index] = right;\n      heap[rightIndex] = node;\n      index = rightIndex;\n    } else {\n      // Neither child is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction compare(a, b) {\n  // Compare sort index first, then task id.\n  var diff = a.sortIndex - b.sortIndex;\n  return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n/* eslint-disable no-var */\n\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n  var localPerformance = performance;\n\n  exports.unstable_now = function () {\n    return localPerformance.now();\n  };\n} else {\n  var localDate = Date;\n  var initialTime = localDate.now();\n\n  exports.unstable_now = function () {\n    return localDate.now() - initialTime;\n  };\n} // Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrance.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false; // Capture local references to native APIs, in case a polyfill overrides them.\n\nvar localSetTimeout = typeof setTimeout === 'function' ? setTimeout : null;\nvar localClearTimeout = typeof clearTimeout === 'function' ? clearTimeout : null;\nvar localSetImmediate = typeof setImmediate !== 'undefined' ? setImmediate : null; // IE and Node.js + jsdom\n\nvar isInputPending = typeof navigator !== 'undefined' && navigator.scheduling !== undefined && navigator.scheduling.isInputPending !== undefined ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null;\n\nfunction advanceTimers(currentTime) {\n  // Check for tasks that are no longer delayed and add them to the queue.\n  var timer = peek(timerQueue);\n\n  while (timer !== null) {\n    if (timer.callback === null) {\n      // Timer was cancelled.\n      pop(timerQueue);\n    } else if (timer.startTime <= currentTime) {\n      // Timer fired. Transfer to the task queue.\n      pop(timerQueue);\n      timer.sortIndex = timer.expirationTime;\n      push(taskQueue, timer);\n    } else {\n      // Remaining timers are pending.\n      return;\n    }\n\n    timer = peek(timerQueue);\n  }\n}\n\nfunction handleTimeout(currentTime) {\n  isHostTimeoutScheduled = false;\n  advanceTimers(currentTime);\n\n  if (!isHostCallbackScheduled) {\n    if (peek(taskQueue) !== null) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    } else {\n      var firstTimer = peek(timerQueue);\n\n      if (firstTimer !== null) {\n        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n      }\n    }\n  }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n  isHostCallbackScheduled = false;\n\n  if (isHostTimeoutScheduled) {\n    // We scheduled a timeout but it's no longer needed. Cancel it.\n    isHostTimeoutScheduled = false;\n    cancelHostTimeout();\n  }\n\n  isPerformingWork = true;\n  var previousPriorityLevel = currentPriorityLevel;\n\n  try {\n    if (enableProfiling) {\n      try {\n        return workLoop(hasTimeRemaining, initialTime);\n      } catch (error) {\n        if (currentTask !== null) {\n          var currentTime = exports.unstable_now();\n          markTaskErrored(currentTask, currentTime);\n          currentTask.isQueued = false;\n        }\n\n        throw error;\n      }\n    } else {\n      // No catch in prod code path.\n      return workLoop(hasTimeRemaining, initialTime);\n    }\n  } finally {\n    currentTask = null;\n    currentPriorityLevel = previousPriorityLevel;\n    isPerformingWork = false;\n  }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n  var currentTime = initialTime;\n  advanceTimers(currentTime);\n  currentTask = peek(taskQueue);\n\n  while (currentTask !== null && !(enableSchedulerDebugging )) {\n    if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n      // This currentTask hasn't expired, and we've reached the deadline.\n      break;\n    }\n\n    var callback = currentTask.callback;\n\n    if (typeof callback === 'function') {\n      currentTask.callback = null;\n      currentPriorityLevel = currentTask.priorityLevel;\n      var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n      var continuationCallback = callback(didUserCallbackTimeout);\n      currentTime = exports.unstable_now();\n\n      if (typeof continuationCallback === 'function') {\n        currentTask.callback = continuationCallback;\n      } else {\n\n        if (currentTask === peek(taskQueue)) {\n          pop(taskQueue);\n        }\n      }\n\n      advanceTimers(currentTime);\n    } else {\n      pop(taskQueue);\n    }\n\n    currentTask = peek(taskQueue);\n  } // Return whether there's additional work\n\n\n  if (currentTask !== null) {\n    return true;\n  } else {\n    var firstTimer = peek(timerQueue);\n\n    if (firstTimer !== null) {\n      requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n    }\n\n    return false;\n  }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n    case LowPriority:\n    case IdlePriority:\n      break;\n\n    default:\n      priorityLevel = NormalPriority;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_next(eventHandler) {\n  var priorityLevel;\n\n  switch (currentPriorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n      // Shift down to normal priority\n      priorityLevel = NormalPriority;\n      break;\n\n    default:\n      // Anything lower than normal priority should remain at the current level.\n      priorityLevel = currentPriorityLevel;\n      break;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_wrapCallback(callback) {\n  var parentPriorityLevel = currentPriorityLevel;\n  return function () {\n    // This is a fork of runWithPriority, inlined for performance.\n    var previousPriorityLevel = currentPriorityLevel;\n    currentPriorityLevel = parentPriorityLevel;\n\n    try {\n      return callback.apply(this, arguments);\n    } finally {\n      currentPriorityLevel = previousPriorityLevel;\n    }\n  };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n  var currentTime = exports.unstable_now();\n  var startTime;\n\n  if (typeof options === 'object' && options !== null) {\n    var delay = options.delay;\n\n    if (typeof delay === 'number' && delay > 0) {\n      startTime = currentTime + delay;\n    } else {\n      startTime = currentTime;\n    }\n  } else {\n    startTime = currentTime;\n  }\n\n  var timeout;\n\n  switch (priorityLevel) {\n    case ImmediatePriority:\n      timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n      break;\n\n    case UserBlockingPriority:\n      timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n      break;\n\n    case IdlePriority:\n      timeout = IDLE_PRIORITY_TIMEOUT;\n      break;\n\n    case LowPriority:\n      timeout = LOW_PRIORITY_TIMEOUT;\n      break;\n\n    case NormalPriority:\n    default:\n      timeout = NORMAL_PRIORITY_TIMEOUT;\n      break;\n  }\n\n  var expirationTime = startTime + timeout;\n  var newTask = {\n    id: taskIdCounter++,\n    callback: callback,\n    priorityLevel: priorityLevel,\n    startTime: startTime,\n    expirationTime: expirationTime,\n    sortIndex: -1\n  };\n\n  if (startTime > currentTime) {\n    // This is a delayed task.\n    newTask.sortIndex = startTime;\n    push(timerQueue, newTask);\n\n    if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n      // All tasks are delayed, and this is the task with the earliest delay.\n      if (isHostTimeoutScheduled) {\n        // Cancel an existing timeout.\n        cancelHostTimeout();\n      } else {\n        isHostTimeoutScheduled = true;\n      } // Schedule a timeout.\n\n\n      requestHostTimeout(handleTimeout, startTime - currentTime);\n    }\n  } else {\n    newTask.sortIndex = expirationTime;\n    push(taskQueue, newTask);\n    // wait until the next time we yield.\n\n\n    if (!isHostCallbackScheduled && !isPerformingWork) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    }\n  }\n\n  return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n  if (!isHostCallbackScheduled && !isPerformingWork) {\n    isHostCallbackScheduled = true;\n    requestHostCallback(flushWork);\n  }\n}\n\nfunction unstable_getFirstCallbackNode() {\n  return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n  // remove from the queue because you can't remove arbitrary nodes from an\n  // array based heap, only the first one.)\n\n\n  task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n  return currentPriorityLevel;\n}\n\nvar isMessageLoopRunning = false;\nvar scheduledHostCallback = null;\nvar taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n// thread, like user events. By default, it yields multiple times per frame.\n// It does not attempt to align with frame boundaries, since most tasks don't\n// need to be frame aligned; for those that do, use requestAnimationFrame.\n\nvar frameInterval = frameYieldMs;\nvar startTime = -1;\n\nfunction shouldYieldToHost() {\n  var timeElapsed = exports.unstable_now() - startTime;\n\n  if (timeElapsed < frameInterval) {\n    // The main thread has only been blocked for a really short amount of time;\n    // smaller than a single frame. Don't yield yet.\n    return false;\n  } // The main thread has been blocked for a non-negligible amount of time. We\n\n\n  return true;\n}\n\nfunction requestPaint() {\n\n}\n\nfunction forceFrameRate(fps) {\n  if (fps < 0 || fps > 125) {\n    // Using console['error'] to evade Babel and ESLint\n    console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n    return;\n  }\n\n  if (fps > 0) {\n    frameInterval = Math.floor(1000 / fps);\n  } else {\n    // reset the framerate\n    frameInterval = frameYieldMs;\n  }\n}\n\nvar performWorkUntilDeadline = function () {\n  if (scheduledHostCallback !== null) {\n    var currentTime = exports.unstable_now(); // Keep track of the start time so we can measure how long the main thread\n    // has been blocked.\n\n    startTime = currentTime;\n    var hasTimeRemaining = true; // If a scheduler task throws, exit the current browser task so the\n    // error can be observed.\n    //\n    // Intentionally not using a try-catch, since that makes some debugging\n    // techniques harder. Instead, if `scheduledHostCallback` errors, then\n    // `hasMoreWork` will remain true, and we'll continue the work loop.\n\n    var hasMoreWork = true;\n\n    try {\n      hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n    } finally {\n      if (hasMoreWork) {\n        // If there's more work, schedule the next message event at the end\n        // of the preceding one.\n        schedulePerformWorkUntilDeadline();\n      } else {\n        isMessageLoopRunning = false;\n        scheduledHostCallback = null;\n      }\n    }\n  } else {\n    isMessageLoopRunning = false;\n  } // Yielding to the browser will give it a chance to paint, so we can\n};\n\nvar schedulePerformWorkUntilDeadline;\n\nif (typeof localSetImmediate === 'function') {\n  // Node.js and old IE.\n  // There's a few reasons for why we prefer setImmediate.\n  //\n  // Unlike MessageChannel, it doesn't prevent a Node.js process from exiting.\n  // (Even though this is a DOM fork of the Scheduler, you could get here\n  // with a mix of Node.js 15+, which has a MessageChannel, and jsdom.)\n  // https://github.com/facebook/react/issues/20756\n  //\n  // But also, it runs earlier which is the semantic we want.\n  // If other browsers ever implement it, it's better to use it.\n  // Although both of these would be inferior to native scheduling.\n  schedulePerformWorkUntilDeadline = function () {\n    localSetImmediate(performWorkUntilDeadline);\n  };\n} else if (typeof MessageChannel !== 'undefined') {\n  // DOM and Worker environments.\n  // We prefer MessageChannel because of the 4ms setTimeout clamping.\n  var channel = new MessageChannel();\n  var port = channel.port2;\n  channel.port1.onmessage = performWorkUntilDeadline;\n\n  schedulePerformWorkUntilDeadline = function () {\n    port.postMessage(null);\n  };\n} else {\n  // We should only fallback here in non-browser environments.\n  schedulePerformWorkUntilDeadline = function () {\n    localSetTimeout(performWorkUntilDeadline, 0);\n  };\n}\n\nfunction requestHostCallback(callback) {\n  scheduledHostCallback = callback;\n\n  if (!isMessageLoopRunning) {\n    isMessageLoopRunning = true;\n    schedulePerformWorkUntilDeadline();\n  }\n}\n\nfunction requestHostTimeout(callback, ms) {\n  taskTimeoutID = localSetTimeout(function () {\n    callback(exports.unstable_now());\n  }, ms);\n}\n\nfunction cancelHostTimeout() {\n  localClearTimeout(taskTimeoutID);\n  taskTimeoutID = -1;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling =  null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_forceFrameRate = forceFrameRate;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n          /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n        \n  })();\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/scheduler/cjs/scheduler.development.js?");

/***/ }),

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

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/scheduler/index.js?");

/***/ }),

/***/ "./src/css/App.css":
/*!*************************!*\
  !*** ./src/css/App.css ***!
  \*************************/
/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_1_node_modules_postcss_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../node_modules/postcss-loader/dist/cjs.js!./App.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js!./src/css/App.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\n\n      options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\n    \noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_1_node_modules_postcss_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_1_node_modules_postcss_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_1_node_modules_postcss_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_1_node_modules_postcss_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack://demo/./src/css/App.css?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  \****************************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n\n  return updater;\n}\n\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
/*!********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
  \********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nvar memo = {};\n/* istanbul ignore next  */\n\nfunction getTarget(target) {\n  if (typeof memo[target] === \"undefined\") {\n    var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n      try {\n        // This will throw an exception if access to iframe is blocked\n        // due to cross-origin restrictions\n        styleTarget = styleTarget.contentDocument.head;\n      } catch (e) {\n        // istanbul ignore next\n        styleTarget = null;\n      }\n    }\n\n    memo[target] = styleTarget;\n  }\n\n  return memo[target];\n}\n/* istanbul ignore next  */\n\n\nfunction insertBySelector(insert, style) {\n  var target = getTarget(insert);\n\n  if (!target) {\n    throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n  }\n\n  target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/insertBySelector.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
/*!**********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
  \**********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\n\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/insertStyleElement.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce =  true ? __webpack_require__.nc : 0;\n\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\n\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
/*!***************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n\n  var needLayer = typeof obj.layer !== \"undefined\";\n\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n\n  css += obj.css;\n\n  if (needLayer) {\n    css += \"}\";\n  }\n\n  if (obj.media) {\n    css += \"}\";\n  }\n\n  if (obj.supports) {\n    css += \"}\";\n  }\n\n  var sourceMap = obj.sourceMap;\n\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n\n  styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next  */\n\n\nfunction domAPI(options) {\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\n\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/styleDomAPI.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
/*!*********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
  \*********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\n\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://demo/./node_modules/style-loader/dist/runtime/styleTagTransform.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  var exports = {},\n    Op = Object.prototype,\n    hasOwn = Op.hasOwnProperty,\n    defineProperty = Object.defineProperty || function (obj, key, desc) {\n      obj[key] = desc.value;\n    },\n    $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n    iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n    asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n    toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n      generator = Object.create(protoGenerator.prototype),\n      context = new Context(tryLocsList || []);\n    return defineProperty(generator, \"_invoke\", {\n      value: makeInvokeMethod(innerFn, self, context)\n    }), generator;\n  }\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n    NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n          value = result.value;\n        return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n      reject(record.arg);\n    }\n    var previousPromise;\n    defineProperty(this, \"_invoke\", {\n      value: function value(method, arg) {\n        function callInvokeWithMethodAndArg() {\n          return new PromiseImpl(function (resolve, reject) {\n            invoke(method, arg, resolve, reject);\n          });\n        }\n        return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = \"suspendedStart\";\n    return function (method, arg) {\n      if (\"executing\" === state) throw new Error(\"Generator is already running\");\n      if (\"completed\" === state) {\n        if (\"throw\" === method) throw arg;\n        return doneResult();\n      }\n      for (context.method = method, context.arg = arg;;) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n        if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n          if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n          context.dispatchException(context.arg);\n        } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n        state = \"executing\";\n        var record = tryCatch(innerFn, self, context);\n        if (\"normal\" === record.type) {\n          if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        }\n        \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(delegate, context) {\n    var methodName = context.method,\n      method = delegate.iterator[methodName];\n    if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n          next = function next() {\n            for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n            return next.value = undefined, next.done = !0, next;\n          };\n        return next.next = next;\n      }\n    }\n    return {\n      next: doneResult\n    };\n  }\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (val) {\n    var object = Object(val),\n      keys = [];\n    for (var key in object) keys.push(key);\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n          record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n            hasFinally = hasOwn.call(entry, \"finallyLoc\");\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  \*******************************************************/
/***/ ((module) => {

eval("function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ \"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/regenerator/index.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___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 */ _arrayLikeToArray)\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___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 */ _arrayWithHoles)\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___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 */ _arrayWithoutHoles)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___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 */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n      args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n      _next(undefined);\n    });\n  };\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___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 */ _defineProperty)\n/* harmony export */ });\n/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\");\n\nfunction _defineProperty(obj, key, value) {\n  key = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/defineProperty.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___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 */ _iterableToArray)\n/* harmony export */ });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___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 */ _iterableToArrayLimit)\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n  var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (null != _i) {\n    var _s,\n      _e,\n      _x,\n      _r,\n      _arr = [],\n      _n = !0,\n      _d = !1;\n    try {\n      if (_x = (_i = _i.call(arr)).next, 0 === i) {\n        if (Object(_i) !== _i) return;\n        _n = !1;\n      } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n    } catch (err) {\n      _d = !0, _e = err;\n    } finally {\n      try {\n        if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n    return _arr;\n  }\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___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 */ _nonIterableRest)\n/* harmony export */ });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___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 */ _nonIterableSpread)\n/* harmony export */ });\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___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 */ _slicedToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___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 */ _toConsumableArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
/*!****************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___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 */ _toPrimitive)\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n\nfunction _toPrimitive(input, hint) {\n  if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___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 */ _toPropertyKey)\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ \"./node_modules/@babel/runtime/helpers/esm/toPrimitive.js\");\n\n\nfunction _toPropertyKey(arg) {\n  var key = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arg, \"string\");\n  return (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key) === \"symbol\" ? key : String(key);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!***********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___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 */ _typeof)\n/* harmony export */ });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___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 */ _unsupportedIterableToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack://demo/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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/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/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;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// 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/000_index.tsx");
/******/ 	
/******/ })()
;